Q26 — AWS SAA-C03 第2章
第 26/65 問 | ← 第2章
Q91. ある企業では、300を超えるグローバルなWebサイトおよびアプリケーションをホストしています。この企業は、毎日30 TBを超えるクリックストリームデータを分析するためのプラットフォームを必要としています。ソリューションアーキテクトは、このクリックストリームデータを送信・処理するために何を行うべきでしょうか?
- A. AWS Data Pipeline を設計して、データを Amazon S3 バケットにアーカイブし、そのデータを用いて Amazon EMR クラスターを実行して分析結果を生成します。
- B. クリックストリームデータを処理するための Amazon EC2 インスタンスの Auto Scaling グループを作成し、処理済みデータを Amazon S3 データレイクに送信して、Amazon Redshift による分析に使用できるようにします。
- C. データを Amazon CloudFront でキャッシュし、Amazon S3 バケットに保存します。S3 バケットにオブジェクトが追加された際に、AWS Lambda 関数を起動してデータを分析用に処理します。
- D. Amazon Kinesis Data Streams からデータを収集し、Amazon Kinesis Data Firehose を使用して Amazon S3 データレイクにデータを転送します。その後、Amazon Redshift にデータを読み込んで分析を行います。 ✓
正解: D. Amazon Kinesis Data Streams からデータを収集し、Amazon Kinesis Data Firehose を使用して Amazon S3 データレイクにデータを転送します。その後、Amazon Redshift にデータを読み込んで分析を行います。
解説
クリックストリームデータは、高スループット・低遅延でリアルタイム(またはニアリアルタイム)に取り込み・処理されることが求められる典型的なストリーミングワークロードです。選択肢Dは、Kinesis Data Streams(大規模なストリーミングデータの取り込みに最適)と Kinesis Data Firehose(S3 への信頼性の高いバッチ書き出しを自動化)を組み合わせ、さらに分析向けに Amazon Redshift へロードするという、AWS の推奨アーキテクチャに沿った堅牢かつスケーラブルなソリューションです。一方、選択肢Aの AWS Data Pipeline は既に非推奨(2023年12月より新規作成不可)であり、バッチ指向でリアルタイム性に乏しいため不適切です。選択肢BのEC2 Auto Scalingは、スケールアップ/ダウンの遅延や管理オーバーヘッドがあり、ストリーミングデータの継続的処理には非効率です。選択肢Cは、S3 オブジェクト作成イベント(S3 Event Notifications)に基づくLambda起動では、データ到着から処理開始までの遅延が発生し、また大量の小規模ファイル(例:1クリック=1イベント)が頻発するとLambdaの同時実行数制限やコスト増加のリスクがあります。したがって、スケーラビリティ・信頼性・運用容易性の観点から、Dが最も適切な選択です。