Kinesis Data Streams と Firehose の違い
どうしても覚えられない(忘れる)のでまとめました。
Kinesis Data Streams(郵便集配センター)
Kinesis Data Firehose(宅配便の自動配達サービス)
基本の違い
項目 | Kinesis Data Streams | Kinesis Firehose |
---|---|---|
ユースケース | リアルタイムデータ処理 | データのバッチ転送 |
制御性 | 高い(データ保持、シャード数の設定など) | 低い(設定は簡単、フルマネージド) |
処理の複雑さ | ユーザーがアプリケーションで処理を実装する必要がある | AWS側で自動的にデータを処理・配信 |
転送先 | 自由に選択可能(例: Lambda, S3, DynamoDB) | 固定(S3, Redshift, Elasticsearchなど) |
データ保持期間 | 最大7日間 | データを保持しない(リアルタイム転送のみ) |
リアルタイム性 | ミリ秒単位のリアルタイム処理が可能 | 遅延が発生する可能性がある(60秒以内) |
覚え方(語呂合わせ)
1. 「ストリームは流れ、ホースは給水」
- Streamsは「常に流れる」→ リアルタイム処理。
- Firehoseは「一気に注ぐ」→ バッチで目的地に注ぎ込むイメージ。
2. 「カスタムな流れとホース任せ」
- Streamsは「自分で流れを制御」する。→ 開発者が細かくコントロール。
- Firehoseは「AWS任せ」→ フルマネージドで手間いらず。
3. 「ストリームは一時的、ホースは運搬」
- Streamsは一時的にデータを保持する(最大7日間)。
- Firehoseは保持せず直接運搬。
具体例で理解
1. Streams
- シナリオ: 株価データをリアルタイムで分析。
- 動作: 開発者がアプリを作り、データを取り出して処理。
2. Firehose
- シナリオ: IoTセンサーのデータをS3に保存。
- 動作: AWSが自動的にデータをS3に送る。
シンプルにまとめた語呂
- 「ストリームは細かく作る、ホースはAWS任せ」