
【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はモデルトレーニングから運用監視までを効率化し、安全でスケーラブルな機械学習環境を実現します。
重要用語
ユースケース
| 機械学習モデルの学習とデプロイ | 教師データを使ってアルゴリズムのトレーニングを行い、そのモデルをエンドポイントとしてデプロイしてリアルタイム推論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 Logs | logs: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 Store | sagemaker:PutRecord sagemaker:GetRecord sagemaker:DeleteRecord |
| SageMaker Ground Truth | sagemaker:DescribeLabelingJob |
| SageMaker Model Registry | sagemaker:CreateModelPackage sagemaker:DescribeModelPackage |
| SageMaker Experiments | sagemaker:AddTags sagemaker:Search sagemaker:DescribeTrialComponent |
| SageMaker Pipelines | sagemaker:DescribePipeline sagemaker:DescribePipelineExecution sagemaker:StartPipelineExecution |
| Athena / Glue | athena:StartQueryExecution athena:GetQueryExecution athena:GetQueryResults glue:GetTable glue:GetDatabase glue:GetPartitions |
| Secrets Manager | secretsmanager:GetSecretValue |
| SSM Parameter Store | ssm:GetParameter |
| KMS | kms:Decrypt kms:GenerateDataKey |
信頼ポリシー: SageMaker
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "sagemaker.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
ログ・監視
| ログ出力先 | ログの種類 |
|---|---|
| CloudWatch Logs | トレーニング/推論ログ |
標準メトリクス
| メトリクス名 | 説明 |
|---|---|
制限値(固定値/ハードリミット/ソフトリミット)
| 固定値 | 制限値 |
|---|---|
| ノートブックインスタンス数/リージョン | 制限なし |
| ノートブックインスタンスアイドルタイムアウト | なし(手動停止) |
| ハードリミット | 制限値 |
|---|---|
| トレーニングジョブの最大実行時間 | 28日 |
| ソフトリミット | 制限値 |
|---|---|
| 同時トレーニングジョブ数 | 100 |
| 同時処理ジョブ数 | 100 |
| 推論エンドポイント数/リージョン | 200 |
| モデルアーティファクト数/リージョン | 200 |
AWS CLIのサンプルコード
CloudFormationのサンプルコード
Terraformのサンプルコード
料金計算
| 課金項目 | 説明 |
|---|---|
| ノートブックインスタンス | ノートブックインスタンスの時間 |
| トレーニング | トレーニングインスタンスの時間 |
| 推論エンドポイント | ホスティングインスタンスの時間 |
| バッチ変換 | バッチ変換インスタンスの時間 |
| データ処理 | Processing Jobsのインスタンス時間 |
| ストレージ | モデルアーティファクトとデータの容量 |
| Studio | SageMaker Studioの使用時間 |
| Feature Store | Feature Storeの書込数(WRU)と読取数(RRU) |