Kinesis
AWS のリアルタイムデータストリーミングサービスで、大量のデータを収集・処理・分析する
AWSリアルタイム
Kinesis とは
Amazon Kinesis は、リアルタイムデータストリーミングサービスで、大量のデータ (ログ、クリックストリーム、IoT データ) を収集・処理・分析する。SQS がメッセージキューであるのに対し、Kinesis はデータストリームである。
Kinesis ファミリー
| サービス | 用途 |
|---|---|
| Kinesis Data Streams | リアルタイムデータストリーム |
| Kinesis Data Firehose | S3/Redshift/OpenSearch への配信 |
| Kinesis Data Analytics | ストリームデータの SQL 分析 |
| Kinesis Video Streams | 動画ストリーミング |
SQS との比較
| 観点 | Kinesis | SQS |
|---|---|---|
| モデル | データストリーム | メッセージキュー |
| 消費者 | 複数のコンシューマーが同じデータを読める | 1 メッセージ = 1 コンシューマー |
| 順序保証 | シャード内で保証 | FIFO キューで保証 |
| データ保持 | 24 時間〜365 日 | 最大 14 日 |
| スループット | シャードあたり 1 MB/秒 | ほぼ無制限 |
| 用途 | ログ分析、リアルタイム処理 | タスクキュー、非同期処理 |
アーキテクチャ
[プロデューサー] → [Kinesis Data Streams] → [Lambda] → [DynamoDB]
→ [Firehose] → [S3] → [Athena]
→ [別の Lambda] → [OpenSearch]
1 つのストリームを複数のコンシューマーが独立して読める (ファンアウト)。
シャード
Kinesis のスループットはシャード数で決まる。
| 方向 | シャードあたり |
|---|---|
| 書き込み | 1 MB/秒 or 1,000 レコード/秒 |
| 読み取り | 2 MB/秒 |
Enhanced Fan-Out を使うと、コンシューマーごとに 2 MB/秒の専用スループットが割り当てられる。
Kinesis Data Firehose
コードを書かずに S3、Redshift、OpenSearch にデータを配信する。
Kinesis の背景や設計思想は関連書籍に詳しい。