SageMaker

【VPC外リージョンサービス / ENIでVPC接続】

SageMaker は、Machine Learning(機械学習) モデルの開発から学習、デプロイ、運用までを一貫して実行できる フルマネージドなMachine Learning プラットフォーム です。

データ準備 / トレーニング / 推論 / デプロイ / モニタリング / MLOps の各工程を自動化し、開発効率を大幅に向上させます。

SageMaker Studio / SageMaker Notebook / SageMaker Processing / SageMaker Training / SageMaker Inference などのモジュールを通じて、統合された開発・実行環境を提供します。

データ前処理では SageMaker Data Wrangler / SageMaker Ground Truth / Feature Store / Data Catalog / Glue / S3 連携 を活用でき、モデル学習では Built-in Algorithms に加えて TensorFlow / PyTorch / MXNet / Scikit-learn / Hugging Face など主要フレームワークに対応しています。

また、Real-time Inference / Batch Transform / Serverless Inference / Edge Deployment / Multi-model Endpoint により、多様な推論パターンを柔軟に運用できます。

包括的なMLOps基盤として、SageMakerはモデルトレーニングから運用監視までを効率化し、安全でスケーラブルな機械学習環境を実現します。

重要用語

SageMaker Studio
関連サービス

ユースケース

機械学習モデルの学習とデプロイ教師データを使ってアルゴリズムのトレーニングを行い、そのモデルをエンドポイントとしてデプロイしてリアルタイム推論APIを提供する。
Jupyterノートブックによるデータ分析・実験ノートブックインスタンス上でデータの前処理や特徴量エンジニアリング、モデル試作を行い、そのままトレーニングジョブにつなげる。
バッチ推論による一括スコアリング大量のレコードに対して一括で予測値を付与するバッチ変換ジョブを実行し、結果をS3に書き出して後続処理に渡す。

ベストプラクティス

ノートブックと本番環境の分離実験用と推論用のエンドポイントを分けて運用する。
モデルモニタリングデータドリフトや性能低下を検知するためにモニタリングジョブを設定する。
適切なインスタンスタイプ選定トレーニングと推論で最適なインスタンスを選び、コスト効率を高める。

高可用性・バックアップ・リトライ

高可用性・バックアップ・リトライ設計のポイント
インスタンス数(最小構成は1)
複数インスタンスの場合、マルチAZ(エンドポイント)
※)VPCを指定しない場合、【デフォルト】でマルチAZ
複数インスタンスの場合、Auto Scaling

セキュリティ

関連サービス設定内容
Subnet(公開リソースと内部リソースの分離)【Notebookインスタンス群】
 Privateの専用SubnetでマルチAZ構成
SG(リソース単位のアクセス制御)【Notebookインスタンス群】
 インバウンド:空(すべて拒否)
 アウトバウンド:HTTPS(443)
CloudTrail(操作履歴の記録・監査・追跡)【自動記録】
作成・更新・削除・設定変更は自動記録される。(コントロールプレーンAPI)
データ操作は追跡できない(データプレーンAPI)
Config(リソースの構成状態・設定変更を記録)【Configが有効な場合】
ノートブック/エンドポイント等の設定変更履歴・暗号化/ネットワーク設定の準拠評価
GuardDuty(脅威を自動検出)【GuardDutyが有効な場合】
不審なモデル削除・ノートブック起動などのAPI異常検知
SageMakerが実行ロールを引き受ける典型的な連携パターン
実行ロールを介して連携するサービス実行ロールにアタッチするポリシー
CloudWatch Logslogs:CreateLogGroup
logs:CreateLogStream
logs:PutLogEvents
VPC設定ec2:CreateNetworkInterface
ec2:DescribeNetworkInterfaces
ec2:DeleteNetworkInterface
ec2:DescribeVpcs
ec2:DescribeSubnets
ec2:DescribeSecurityGroups
ec2:DescribeDhcpOptions
ec2:DescribeNetworkInterfaceAttribute
S3
s3:ListBucket
s3:GetObject
s3:PutObject
s3:DeleteObject
ECR(Pull)
ecr:GetAuthorizationToken
ecr:BatchGetImage
ecr:GetDownloadUrlForLayer
ecr:BatchCheckLayerAvailability
SageMaker Feature Storesagemaker:PutRecord
sagemaker:GetRecord
sagemaker:DeleteRecord
SageMaker Ground Truthsagemaker:DescribeLabelingJob
SageMaker Model Registrysagemaker:CreateModelPackage
sagemaker:DescribeModelPackage
SageMaker Experimentssagemaker:AddTags
sagemaker:Search
sagemaker:DescribeTrialComponent
SageMaker Pipelinessagemaker:DescribePipeline
sagemaker:DescribePipelineExecution
sagemaker:StartPipelineExecution
Athena / Glueathena:StartQueryExecution
athena:GetQueryExecution
athena:GetQueryResults
glue:GetTable
glue:GetDatabase
glue:GetPartitions
Secrets Managersecretsmanager:GetSecretValue
SSM Parameter Storessm:GetParameter
KMSkms:Decrypt
kms:GenerateDataKey
※)権限設計の原則

信頼ポリシー: SageMaker

 {
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "sagemaker.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}

ログ・監視

ログ出力先ログの種類
CloudWatch Logsトレーニング/推論ログ
CloudWatch Logs優先の原則
標準メトリクス
メトリクス名説明

制限値(固定値/ハードリミット/ソフトリミット)

固定値制限値
ノートブックインスタンス数/リージョン制限なし
ノートブックインスタンスアイドルタイムアウトなし(手動停止)

ハードリミット制限値
トレーニングジョブの最大実行時間28日

ソフトリミット制限値
同時トレーニングジョブ数100
同時処理ジョブ数100
推論エンドポイント数/リージョン200
モデルアーティファクト数/リージョン200

AWS CLIのサンプルコード

CloudFormationのサンプルコード

Terraformのサンプルコード

料金計算

課金項目説明
ノートブックインスタンスノートブックインスタンスの時間
トレーニングトレーニングインスタンスの時間
推論エンドポイントホスティングインスタンスの時間
バッチ変換バッチ変換インスタンスの時間
データ処理Processing Jobsのインスタンス時間
ストレージモデルアーティファクトとデータの容量
StudioSageMaker Studioの使用時間
Feature StoreFeature Storeの書込数(WRU)と読取数(RRU)
料金計算ツール

公式ページ

AWSドキュメント SageMaker