今回は,Kinesis Data StreamsとKinesis Data Firehoseについて勉強したことをまとめる.なお,理解したことが増えたら本記事を適宜更新する.
Data Streamsの概要
- マネージドのリアルタイムアプリケーション(KCL、Spark/Flink、Lambda)
- データストリームを収集、保存、処理
- 低コスト
- 3つのAZに永続ストレージに強い生合成でデータを複製
Data Firehoseの概要
- マネージドのデータストリームをデータストアにダイレクトに配信(ストリームデータのバッチ化、圧縮、暗号化が可能で最短60秒でデータを配信)
- シームレスにスケール
- サーバレスETL(Lambdaを使ったスリームデータの変形が可能)
Kinesis Data Firehose との使い分け
- Streams: ストリームデータを「 処理 」するためのアプリケーションを独自に構築
- Firehose:ストリームデータをS3、Redshift、ECへ簡単に「 配信 」
設計の考え方
1,数珠つなぎでサービスを連携
収集(Kinesis Data Streams)->変換(Lambda)->分析(Kinesis Data Analytics)->アクション(Lambda)->保存(Kinesis Data Firehose)
2,管理対象を少なくする
- マネージドサービス同士で接続
- Lambda関数でサービス間連携
- EC2上のアプリで接続
Kinesis Streams と Firehose の適用事例
①可視化
- データ送信者->Firehose->ES->kibana
②仮説検証
- Firehose->S3>Athena
③自動化
- S3->Firehose->Analytics->Streams->Lambda->SNS