Q14 — AWS SAA-C03 第5章

第 14/65 問 | ← 第5章

Q314. ある企業が、.NET 6 Framework 上で動作する Windows コンテナ内のジョブをコンテナ化しました。このジョブを AWS クラウド上で実行したいと考えています。ジョブは 10 分ごとに実行され、実行時間は 1 分から 3 分の間で変動します。これらの要件を最もコスト効率よく満たす解決策はどれですか?

正解: C. Amazon Elastic Container Service (Amazon ECS) を AWS Fargate 上で使用してジョブを実行し、ジョブのコンテナイメージに基づくスケジュール済みタスクを作成して 10 分ごとに実行する。

解説

要件(.NET 6 Framework 上で動作する Windows ジョブを AWS クラウドで実行し、10 分ごとに実行、実行時間は 1~3 分の可変)を最もコスト効率よく満たすのは、選択肢 C です:Amazon Elastic Container Service (Amazon ECS) を AWS Fargate 上で使用してジョブを実行し、ジョブのコンテナイメージに基づくスケジュール済みタスクを作成して 10 分ごとに実行する。AWS Fargate 上の Amazon ECS では、基盤となるインフラストラクチャを管理することなく、Docker コンテナを簡単に実行および管理できます。Amazon ECS 内でスケジュール済みタスクを作成することで、ジョブを手動で毎回トリガーすることなく、確実に 10 分ごとに実行できます。また、実行時間が 1~3 分と短く可変であるため、Amazon ECS を用いればジョブのニーズに応じてリソースを柔軟にスケールでき、コスト削減につながります。選択肢 A(ジョブのコンテナイメージに基づく AWS Lambda 関数を作成)は、10 分ごとに呼び出されるため、無料枠を超えた場合の追加課金が発生する可能性があり、コスト効率が低い可能性があります。選択肢 B(AWS Batch を使用し、AWS Fargate リソースを利用するジョブを作成)は、AWS Batch がバッチ処理ワークロード向けに設計されているのに対し、本ジョブは短時間実行かつ高頻度(10 分ごと)であるため、過剰な機能・コストとなり得ます。選択肢 D(スタンドアロンタスクを作成し、Windows タスク スケジューラでスケジューリング)は、スケジューリングを手動で管理する必要があり、運用負荷が増大します。