Q22 — AWS SAA-C03 第13章
第 22/100 問 | ← 第13章
Q922. ある会社が、顧客が画像を Amazon S3 バケットにアップロードできるアプリケーションを運用しています。毎晩、同社は Amazon EC2 スポットファleet を起動し、その日に受信したすべての画像を処理しています。各画像の処理には 2 分間と 512 MB のメモリが必要です。ソリューションアーキテクトは、アプリケーションを変更して、画像がアップロードされた直後に処理されるようにする必要があります。これらの要件を最もコスト効率よく満たす変更はどれですか?
- A. Amazon S3 イベント通知を使用して、画像の詳細を含むメッセージを Amazon Simple Queue Service (Amazon SQS) キューに書き込みます。AWS Lambda 関数を設定して、キューからメッセージを読み取り、画像を処理します。 ✓
- B. Amazon S3 イベント通知を使用して、画像の詳細を含むメッセージを Amazon Simple Queue Service (Amazon SQS) キューに書き込みます。EC2 リザーブドインスタンスを設定して、キューからメッセージを読み取り、画像を処理します。
- C. Amazon S3 イベント通知を使用して、画像の詳細を含むメッセージを Amazon Simple Notification Service (Amazon SNS) トピックにパブリッシュします。Amazon Elastic Container Service (Amazon ECS) のコンテナインスタンスを設定して、このトピックをサブスクライブし、画像を処理します。
- D. Amazon S3 イベント通知を使用して、画像の詳細を含むメッセージを Amazon Simple Notification Service (Amazon SNS) トピックにパブリッシュします。AWS Elastic Beanstalk アプリケーションを設定して、このトピックをサブスクライブし、画像を処理します。
正解: A. Amazon S3 イベント通知を使用して、画像の詳細を含むメッセージを Amazon Simple Queue Service (Amazon SQS) キューに書き込みます。AWS Lambda 関数を設定して、キューからメッセージを読み取り、画像を処理します。
解説
アップロードされた画像を即座に処理するようアプリケーションを変更し、かつコスト効率を最大化するには、最も適切なソリューションは以下の通りです: 選択肢 A:Amazon S3 イベント通知を活用し、画像の詳細を含むメッセージを Amazon SQS キューに書き込みます。その後、AWS Lambda 関数を設定して、キューからメッセージを読み取り、画像を処理します。 この選択肢では、画像が S3 バケットにアップロードされると自動的にイベント通知が発行され、その内容が SQS キューに送信されます。Lambda 関数はキューをポーリング(または SQS イベントソースマッピングを用いてプッシュベースで)してメッセージを取得し、サーバーレスで画像処理を実行します。Lambda は実行中のみ課金されるため、コスト効率が高く、またトラフィックに応じて自動的にスケールします。さらに、各関数実行に 512 MB のメモリを割り当てることができ、2 分間の処理時間も Lambda のタイムアウト上限(最大 15 分)内に収まります。 選択肢 B は EC2 リザーブドインスタンスを用いるものですが、継続的な稼働やインスタンス管理・スケーリングのオーバーヘッドが発生し、Lambda のようなオンデマンド実行モデルに比べてコスト効率が劣ります。 選択肢 C および D は、それぞれ Amazon ECS コンテナや Elastic Beanstalk を用いたマネージドサービスを利用するものですが、これらはサーバーレスに比べてインフラ管理の複雑さ・運用負荷・最小構成コスト(例:常に実行中のタスクやインスタンス)が高く、本ユースケースにおけるコスト最適化という観点では不適切です。 以上より、選択肢 A(S3 イベント通知 → SQS → AWS Lambda)は、サーバーレスかつ自動スケーリング可能な、最もコスト効率の高いソリューションです。