SAPワークロードの移行とモダン化の加速
ある企業が、オンプレミスの大規模なEC2相当サーバ群で毎晩実行している財務照合バッチを、AWS上でモダナイズしたいと考えている。バッチは既にコンテナ化済みで、個々のジョブは30〜90分かかり、夜間に数千ジョブがスパイク状に発生する。ジョブ間には依存関係(前段の完了後に後段を起動)とリトライ要件があり、Apache Sparkのような分散データ処理は使っていない。要件は「サーバ管理をなくし運用負荷を下げる」「処理量に応じた従量課金でアイドルコストを排除する」「ジョブの依存・再試行・分岐を確実に制御する」である。最も適切な構成はどれか。
AジョブをAWS Batch(Fargateコンピューティング環境)で実行し、ジョブ間の依存関係・リトライ・分岐をStep Functionsで制御する。EventBridgeスケジュールで起動し、実行時間に応じた従量課金とする
✓ 正解
30〜90分かかるコンテナ化済みジョブはBatch(Fargate)で実行時間課金でき、常時稼働サーバが不要。Step Functionsでジョブ依存・リトライ・分岐を制御し、EventBridgeで起動すれば運用負荷とコスト最適化を両立でき、全要件を満たす。
B各ジョブをAWS Lambda関数にリファクタリングし、Step Functionsで依存関係とリトライを制御する。EventBridgeスケジュールで起動して並列実行し、アイドルコストを排除する
Lambdaは最大実行時間が15分のため、30〜90分かかるジョブを実行できない。Step Functionsによる制御自体は妥当でも、コンピュート選択が時間制約に抵触するため長時間バッチには根本的に不適である。
CコンテナをECS(EC2起動タイプ)の常時稼働サービスとしてデプロイし、SQSキューにジョブを投入してワーカーが処理する。Auto Scalingでワーカー数を増減する
ECSの常時稼働サービスは継続実行されるサービス向けで、有限なバッチジョブには不向き。ジョブがない時間帯もコンテナとEC2が稼働し続けてアイドルコストが発生し、アイドル排除のコスト要件に反する。
DジョブをApache Spark化してEMRクラスターで実行し、Step Functionsでステップを制御する。処理完了後にクラスターを終了する一時クラスター構成にする
EMRはSpark/Hadoop向けで、既存ジョブをSpark化する大幅な書き換えが必要となり移行コストとリスクが高い。分散データ処理ではない通常バッチにEMRはオーバースペックで、要件に対し不適切である。
解説
実行に30〜90分を要するコンテナ化済みバッチには、AWS Batchを基盤に選ぶのが最適。Fargateコンピューティング環境を使えばサーバ管理なしで実行時間分のみ課金され、常時稼働によるアイドルコストを排除できる。ジョブ間の依存関係・リトライ・分岐はStep Functionsで宣言的に制御し、EventBridgeスケジュールで起動すれば運用負荷も低く、すべての要件を同時に満たす。
選択肢のAWS Lambdaは最大15分の実行時間制限により30〜90分のジョブを実行できない。
選択肢のECS常時稼働サービスは有限なバッチ処理に不向きで、ジョブがない時間帯もEC2が稼働しアイドルコストが発生する。
選択肢のAmazon EMRはSpark化への大幅な書き換えが必要で、分散データ処理でない通常バッチにはオーバースペックである。
ドメイン別正答率・予想スコアでリアルタイムに実力把握
無限ノックでSAPを徹底対策。全問AI生成のオリジナル問題。
無料で演習を始める →