Amazon Kinesis
ストリーミングデータサービス群
AWS のリアルタイムのストリーミングデータ処理サービス群の総称です。Kinesis Data Streams、Kinesis Video Streams があります(Firehose と Managed Service for Apache Flink もかつては Kinesis の名前でした)。
- コスト$$ ふつう
- 難易度●●●●●
- 未使用でも課金?いいえ
- サーバーレス
- 出題試験SAA · DVA
たとえるなら工場のベルトコンベアシステムのようなものです。荷物の種類ごとにさまざまなコンベアがあります。
いつ使う?
✓ 使うべき場面
データ(ログ、clickstream、IoT、動画)を継続的に収集・処理する必要があるとき。
✗ 避けるべき場面
定期的なバッチ処理 → Glue / EMR。
よくある使い方
- リアルタイムの clickstream 収集
- data lake へのログ取り込み
- カメラ映像の分析
料金はいくら?
- 課金方式: サブサービスにより異なります。shard 時間、データの GB 数、または処理時間に応じて課金されます。
「リアルタイムのストリーミングデータ (クリックストリーム、IoT、ログ) の収集と処理」なら Kinesis、「コード不要で S3 や Redshift にロード」なら Data Firehose、「SQL や Flink によるストリーム分析」なら Managed Service for Apache Flink、「動画」なら Kinesis Video Streams、「コンポーネントの疎結合」なら SQS を選びます。
よくある質問
Kinesis ファミリーにはどんなサービスがあり、どう使い分けますか?
Kinesis Data Streams はストリームを取り込み保持し、複数のコンシューマーがリアルタイムに処理します。Data Firehose はコード不要でストリームを S3、Redshift、OpenSearch へ配信します。Managed Service for Apache Flink は SQL や Flink でストリーム分析を行います。Kinesis Video Streams はカメラやデバイスの動画を取り込みます。旧 Kinesis Data Analytics は現在 Flink に名称変更されています。
Kinesis は SQS と何が違いますか?
SQS はコンポーネントを疎結合にするキューで、通常 1 つのコンシューマーがメッセージを処理して削除し、再読み込みはできません。Kinesis Data Streams は保持期間中レコードを保持し、複数のコンシューマーが独立して読み取り、再読み込みもでき、パーティションキー単位で順序が保たれます。サービスの疎結合やメッセージ単位のリトライなら SQS、複数コンシューマーによる分析ストリームなら Kinesis です。
Kinesis は Amazon MSK と何が違いますか?
どちらもストリーミング基盤です。Kinesis は AWS ネイティブでシンプルな運用で済み、AWS との統合が深いサービスです。MSK はマネージドの Apache Kafka で、既存の Kafka アプリケーションがある場合や標準の Kafka エコシステム・API が必要な場合に向きますが、理解と設定の負担が増えます。