Cloud Service
Amazon SageMaker
機械学習モデルの構築・学習・デプロイまでをエンドツーエンドで支援する、フルマネージドな統合 ML 基盤。
- 1.データ準備からモデルの学習・デプロイ・運用までを一つの基盤で完結できる ML サービス。
- 2.学習ジョブや推論エンドポイントのインフラはマネージドで、使った分だけの従量課金。
- 3.組み込みアルゴリズム・独自コンテナ・MLOps 機能を組み合わせ、本番運用まで一貫して扱える。
解決する課題
機械学習を本番で動かすには、データの前処理、モデルの学習、評価、デプロイ、そして運用後の監視という長い工程が必要です。これらを個別のサーバーやツールでつなぐと、環境構築や GPU の管理、スケーリングに多くの手間がかかります。Amazon SageMaker はこの一連の流れを一つのマネージド基盤で扱えるようにします。
- 学習用・推論用のインフラを自分で用意せず、ジョブやエンドポイント単位で利用できる
- データ準備からモデル管理・デプロイ・監視までを一貫したワークフローで扱える
- GPU を含む計算資源を使うときだけ確保し、終わったら解放することでコストを抑えられる
ノートブックでの試行から本番運用までを同じ基盤上で進められる点が中心的な価値です。
主要概念と用語
- Studio: ブラウザで使う統合開発環境。ノートブック、ジョブ管理、デプロイなどを一画面で扱う
- ノートブック: データ探索やコード試行を行う対話的な実行環境
- 学習ジョブ(トレーニングジョブ): 指定したデータと計算インスタンスでモデルを学習させる非同期処理。完了するとインスタンスは解放される
- 組み込みアルゴリズム: 代表的な機械学習タスク向けに用意された、すぐ使えるアルゴリズム群
- 独自コンテナ(BYOC): 自分の学習・推論コードを Docker イメージにして持ち込む方式
- モデル: 学習成果物(モデルアーティファクト)と推論コードをまとめた、デプロイ可能な単位
- エンドポイント: 学習済みモデルを公開し、推論リクエストを受け付けるデプロイ先
- リアルタイム推論: 常時稼働のエンドポイントに低遅延で問い合わせる方式
- バッチ変換: 大量データをまとめて一括で推論する非同期方式
- Feature Store: 学習と推論で共有する特徴量を一元管理する仕組み
- Model Registry: モデルのバージョンと承認状態を管理するカタログ
- Pipelines: 前処理・学習・評価・登録といった工程をつなぐワークフロー定義(MLOps)
仕様・制限・クォータ
- 学習・推論には用途に応じたインスタンスタイプを選ぶ。汎用 CPU から GPU 搭載まで幅広く、学習用と推論用でファミリーが分かれる
- 学習ジョブの同時実行数やインスタンス種別ごとの台数上限などにアカウント単位のクォータがあり、引き上げ申請が可能
- リアルタイムエンドポイントは複数インスタンスへのスケールとオートスケーリングに対応し、バッチ変換は一括処理に向く
- 入力データは通常 S3 に置き、学習成果物も S3 に出力するのが基本
- デプロイ方式はリアルタイム、バッチ変換のほか、間欠的な負荷向けの方式やサーバーレス推論など複数の選択肢がある
具体的な対応インスタンスタイプ・上限値は更新されるため、最新の公式ドキュメントで確認してください。
内部の仕組み
利用者は「データの場所」「学習・推論コード(または組み込みアルゴリズム)」「使う計算インスタンス」を指定するだけで、SageMaker が裏側のプロビジョニングと実行を担います。
- 学習: 指定したインスタンスを一時的に確保し、コンテナ内で学習コードを実行する。完了すると成果物を S3 に保存し、インスタンスは自動的に解放される
- 推論: モデルをコンテナとしてエンドポイント上に展開し、リクエストを受け付ける。リアルタイムは常時稼働、バッチ変換はジョブ単位で起動・終了する
- 学習・推論コードはコンテナイメージとして実行されるため、組み込みアルゴリズム・主要フレームワーク向けの用意されたイメージ・独自イメージのいずれも同じ仕組みで動く
- スケーリング、ハードウェア管理、障害時のインスタンス入れ替えは AWS 側が担う
データの保管に S3、コンテナイメージの保管に ECR を利用するなど、他の AWS サービスと組み合わせて動作します。
設計パターン / ベストプラクティス
- 学習と推論を分離する: 重い学習はジョブとして都度実行し、推論は用途に合うデプロイ方式(リアルタイム / バッチ / サーバーレス)を選ぶ
- MLOps をパイプライン化: Pipelines で前処理・学習・評価・登録を自動化し、Model Registry で承認フローを通したモデルだけを本番へ
- 特徴量を共有する: 学習時と推論時で特徴量の計算がずれる問題を避けるため、Feature Store で一元管理する
- 間欠的な負荷にはサーバーレス推論やバッチ: 常時アクセスがないワークロードで常時稼働エンドポイントを使うと無駄が出やすい
独自のモデルコードを書く前に、組み込みアルゴリズムや用意されたフレームワーク用イメージで要件を満たせないか確認すると、開発と運用の負担を大きく減らせます。
運用・監視
- エンドポイントの遅延・呼び出し数・エラー率や、インスタンスの使用率は CloudWatch のメトリクス・ログで監視する
- 学習ジョブやエンドポイントの状態変化を EventBridge で受け取り、後続処理や通知を自動化する
- API 操作の監査証跡は CloudTrail に記録される
- 本番モデルは入力データの傾向が学習時とずれていないか(データ品質やモデル品質の監視)を継続的に確認し、劣化を検知したら再学習につなげる
リアルタイムエンドポイントは削除するまでインスタンスが課金され続けます。検証で作成したエンドポイントは使い終わったら必ず削除してください。
コスト
- 課金は基本的に学習・推論に使ったインスタンスの稼働時間に対する従量制で、ノートブックや処理ジョブなども同様に使った分だけかかる
- リアルタイムエンドポイントは削除するまで稼働コストが発生する。間欠的な負荷ならサーバーレス推論やバッチ変換でアイドル時の費用を抑えられる
- 学習ではスポット相当の割引オプションを使って中断許容のジョブのコストを下げられる場合がある
- GPU インスタンスは単価が高いため、必要な工程だけに絞って使う
具体的な単価は変動するため、料金は公式の料金ページで確認し、小規模に検証してから本番のボリュームを見積もるのが安全です。
セキュリティ
- アクセス制御は IAM で行い、学習ジョブやエンドポイント用のロールには入出力 S3 や ECR への最小権限のみを付与する
- 保存データは S3 や成果物の暗号化(KMS 管理鍵を含む)、転送は TLS で保護する
- 学習・推論を VPC 内で実行してインターネットから隔離し、S3 や ECR へは VPC エンドポイント経由でプライベートに到達する構成を取れる
- ノートブックやエンドポイントへのアクセス経路を限定し、機密データの取り扱いに配慮する
学習・推論用ロールに広すぎる S3 や ECR 権限を与えると、想定外のデータやイメージへアクセスできてしまいます。対象バケット・プレフィックス・リポジトリに絞った最小権限にしてください。
Well-Architected の観点
- パフォーマンス効率: 用途に合うインスタンスタイプ(CPU / GPU)とデプロイ方式を選び、オートスケーリングで需要に追従する
- 運用上の優秀性: Pipelines と Model Registry で学習からデプロイまでを自動化・標準化し、CloudWatch や EventBridge で可観測性を確保する
- コスト最適化: 学習はジョブ単位で都度確保し、間欠負荷はサーバーレス推論やバッチで無駄を減らす
- セキュリティ: IAM の最小権限、VPC 隔離、保存・転送時の暗号化でデータとモデルを保護する
試験で問われるポイント
- 「モデルの構築・学習・デプロイをまとめて行う AWS サービスは?」→ Amazon SageMaker
- 「常時の低遅延応答が必要」→ リアルタイムエンドポイント、「大量データを一括推論」→ バッチ変換
- 「アクセスが間欠的でアイドルコストを抑えたい」→ サーバーレス推論を検討
- 「学習と推論で特徴量の不整合を防ぎたい」→ Feature Store
- 「モデルのバージョン管理と承認フロー」→ Model Registry、工程の自動化は Pipelines
- 学習・推論をインターネットから隔離したい → VPC 内実行と VPC エンドポイント
関連サービス・比較
学習やインフラ管理を意識せずに使える高レベルな AI サービス(Amazon Rekognition などの用途特化型 API)とは抽象度が異なります。汎用的な画像認識 API である Amazon Rekognition と比較します。
| 観点 | Amazon SageMaker | Amazon Rekognition |
|---|---|---|
| 抽象度 | モデルを自分で作る基盤 | 用途特化の API として呼ぶだけ |
| 対象タスク | 幅広い機械学習タスク全般 | 画像・動画の解析に特化 |
| モデルの学習 | 自前データで学習・カスタマイズ | 原則は学習済み API を利用 |
| 向いている人 | ML エンジニア・データサイエンティスト | ML 知識が浅くても使いたい開発者 |
ハンズオン / CLI例
# S3 上のデータを使って学習ジョブを開始(イメージ・ロール・出力先を指定)
aws sagemaker create-training-job \
--training-job-name demo-training-job \
--algorithm-specification TrainingImage=123456789012.dkr.ecr.ap-northeast-1.amazonaws.com/my-train:latest,TrainingInputMode=File \
--role-arn arn:aws:iam::123456789012:role/SageMakerExecutionRole \
--input-data-config '[{"ChannelName":"train","DataSource":{"S3DataSource":{"S3DataType":"S3Prefix","S3Uri":"s3://my-bucket/train/","S3DataDistributionType":"FullyReplicated"}}}]' \
--output-data-config S3OutputPath=s3://my-bucket/output/ \
--resource-config InstanceType=ml.m5.xlarge,InstanceCount=1,VolumeSizeInGB=10 \
--stopping-condition MaxRuntimeInSeconds=3600
# 学習ジョブの状態を確認(Completed になったら出力先から成果物を取得)
aws sagemaker describe-training-job \
--training-job-name demo-training-job \
--query "{Status:TrainingJobStatus,Output:ModelArtifacts.S3ModelArtifacts}"
AWS Service
Amazon SageMakerを実務で読む
TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。
解決すること
AI / 機械学習
比較で見る軸
クラウド: AWS / カテゴリ: AI / 機械学習 / 難易度: intermediate
導入後に効く点
学習ジョブや推論エンドポイントのインフラはマネージドで、使った分だけの従量課金。
先に潰すリスク
サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。
- クラウド
- AWS
- カテゴリ
- AI / 機械学習
- 難易度
- intermediate
- 関連資格
- AIF-C01 / DEA-C01
- 設計柱
- performance / operational
判断チェックリスト
- 自社の用途が「AI / 機械学習 / performance」に近いか確認する。
- 強みである「データ準備からモデルの学習・デプロイ・運用までを一つの基盤で完結できる ML サービス。」が本当に評価軸になるか確認する。
- 注意点の「サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。」を運用で吸収できるか確認する。
- 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
- 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
- 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。