Q46 — AWS SAA-C03 第12章
第 46/100 問 | ← 第12章
Q846. ある企業が、オンプレミスのデータセンターからAWSへレガシーアプリケーションを移行しようとしています。このアプリケーションは、1分から20分程度実行される数百のcronジョブに依存しており、それらは1日に複数回、異なる繰り返しスケジュールで実行されます。企業は、最小限のリファクタリングで、AWS上でこれらのcronジョブをスケジュールおよび実行できるソリューションを求めています。また、将来的なイベント(将来の時刻)に応じてcronジョブを実行できる機能も必須です。これらの要件を満たすソリューションはどれですか?
- A. cronジョブ用のコンテナイメージを作成します。Amazon EventBridge Scheduler を使用して繰り返しスケジュールを作成し、cronジョブタスクを AWS Lambda 関数として実行します。
- B. cronジョブ用のコンテナイメージを作成します。Amazon Elastic Container Service (Amazon ECS) 上で AWS Batch を使用し、スケジューリングポリシーを設定してcronジョブを実行します。
- C. cronジョブ用のコンテナイメージを作成します。Amazon EventBridge Scheduler を使用して繰り返しスケジュールを作成し、cronジョブタスクを AWS Fargate 上で実行します。 ✓
- D. cronジョブ用のコンテナイメージを作成します。AWS Step Functions で、Waitステートを用いて指定時刻にcronジョブを実行するワークフローを作成します。RunTask アクションを使用して、cronジョブタスクを AWS Fargate 上で実行します。
正解: C. cronジョブ用のコンテナイメージを作成します。Amazon EventBridge Scheduler を使用して繰り返しスケジュールを作成し、cronジョブタスクを AWS Fargate 上で実行します。
解説
最小限のリファクタリングでAWS上でcronジョブをスケジュール・実行し、将来的なイベントへの対応も可能にする推奨ソリューションは、選択肢Cです:「cronジョブ用のコンテナイメージを作成し、Amazon EventBridge Scheduler を用いて繰り返しスケジュールを作成し、cronジョブタスクを AWS Fargate 上で実行する」。理由は以下の通りです。選択肢Cでは、cronジョブをコンテナイメージ化し、Amazon EventBridge Scheduler を使って各ジョブの実行タイミングを定義します。そして、そのタスクをAWS Fargate上で実行します。Amazon EventBridge Scheduler は、繰り返しイベントを正確にスケジュールする機能を提供し、各cronジョブに最適な間隔でイベントをトリガーできます。AWS Fargate を利用することで、インフラストラクチャ管理の必要なく、サーバーレスなコンピューティング能力を活用できます。既存のcronジョブの構成やロジックを大幅に変更することなく、コンテナ化によりそのまま実行可能です。一方、選択肢AはLambda関数での実行を提案していますが、実行時間制限(最大15分)やコードの再設計が必要になる可能性があり、最小限のリファクタリングという要件にはやや不向きです。選択肢BはAWS BatchとECSを組み合わせるものですが、Batch向けのジョブ定義やスクリプト修正など、既存のcron環境からの移行コストが大きくなるため、リファクタリング最小化には適合しません。選択肢DはStep FunctionsのWaitステートとRunTaskを組み合わせる方法ですが、ワークフロー設計や状態管理の追加複雑性が生じ、Fargateへの直接実行よりも余分な開発・保守負荷がかかります。したがって、最小限のリファクタリング、サーバーレスな運用、将来的なイベント対応のすべてを満たす最適なソリューションは、選択肢Cです。