Q1 — AWS SAA-C03 第3章
第 1/65 問 | ← 第3章
Q131. ある会社が、ユーザーが小さなファイルを Amazon S3 にアップロードするアプリケーションを設計しています。ユーザーがファイルをアップロードすると、そのファイルは1回限りの単純な処理を経てデータを変換し、後続の分析のために JSON 形式で保存する必要があります。各ファイルは、アップロード直後にできるだけ迅速に処理される必要があります。需要は変動します。ある日は多数のファイルがアップロードされる一方、他の日は少数またはまったくアップロードされない場合もあります。これらの要件を満たすうち、運用オーバーヘッドが最も少ないソリューションはどれですか?
- A. Amazon EMR を設定して Amazon S3 のテキストファイルを読み込み、処理スクリプトを実行してデータを変換し、結果として得られる JSON ファイルを Amazon Aurora DB クラスターに保存します。
- B. Amazon S3 を設定して、新しいファイルのアップロード時に Amazon Simple Queue Service (Amazon SQS) キューへイベント通知を送信するようにします。Amazon EC2 インスタンスを使用してキューからメッセージを読み取り、データを処理し、結果として得られる JSON ファイルを Amazon DynamoDB に保存します。
- C. Amazon S3 を設定して、新しいファイルのアップロード時に Amazon Simple Queue Service (Amazon SQS) キューへイベント通知を送信するようにします。AWS Lambda 関数を使用してキューからメッセージを読み取り、データを処理し、結果として得られる JSON ファイルを Amazon DynamoDB に保存します。 ✓
- D. Amazon EventBridge(Amazon CloudWatch Events)を設定して、新しいファイルがアップロードされた際に Amazon Kinesis Data Streams へイベントを送信するようにします。AWS Lambda 関数を使用してストリームからイベントを消費し、データを処理し、結果として得られる JSON ファイルを Amazon Aurora DB クラスターに保存します。
正解: C. Amazon S3 を設定して、新しいファイルのアップロード時に Amazon Simple Queue Service (Amazon SQS) キューへイベント通知を送信するようにします。AWS Lambda 関数を使用してキューからメッセージを読み取り、データを処理し、結果として得られる JSON ファイルを Amazon DynamoDB に保存します。
解説
このシナリオでは、「ファイルアップロード直後の低遅延処理」「需要の変動への自動スケーリング対応」「最小限の運用オーバーヘッド」が鍵となります。選択肢Cは、Amazon S3 のイベント通知(S3 Event Notifications)を Amazon SQS へ直接送信し、それを AWS Lambda で処理する構成です。Lambda はイベント駆動型で、スケールアウト/スケールインが自動的かつ即時に行われ、サーバー管理や容量計画が不要です。SQS は一時的なバッファとして機能し、Lambda の処理失敗時の再試行や負荷平準化にも寄与します。選択肢A(EMR)とB(EC2)は、クラスターやインスタンスのプロビジョニング・管理・スケーリングが必要で、運用オーバーヘッドが大きいです。選択肢Dは Kinesis Data Streams を介したイベント配信ですが、Kinesis はリアルタイムストリーミング向けであり、単一ファイルの1回限り処理には過剰で、シャード管理やコスト・複雑さが増します。また、Aurora はトランザクション指向のリレーショナルDBであり、JSON ファイルの格納には DynamoDB のようなキー値ストアの方がシンプルかつ適しています。したがって、運用オーバーヘッドが最小で、要件を最もよく満たすのは選択肢Cです。