Q28 — AWS SAA-C03 第8章
第 28/65 問 | ← 第8章
Q523. ある企業が従来のアプリケーションをAWSへ移行しようとしています。このアプリケーションは1時間ごとにバッチジョブを実行し、CPU使用率が非常に高い負荷を発生させます。オンプレミスサーバーでは、このバッチジョブの平均実行時間は15分です。該当サーバーは64 vCPUおよび512 GiBのメモリを搭載しています。 このバッチジョブを15分以内で実行し、かつ運用上のオーバーヘッドが最小となるソリューションはどれですか?
- A. AWS Lambdaとファンクショナルスケーリングを使用する。
- B. Amazon Elastic Container Service(Amazon ECS)とAWS Fargateを使用する。
- C. Amazon LightsailとAWS Auto Scalingを使用する。
- D. AWS BatchをAmazon EC2上で使用する。 ✓
正解: D. AWS BatchをAmazon EC2上で使用する。
解説
このバッチジョブは15分間の実行時間と高CPU負荷(64 vCPU相当)という特徴を持ち、かつ「運用オーバーヘッドが最小」であることが要件です。AWS Lambdaは最大15分の実行時間制限があり(※2023年現在)、本ケースの平均15分はタイムアウトリスクが極めて高く、また64 vCPUや大規模メモリの割り当てが不可能なため不適切です(Aは不正解)。Amazon ECS with Fargateはマネージドなコンテナ実行環境ですが、Fargateの最大vCPUは64(vCPU単位で指定可能)、最大メモリは256 GiBであり、512 GiBのメモリ要件を満たせません(Bは不正解)。Amazon Lightsailはシンプルな仮想サーバー向けサービスであり、Auto Scaling機能はWebアプリ向けのHTTPトラフィックベースで、バッチ処理のスケジュール実行やスケールアウトには対応しておらず、また64 vCPU/512 GiBのインスタンスタイプも提供されていません(Cは不正解)。一方、AWS Batchは、スケジュールされたバッチジョブを自動的にスケール可能なEC2インスタンス(またはFargate)上で実行するマネージドサービスです。EC2起動タイプを選択すれば、c5.18xlarge(72 vCPU, 144 GiB)やm5.24xlarge(96 vCPU, 384 GiB)、あるいは最新世代のc6i.32xlarge(128 vCPU, 256 GiB)など、必要に応じて十分なvCPUとメモリを持つインスタンスを自動的にプロビジョニングできます(さらに複数インスタンスを並列実行することで、合計メモリ要件も満たせる)。また、AWS Batchはジョブのキュー管理、依存関係、再試行、ログ統合などを内包しており、カスタムスケジューラやインフラ管理のオーバーヘッドを大幅に削減します。したがって、運用オーバーヘッドが最小かつ要件を満たす唯一の選択肢はDです。