Q51 — AWS SAP-C02 第3章

第 51/75 問 | ← 第3章

Q276. ある企業では、10,000台を超えるセンサーがMessage Queuing Telemetry Transport(MQTT)プロトコルを用いて、オンプレミスのApache Kafkaサーバーにデータを送信しています。このオンプレミスKafkaサーバーは受信したデータを変換し、結果をAmazon S3バケット内のオブジェクトとして保存します。最近、Kafkaサーバーがクラッシュし、復旧中の間、センサーデータが失われました。ソリューションアーキテクトは、同様の事象を防止するため、AWS上で高可用性かつスケーラブルな新しい設計を構築する必要があります。 これらの要件を満たすソリューションはどれですか?

正解: C. AWS IoT Coreを展開し、Amazon Kinesis Data Firehoseの配信ストリームに接続します。データ変換を処理するAWS Lambda関数を使用します。センサーからAWS IoT Coreへデータを送信するようルーティングします。

解説

正解はCです。AWS IoT Coreを展開し、Amazon Kinesis Data Firehoseの配信ストリームと連携させ、AWS Lambda関数でデータ変換を実行するソリューションです。この設計では、AWS IoT Coreが高可用性・スケーラブルなMQTTエンドポイントを提供し、Kinesis Data Firehoseが変換後のデータを自動的にAmazon S3に永続化します。これにより、Kafkaサーバー単一障害点によるデータ喪失リスクが排除されます。さらに、AWS IoT Coreはデバイス認証・承認機能を備え、セキュアなデバイス-to-cloud通信を実現します。 A、B、Dは不適切です: Aは、EC2上でのKafkaのアクティブ/スタンバイ構成ですが、負荷に応じた自動スケーリングがなく、障害発生時のフェイルオーバーも手動介入が必要です。また、クラッシュ中のデータ喪失問題を根本的に解決しません。 Bは、Amazon MSKへの移行により可用性・スケーラビリティは向上しますが、NLBを介したクライアント側のルーティングでは、MQTTプロトコルの本質的な制約(例:クライアントの再接続遅延やメッセージロスト)により、クラッシュ時のデータ喪失リスクが残ります。加えて、NLBとMSKの組み合わせは非推奨であり、MSKのネイティブなエンドポイント利用が標準です。 Dは、AWS IoT CoreとEC2上のKafkaを併用する設計ですが、EC2インスタンスが新たな単一障害点となり、自動スケーリングや高可用性が確保されず、クラッシュ時のデータ喪失問題を解消できません。