ある企業が、AWS で機械学習モデルの学習ジョブを定期的に実行している。学習には GPU インスタンスが必要で、週に 2〜3 回、1 回あたり 4〜8 時間かかる。学習ジョブを管理・スケジューリングし、必要なときだけ GPU インスタンスを起動してコストを最小化したい。最も適切なアーキテクチャはどれか。
- A. AWS Batch でジョブキューを設定し、Spot インスタンスで学習ジョブを実行する。
- B. EC2 Auto Scaling グループで GPU インスタンスを管理し、CloudWatch アラームで起動・停止を自動化する。
- C. GPU EC2 インスタンスを常時稼働させて、いつでも学習ジョブを実行できるようにする。
- D. Amazon SageMaker Training Jobs を使用し、学習ジョブが必要な際に一時的にインスタンスを起動して学習を実行する。ジョブ完了後はインスタンスが自動的に終了し、実際の学習時間のみ課金される。
解答と解説を見る
正解: D
Amazon SageMaker Training Jobs は学習ジョブ実行中だけインスタンスを起動し、完了後は自動的に終了する「オンデマンド学習」のサービスである。GPU インスタンス(p3、p4、g5 等)での学習に最適化されており、分散学習・チェックポイントなどの機能も組み込まれている。週数回の実行パターンでは、常時稼働 EC2 と比較して大幅にコストが削減できる。選択肢Cの GPU EC2 常時稼働は、週数時間しか使わない場合でも 24 時間 365 日の課金が発生しコストが非常に高い。選択肢BのEC2 Auto Scaling はインスタンスの起動停止自動化が可能だが、SageMaker ほど ML 学習に特化した管理機能がなく、学習コードの実行管理・チェックポイント・分散学習の設定が複雑になる。選択肢AのAWS Batch も有効な選択肢だが、Spot インスタンスの中断リスクが長時間の学習ジョブには影響する。SageMaker の方が ML 学習ジョブに特化した管理機能が豊富。
📚 関連サービスの解説: Amazon SageMaker