ある金融データ企業がオンプレミスのApache Kafkaクラスターをクラウドへ移行しています。 以下の要件があります。 ・グローバルの証券取引所から毎秒200,000件の市場データイベントを受信する ・15の独立したコンシューマーアプリケーションがそれぞれ異なる処理速度でデータを消費する ・規制要件として30日間のデータ保持が必要 ・既存のKafkaコードを最小限の変更で再利用する必要がある ・エンドツーエンドのレイテンシを10ms以内に維持する この要件を最も満たすAWSサービスはどれですか?
選択肢AのAmazon Kinesis Data StreamsはKafkaのAPIと非互換で既存コードの全面書き直しが必要です。Enhanced Fan-Outで複数コンシューマーをサポートできますが、Kafkaのコンシューマーグループとはオフセット管理の概念が異なります。 選択肢BのAmazon MSK(Managed Streaming for Apache Kafka)はApache Kafkaの完全マネージドサービスで、既存のKafkaプロデューサー・コンシューマーAPIと完全互換です。既存コードをほぼ変更せずに移行でき、Kafkaネイティブのコンシューマーグループにより15アプリケーションが独立したオフセット管理で異なる処理速度でデータを消費できます。ブローカーのストレージ設定で30日保持を満たし、適切なブローカーサイジングでサブ10msレイテンシを実現できます。 選択肢CのAmazon SQSはKafka APIと非互換でコードの全面書き直しが必要です。コンシューマーごとに個別キューを作成する設計は管理が煩雑で、毎秒200,000件のスループット要件も満たしにくい構成です。 選択肢DのAmazon Data Firehoseはバッファリングを伴うデータ配信サービスで、コンシューマーがS3からデータを取得する構成では分単位の遅延が生じ10ms以内のリアルタイム消費を達成できません。