正解: Amazon Kinesis Data Firehoseでストリームを取り込み、Amazon Kinesis Data AnalyticsとRandom Cut Forest (RCF) を使用して異常検出を行います。その後、Kinesis Data Firehoseを介して結果をAmazon S3に配信します。.
これが解答である理由
このソリューションは、リアルタイム処理と永続化の要件を最も効率的に満たします。Kinesis Data Firehoseはストリームデータを簡単に取り込み、Kinesis Data Analyticsはリアルタイムで異常検出アルゴリズム(Random Cut Forestは異常検出に最適)を適用できます。処理された結果は、再度Kinesis Data Firehoseを介してS3に直接永続化でき、追加のETLやデータ転送ステップが不要です。
EMR上のSpark StreamingとHDFSはリアルタイム処理は可能ですが、HDFSはデータレイクの永続化先としてはS3よりも管理が複雑でコストがかかる可能性があります。S3への取り込み後にAWS BatchやAWS Glueジョブを使用するオプションは、リアルタイム処理ではなくバッチ処理に適しており、要件を満たしません。