Open4
Kinesis Data Streamのメモ

Kinesis Data Stream(以下KDS)
ストリームデータを処理するためのバッファ。
SDKやAgentを使用して直接ストリームデータをKDSへ送信することが可能。
受信側もSDKで取得できるほか、トリガー設定をすることでLambdaでも逐次処理することが可能。
バッファという観点でトラフィック量が少ないならSQSのFIFOでも同じことができるが、許容できるトラフィック量や柔軟な保存期間設定が異なる。

クォータ

シャードについて
シャード = KDSが保存するバッファの単位
1シャードあたり、1MB/sもしくは1000レコード/sの書き込み、2MB/sもしくは2000レコード/sの読み取りが可能。
このシャードを増やすことで大量のストリームデータをバッファすることが可能。
シャードの増やし方は、スループットに応じてキャパシティを調整してくれるけど割高なオンデマンドモードと、あらかじめシャード数を指定するプロビジョニングモードがある。

シャードの指定について
KDSにデータを書き込む際にパーティションキーを指定する。このパーティションキーをハッシュ化した値によりシャードが選択される。
読み取り時は1つのシャードからデータを取り出すため、時系列順に処理したいものは同じシャードに入れるために同じパーティションキーを指定する。
逆に、特定のシャードに偏るとクォータがあるため、パーティションキーは可能な限りバラバラな方が良い。
バラバラ度合いのことをカーディナリティというらしい。