Q3 — AWS SAA-C03 第8章
第 3/65 問 | ← 第8章
Q498. ある企業では、オンプレミスのデータソースからデータを取得するためにAmazon EC2インスタンスのフェleetが使用されています。データはJSON形式であり、取得レートは最大1 MB/sに達します。EC2インスタンスが再起動されると、その時点で転送中のデータ(in-flight data)が失われます。同社のデータサイエンスチームは、取得されたデータをニアリアルタイムでクエリしたいと考えています。 この要件を満たす、スケーラブルで最小限のデータ損失を実現するニアリアルタイムなデータクエリソリューションはどれですか?
- A. データをAmazon Kinesis Data Streamsにパブリッシュし、Kinesis Data Analyticsを使用してデータをクエリします。 ✓
- B. データをAmazon Kinesis Data Firehoseにパブリッシュし、Amazon Redshiftを宛先として指定します。その後、Amazon Redshiftでデータをクエリします。
- C. 取得したデータをEC2インスタンスストアに保存し、同時にデータをAmazon Kinesis Data Firehose(宛先はAmazon S3)にパブリッシュします。その後、Amazon Athenaでデータをクエリします。
- D. 取得したデータをAmazon Elastic Block Store(Amazon EBS)ボリュームに保存し、データをAmazon ElastiCache for Redisにパブリッシュします。その後、Redisのチャネルをサブスクライブしてデータをクエリします。
正解: A. データをAmazon Kinesis Data Streamsにパブリッシュし、Kinesis Data Analyticsを使用してデータをクエリします。
解説
正解はAです。Amazon Kinesis Data Streamsは、高スループット(最大1 MB/s以上)のストリーミングデータを耐久性高く保持し、再起動や障害発生時にもin-flightデータの喪失を防ぎます(シャード単位で24時間デフォルト保持、最大7日間設定可能)。Kinesis Data Analyticsは、SQLやApache Flinkを用いてストリームデータをニアリアルタイムで処理・クエリできるため、データサイエンスチームの要件に最適です。一方、BはRedshiftへのロードに遅延(数分~数十分)が発生し、ニアリアルタイム性に劣ります。CはEC2インスタンスストアの使用により再起動時にデータが失われるため、データ損失を最小化できない点で不適切です。DはElastiCache for Redisは一時的なキャッシュであり、永続性が低く、再起動やクラスタ障害時にデータが失われる可能性が高く、またRedis自体は分析クエリ向けではなく、スケーラビリティと耐久性の観点から不適切です。