Q50 — AWS SAA-C03 第10章

第 50/100 問 | ← 第10章

Q650. ある企業が、ファイルを Amazon S3 バケットにアップロードするアプリケーションをホストしています。アップロード後、ファイルはメタデータを抽出するために処理され、その処理時間は5秒未満です。アップロードされるファイルの量および頻度は、1時間あたり数ファイルから、数百件の同時アップロードまで変動します。この要件を満たすコスト効率の高いアーキテクチャを設計するよう、ソリューションズアーキテクトに依頼しました。ソリューションズアーキテクトは何を推奨すべきでしょうか?

正解: B. S3 バケット内にオブジェクト作成イベント通知を設定し、AWS Lambda 関数を呼び出してファイルを処理する。

解説

ファイルを Amazon S3 バケットにアップロードし、その後メタデータを抽出して処理するという要件を満たすコスト効率の高いアーキテクチャを設計する場合、最も適した選択肢は以下のとおりです: B. S3 バケット内にオブジェクト作成イベント通知を設定し、AWS Lambda 関数を呼び出してファイルを処理する。 この解決策の根拠は以下の通りです: 選択肢 B:S3 バケット内にオブジェクト作成イベント通知を設定し、AWS Lambda 関数を呼び出してファイルを処理する。 S3 バケットでオブジェクト作成イベント通知を設定することで、新しいオブジェクト(ファイル)がアップロードされるたびに AWS Lambda 関数を自動的に起動できます。Lambda 関数はその後、ファイルを読み込んでメタデータを抽出する処理を実行します。このアプローチはコスト効率が高く、Lambda の実行時間のみに対して課金されるため、アップロードのボリュームや頻度の変動にも自動的にスケール対応可能です。 選択肢 A:AWS CloudTrail トレールを設定して S3 API 呼び出しをログ記録し、AWS AppSync を使用してファイルを処理する。 CloudTrail は主に API 呼び出しの監査・ログ記録を目的としており、ファイルアップロードの処理やメタデータ抽出には不適切です。また、AWS AppSync は GraphQL API の構築向けサービスであり、ファイル処理やメタデータ抽出のユースケースには最適ではありません。 選択肢 C:Amazon Kinesis Data Streams を設定してデータを処理・Amazon S3 へ送信し、AWS Lambda 関数を呼び出してファイルを処理する。 Amazon Kinesis Data Streams はリアルタイムストリーミング向けのサービスであり、単純なファイルアップロード後のメタデータ抽出という要件には過剰な複雑さをもたらします。追加の設定・管理オーバーヘッドが発生し、コスト効率やシンプルさの観点で最適とは言えません。 選択肢 D:Amazon Simple Notification Service (Amazon SNS) トピックを設定して Amazon S3 にアップロードされたファイルを処理し、AWS Lambda 関数を呼び出してファイルを処理する。 Amazon SNS はプッシュ/サブスクライブ型のメッセージ配信サービスであり、ファイルの処理やメタデータ抽出といったワークロードには本来向いていません。SNS を経由して Lambda を起動することも可能ですが、不要な中間層を導入し、スケーラビリティや運用の複雑さを増すため、本ユースケースでは非効率です。 以上より、要件を満たし、かつコスト効率が高く、シンプルかつスケーラブルなソリューションは、S3 バケットのオブジェクト作成イベント通知を用いて AWS Lambda 関数を直接起動する方法(選択肢 B)です。これは、Lambda の簡便性と自動スケーリング能力を活かし、変動するアップロード量・頻度に柔軟に対応できる最適な設計です。