正解: Amazon Kinesis Data Firehoseを配信先としてS3とともに使用します。FirehoseがAWS Lambda関数を呼び出して変換を実行するように設定します。Firehoseのソースレコードバックアップ機能を有効にして、生のレコードを保存します。.
これが解答である理由
このアーキテクチャは、すべての要件を最も少ない労力で満たします。Kinesis Data Firehoseは、S3へのリアルタイムデータ取り込みと、取り込み中のデータ変換(Lambda経由)をネイティブにサポートしています。ソースレコードバックアップ機能は、生のレコードをS3に保存し、変換失敗時のエラー処理も提供します。
Amazon MSKはストリーミングデータ処理に優れていますが、S3への取り込み、変換、エラー処理のロジックをECSワーカーで構築する必要があり、より多くの労力が必要です。Kinesis Data FirehoseからAWS Glue Sparkジョブを呼び出すオプションは、Glueジョブの起動に時間がかかり、リアルタイム要件に合わない可能性があります。Kinesis Data StreamsをFirehoseの前に配置するオプションは、Lambda関数を2回呼び出すことになり、不要な複雑さとコストが増加します。