Q5 — AWS SAA-C03 第6章
第 5/65 問 | ← 第6章
Q370. データ分析会社が、バッチ処理システムをAWSへ移行しようとしています。同社は、1日に複数回、FTP経由で数千件の小規模なデータファイルを受信します。オンプレミスのバッチジョブがこれらのデータファイルを夜間に処理していますが、処理には数時間かかります。同社は、AWS上のソリューションを用いて、受信したデータファイルをできるだけ早く処理したいと考えており、ファイル送信元のFTPクライアントに対する変更は最小限に抑えたいです。また、各ファイルの処理完了後には、そのファイルを自動的に削除する必要があります。1ファイルあたりの処理時間は3~8分程度です。これらの要件を、最も運用効率の高い方法で満たすソリューションはどれですか?
- A. Amazon EC2インスタンス上でFTPサーバーを実行し、受信したファイルをAmazon S3 Glacier Flexible Retrievalにオブジェクトとして保存します。AWS Batchでジョブキューを設定し、Amazon EventBridgeルールを用いて、S3 Glacier Flexible Retrievalからオブジェクトを夜間一括で処理するジョブを起動します。ジョブによる処理完了後に、オブジェクトを削除します。
- B. Amazon EC2インスタンス上でFTPサーバーを実行し、受信したファイルをAmazon Elastic Block Store(Amazon EBS)ボリューム上に保存します。AWS Batchでジョブキューを設定し、Amazon EventBridgeルールを用いて、EBSボリューム上のファイルを夜間一括で処理するジョブを起動します。ジョブによる処理完了後に、ファイルを削除します。
- C. AWS Transfer Familyを用いてFTPサーバーを作成し、受信したファイルをAmazon Elastic Block Store(Amazon EBS)ボリューム上に保存します。AWS Batchでジョブキューを設定し、各ファイルの到着時にAmazon S3イベント通知をトリガーとして、AWS Batch内のジョブを起動します。ジョブによる処理完了後に、ファイルを削除します。
- D. AWS Transfer Familyを用いてFTPサーバーを作成し、受信したファイルをAmazon S3 Standardに保存します。各ファイルの処理および処理後の削除を行うAWS Lambda関数を作成します。S3イベント通知を用いて、ファイル到着時にLambda関数を起動します。 ✓
正解: D. AWS Transfer Familyを用いてFTPサーバーを作成し、受信したファイルをAmazon S3 Standardに保存します。各ファイルの処理および処理後の削除を行うAWS Lambda関数を作成します。S3イベント通知を用いて、ファイル到着時にLambda関数を起動します。
解説
ファイルがS3に転送された直後に即時処理を開始する必要があり、複数ファイルをまとめて待機してから一括処理するのではなく、個別にリアルタイムで処理すべきです。また、1ファイルあたりの処理時間が3~8分と比較的短く、AWS Lambdaで十分対応可能です。選択肢Cは誤りです。なぜなら、AWS Batchは大規模なデータセットや大量のジョブを一度に実行する用途に適しており、単一ファイルごとの短時間処理には過剰かつ非効率であるためです。