Skip to content

Kinesisとは?

Kinesisは、リアルタイムデータストリーミングを処理するための完全マネージド型サービスです。

概要:
- リアルタイムデータストリーミング
- 大量データの収集・処理
- カスタム処理アプリケーション
特徴:
- シャード単位のスループット
- データ保持期間: 24時間〜365日
- リプレイ可能
- 複数コンシューマー対応
構成要素:
Producer:
- データ送信元
- SDK / Kinesis Agent / API
Stream:
- シャード構成
- パーティションキーでデータ分散
Consumer:
- データ処理アプリケーション
- Lambda / EC2 / Kinesis Data Analytics
概要:
- データ配信サービス
- S3 / Redshift / OpenSearch などへ自動配信
- サーバーレス
特徴:
- 完全マネージド
- 自動スケーリング
- データ変換可能(Lambda)
- バッファリング
- 準リアルタイム(最短60秒)
配信先:
- Amazon S3
- Amazon Redshift
- Amazon OpenSearch Service
- Splunk
- HTTP Endpoint
- カスタム配信先
概要:
- ストリーミングデータ分析
- SQL / Apache Flink
- リアルタイム分析
用途:
- リアルタイム集計
- 異常検知
- ダッシュボード更新
- アラート生成
統合:
入力:
- Kinesis Data Streams
- Kinesis Data Firehose
出力:
- Kinesis Data Streams
- Kinesis Data Firehose
- Lambda
概要:
- 動画ストリーミング
- IoT / セキュリティカメラ
- リアルタイム分析
用途:
- 動画の取り込み
- 保存・再生
- 機械学習統合(Rekognition)
概念:
- データストリームの基本単位
- スループット決定要素
容量:
書き込み:
- 1MB/秒
- 1,000レコード/秒
読み込み:
- 2MB/秒
- 5トランザクション/秒
スケーリング:
シャード分割:
- スループット増加
- 手動またはApplication Auto Scaling
シャード統合:
- スループット減少
- コスト削減
保持期間:
デフォルト: 24時間
最大: 365日
変更可能
用途:
- リプレイ処理
- バッチ処理併用
- 障害回復
概念:
- データ分散の基準
- 同じキーは同じシャードへ
- 順序保証
設計:
良い例:
- ユーザーID
- デバイスID
- センサーID
悪い例:
- 固定値(分散しない)
- 少数の値(ホットシャード)
バッファ設定:
サイズ:
- 1MB〜128MB
時間:
- 60秒〜900秒
配信タイミング:
- サイズまたは時間のいずれか先に到達
最適化:
小データ量: 時間重視(60秒)
大データ量: サイズ重視(大きめ)
Lambda統合:
- データフォーマット変換
- データ加工・エンリッチメント
- フィルタリング
:
- JSON → Parquet
- データマスキング
- IPアドレス→地域情報追加
対応形式:
- GZIP
- ZIP
- Snappy
- Hadoop互換Snappy
メリット:
- ストレージコスト削減
- Athenaクエリ高速化
データソース:
- IoT デバイス
- ウェブアプリケーション
- モバイルアプリ
- ログ収集(CloudWatch Logs)
- データベース変更(DMS)
データ処理:
- Lambda
- EC2
- Kinesis Data Analytics
- EMR
データ保存:
- S3
- Redshift
- OpenSearch
- DynamoDB
暗号化:
転送中:
- TLS/SSL
保管時:
- KMS暗号化
- サーバー側暗号化
アクセス制御:
- IAMポリシー
- VPCエンドポイント
- リソースベースポリシー
監査:
- CloudTrail
- CloudWatch Logs
- メトリクス監視
CloudWatch Metrics:
Data Streams:
- IncomingRecords
- IncomingBytes
- GetRecords.Success
- WriteProvisionedThroughputExceeded
Firehose:
- IncomingRecords
- DeliveryToS3.Success
- DataFreshness
アラーム設定:
- スループット超過
- 配信失敗
- データ遅延
キャパシティモード項目価格備考
オンデマンド書き込み$0.04 / GBデータ取り込み
オンデマンド読み込み$0.03 / GBデータ読み取り
プロビジョンドシャード時間$0.015 / 時間固定キャパシティ
プロビジョンドPUT ペイロード$0.014 / 100万ユニット書き込みリクエスト
項目価格備考
データ取り込み$0.029 / GBデータ配信
データ変換Lambda料金変換時のみ
配信先各サービス料金S3, Redshift等
項目価格備考
KPU時間$0.11 / KPU時間1 KPU = 1 vCPU + 4GB

料金計算例(Data Streams オンデマンド、月間1TB書き込み・読み込み):

項目計算料金
書き込み1TB × $0.04$40.00
読み込み1TB × $0.03$30.00
合計-$70.00/月

料金計算例(Data Firehose、月間10TB配信):

項目計算料金
取り込み10TB × $0.029$290.00
S3保存10TB × $0.023$230.00
合計-$520.00/月

オンデマンド vs プロビジョンド(1シャード、1MB/秒、24時間):

モード月額料金適用例
オンデマンド$70.00(1TB想定)変動負荷
プロビジョンド$10.80(シャード)+ $0.36(PUT) = $11.16安定負荷
### Data Streams vs Firehose
```yaml
Data Streams:
用途:
- カスタム処理必要
- リアルタイム要件厳格
- 複数コンシューマー
- データリプレイ必要
特徴:
- リアルタイム(ミリ秒)
- 手動スケーリング
- データ保持最大365日
Firehose:
用途:
- シンプルな配信
- S3 / Redshift へ保存
- サーバーレス希望
特徴:
- 準リアルタイム(最短60秒)
- 自動スケーリング
- 完全マネージド

Kinesisの重要ポイント:

  • Data Streams: リアルタイム・カスタム処理
  • Firehose: 簡単配信・サーバーレス
  • Data Analytics: ストリーミング分析
  • シャード設計でスループット制御
  • パーティションキーで均等分散
  • Lambda統合でデータ変換
  • CloudWatch で監視必須