SAPワークロードの移行とモダン化の加速
あるSaaS企業は、夜間に実行されるデータ集計バッチをオンプレミスからAWSへ移行・モダナイズする。このバッチはコンテナ化済みで、1ジョブあたり最大2時間・最大16GBメモリを消費し、月末は数百ジョブが並列投入される一方、平日は数ジョブのみと負荷の変動が大きい。要件は、①ジョブのキューイング・リトライ・依存関係制御をマネージドに行う、
②アイドル時のコストをゼロに近づける、
③ピーク時はスポット中断に耐えつつ大規模並列実行、
④サーバーのパッチ管理を不要にする。最適な構成はどれか。
AAWS BatchのジョブキューにFargate Spotのコンピューティング環境を割り当て、EventBridgeスケジュールでジョブを投入する。Batchのリトライポリシーと依存関係(dependsOn)でジョブ制御を行い、スポット中断時は自動で再実行する。
✓ 正解
AWS BatchはジョブキューでキューイングやdependsOnによる依存制御、リトライをマネージドに提供し、Fargate Spotでアイドル時コストをゼロに近づけつつパッチ管理も不要。スポット中断時の自動再実行と大規模並列も満たすため。
BAWS LambdaにバッチをデプロイしEventBridgeで起動する。並列実行は予約済み同時実行数で制御し、ジョブの依存関係はStep Functionsで管理する。
Lambdaは最大実行時間が15分のため、1ジョブ最大2時間のバッチを実行できず要件を満たさない。Step Functionsで分割しても処理特性上現実的でなく、16GBは設定可能だが実行時間制限が致命的である。
CECS on EC2 Spotでスケジュールタスクとして実行し、Auto Scalingグループでキャパシティを調整する。ジョブのキューイングとリトライはSQSとカスタムLambdaで自前実装する。
ECS on EC2 Spotはサーバーのパッチ管理が必要で要件④に反し、キューイングとリトライをSQSとカスタムLambdaで自前実装する点もマネージド化・運用負荷最小の要件に反するため不適切である。
DEC2 Auto ScalingグループにバッチをデプロイしSavings Plansで割引を適用する。ジョブはcronで起動し、ピーク時はスケジュールスケーリングでインスタンスを増やす。
EC2 Auto Scaling+Savings Plansはコミットメント課金のためアイドル時コストをゼロにできず、EC2のパッチ管理も残る。マネージドなキューイング・依存制御の仕組みもなく要件を満たさない。
解説
AWS Batchはジョブキューによるキューイング、dependsOnでの依存関係制御、リトライポリシーをマネージドに提供する。コンピューティング環境にFargate Spotを割り当てればアイドル時のコストをゼロに近づけ、パッチ管理も不要になる。スポット中断時はBatchが自動で再実行し、ピーク時の数百ジョブの大規模並列にも対応できる。
選択肢BのLambdaは最大15分の実行時間制限があり2時間のジョブを実行できない。
選択肢CのECS on EC2 Spotはパッチ管理が必要でキュー実装も自前となる。
選択肢DのEC2+Savings Plansはアイドルコストをゼロにできずパッチ管理も残る。
ドメイン別正答率・予想スコアでリアルタイムに実力把握
無限ノックでSAPを徹底対策。全問AI生成のオリジナル問題。
無料で演習を始める →