Q52 — AWS SAA-C03 第13章
第 52/100 問 | ← 第13章
Q952. ある企業では、何千匹ものウミガメの移動パターンを記録するためにGPSトラッカーを使用しています。各トラッカーは5分ごとに、ウミガメが100ヤード(91.4メートル)以上移動したかどうかを確認します。移動が検出された場合、そのトラッカーは新しい座標を、単一のAWSリージョン内の複数のAvailability Zoneに配置された3台のAmazon EC2インスタンスで実行されるWebアプリケーションへ送信します。最近、予期せぬ大量のトラッカーデータ処理により、このWebアプリケーションが過負荷状態に陥り、データが失われ、イベントを再処理する手段もありませんでした。ソリューションアーキテクトは、このような問題を再発させないよう対策を講じる必要があります。また、運用オーバーヘッドが最小限となるソリューションを求めています。これらの要件を満たすために、ソリューションアーキテクトは何を行うべきでしょうか?
- A. データ保存用にAmazon S3バケットを作成し、アプリケーションがバケット内の新規データをスキャンして処理するように設定する。
- B. 送信された位置座標を処理するためのAmazon API Gatewayエンドポイントを作成し、AWS Lambda関数を用いて各項目を並列に処理する。
- C. 受信データを格納するためのAmazon Simple Queue Service(Amazon SQS)キューを作成し、アプリケーションが新規メッセージをポーリングして処理するように設定する。 ✓
- D. 送信された位置座標を格納するためのAmazon DynamoDBテーブルを作成し、アプリケーションが処理済みデータを削除するためにTTL(Time-To-Live)機能を活用して、テーブルから新規データをクエリするように設定する。
正解: C. 受信データを格納するためのAmazon Simple Queue Service(Amazon SQS)キューを作成し、アプリケーションが新規メッセージをポーリングして処理するように設定する。
解説
データ損失を防止し、運用オーバーヘッドを最小限に抑える最適なソリューションは、選択肢Cです。つまり、「受信データを格納するためのAmazon Simple Queue Service(Amazon SQS)キューを作成し、アプリケーションが新規メッセージをポーリングして処理するように設定する」ことです。その理由は以下の通りです。 ・デカップリング:SQSはメッセージキューとして機能し、データ生成元(GPSトラッカー)とデータ消費先(EC2インスタンス)を分離します。これにより、突発的なデータ増加によるアプリケーションの過負荷を防げます。 ・スケーラビリティ:SQSは極めて高いスケーラビリティを持ち、大量のメッセージを処理してもパフォーマンスが劣化しません。 ・データ永続性:SQS内のメッセージは永続的に保存されるため、アプリケーションの一時的な障害発生時でもデータが失われることはありません。 ・ポーリング機構:アプリケーションは自身の処理能力に応じたペースでSQSキューから新規メッセージをポーリングでき、データ損失を防ぎつつ、すべてのデータを最終的に確実に処理できます。 他の選択肢が不適切な理由: A:Amazon S3は優れたストレージソリューションですが、リアルタイムのメッセージ処理には設計されていません。新規データをスキャンする方法は非効率であり、高負荷時にデータ損失を招く可能性があります。 B:API GatewayとLambdaはWebリクエスト処理に優れていますが、GPSトラッカーからの大量リアルタイムデータ処理には最適ではありません。処理遅延が課題となり、ピーク時の過負荷を回避できない可能性があります。 D:DynamoDBは高スループットなデータ処理に優れていますが、リアルタイムのメッセージキューイング用途には設計されていません。新規データを継続的にクエリすると、リソース消費が大きく、パフォーマンス問題を引き起こす可能性があります。 まとめると、選択肢CはGPSトラッカーからの大量データを扱う上で最も堅牢かつ効率的なソリューションです。SQSは信頼性・スケーラビリティ・永続性を備えたメッセージキューであり、アプリケーションが自身のペースでデータを処理できるため、データ損失を防ぎ、効率的なデータ処理を実現します。