あるデータ分析企業が、Kinesis Data Streamsの同一シャードのデータを3つの異なるLambda関数(集計・アーカイブ・異常検知)でそれぞれ独立して処理したいと考えています。各Lambda関数がシャードごとに専用の2MB/秒スループットでデータを受信するために最も適切な設定はどれですか?
Kinesis Data Streamsのシャード数をLambda関数の数(3つ)に合わせてスケールアップする
Kinesis Data Streamsのシャード数をLambda関数の数に合わせてスケールアップする方法はコストが増加します。
D
Kinesis Data FirehoseをKinesisとLambdaの間に配置し、各Lambda関数にデータを配信する
Kinesis Data Firehoseはストレージへのデータ配信に向いており、複数Lambda関数への直接配信には適していません。
解説
Kinesis Enhanced Fan-Outを使用すると、各登録コンシューマーはシャードごとに専用の2MB/秒スループットをHTTP/2プッシュ型配信で受け取れます。
選択肢Aの各Lambda関数にデフォルトのKinesisトリガーを設定する方式ではシャードの2MB/秒を全コンシューマーで共有するため、複数コンシューマーではスループットが分散します。
選択肢CのKinesis Data Streamsのシャード数をLambda関数の数に合わせてスケールアップする方法はコストが増加します。
選択肢DのKinesis Data Firehoseはストレージへのデータ配信に向いており、複数Lambda関数への直接配信には適していません。