本稿は、AWS Solution Architect Professional に出題される Amazon Kinesis Data Streams について個人用にまとめた記事です。
目次
Kinesis で出題されるシナリオパターン
- 大量のデータをリルタイムで処理をする
Amazon Kinesis Data Streams とは
サーバや IoT などのエッジデバイスから大量に送られてくるデータをリアルタイムに高速に別のサービスに転送するためのサービスです。いわゆる土管です。
データの取り込みと処理の応答時間はリアルタイムで行われるため、処理は軽量です。
Amazon Kinesis Data Stream で覚える用語
Amazon Kinesisi Data Stream の概念を理解するのに以下の用語について覚えておく必要があります。
プロデューサ
Kinesis Data Streams にデータを送信する元を指します。エッジデバイス、サーバ、スマホなどが該当します。
コンシューマ
Kinesis Data Streams の送り先を指します。S3 や DynamoDB などが該当します。
シャード
ストリーム内のデータレコードの一意に識別されたグループの事をいいます。ストリームは複数のシャードで構成されており、プロデューサは指定のシャードにデータを送ります。
シャード
シャードの数はプロデューサからのデータ転送速度によって決まります。プロデューサから送信されてくるデータ量に応じて自動拡張することは可能ですが、自動拡張では1度に 2 倍しかシャードを増やせないため、データ量をある程度予想し、事前にシャードを作成することが望ましいでしょう。
シャードの機能上限
シャードの読み取りは最大 1 秒あたり 5 件で、最大合計レートは 1 秒あたり 2 MB です。
書き込みは 1 秒あたり 1,000 レコードで、最大合計レートは 1 秒あたり 1 MB までです。
シャード数の決定
たとえばプロデューサが 1 秒で 3 MB のデータを送ってくる場合、シャードは 3 つ用意する必要があります。コンシューマが 1 秒あたり、10 MB 読み込むのであれば、5 つのシャードが必要です。
問題文によもりますが、入ってくる量より読み込む量が多いという事は無いと思いますが、取り込む量とコンシューマに送信する量で上限値を計算して、シャードの数を決定するとよいでしょう。
Kinesis Data Streams の制限
- 1 つのシャードは 1 秒あたり最大 1 MiB のデータを取り込むことができ (パーティションキーを含む)、書き込みについては 1 秒あたり 1,000 レコードを取り込むことができます。
- デフォルトのシャード上限数はAWS リージョン 米国東部(バージニア北部)、米国西部 (オレゴン)、および 欧州 (アイルランド) で 500 シャードです。その他のリージョンのデフォルトのシャード制限はすべて 200 シャードです。