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