Q18 — AWS SAA-C03 第4章
第 18/105 問 | ← 第4章
Q213. ある企業は、アプリケーション向けのリアルタイムデータ取り込みアーキテクチャを構成する必要があります。このアーキテクチャには、API、ストリーミング中のデータを変換する処理、およびデータの保存ソリューションが必要です。これらの要件を満たすソリューションのうち、運用オーバーヘッドが最も少ないものはどれですか?
- A. API をホストするために Amazon EC2 インスタンスをデプロイし、その API から Amazon Kinesis Data Stream へデータを送信します。Kinesis Data Stream をデータソースとして使用する Amazon Kinesis Data Firehose デリバリーストリームを作成します。AWS Lambda 関数を使用してデータを変換します。Kinesis Data Firehose デリバリーストリームを使用して、データを Amazon S3 に送信します。
- B. API をホストするために Amazon EC2 インスタンスをデプロイし、その API から AWS Glue へデータを送信します。EC2 インスタンスでソース/デスティネーションチェックを無効化します。AWS Glue を使用してデータを変換し、Amazon S3 へデータを送信します。
- C. Amazon API Gateway の API を設定し、その API から Amazon Kinesis Data Stream へデータを送信します。Kinesis Data Stream をデータソースとして使用する Amazon Kinesis Data Firehose デリバリーストリームを作成します。AWS Lambda 関数を使用してデータを変換します。Kinesis Data Firehose デリバリーストリームを使用して、データを Amazon S3 に送信します。 ✓
- D. Amazon API Gateway の API を設定し、その API から AWS Glue へデータを送信します。AWS Lambda 関数を使用してデータを変換します。AWS Glue を使用してデータを Amazon S3 へ送信します。
正解: C. Amazon API Gateway の API を設定し、その API から Amazon Kinesis Data Stream へデータを送信します。Kinesis Data Stream をデータソースとして使用する Amazon Kinesis Data Firehose デリバリーストリームを作成します。AWS Lambda 関数を使用してデータを変換します。Kinesis Data Firehose デリバリーストリームを使用して、データを Amazon S3 に送信します。
解説
この要件では、最小限の運用オーバーヘッド(つまり、サーバー管理やインフラストラクチャのスケーリング・監視などの手動作業を最小化)が求められています。選択肢 A と B では Amazon EC2 インスタンスを使用しており、OS のパッチ適用、セキュリティ管理、スケーリング、可用性確保など、運用負荷が発生します。一方、選択肢 C では、完全マネージドサービス(API Gateway、Kinesis Data Stream、Kinesis Data Firehose、Lambda、S3)のみを使用しており、すべてのコンポーネントが自動スケーリング・高可用性・メンテナンス不要です。また、Kinesis Data Firehose は、Kinesis Data Stream からのデータ受信、Lambda を用いたリアルタイム変換、S3 への永続化をシームレスに実現できます。選択肢 D は、AWS Glue が主にバッチ処理向けであり、リアルタイムストリーミングデータの取り込み・変換には不適切です(Glue Streaming ETL は存在しますが、低遅延リアルタイム処理には Lambda + Kinesis の組み合わせの方が適しています)。したがって、運用オーバーヘッドが最小かつ要件を完全に満たすのは選択肢 C です。