はじめに
AWSのKinesisを勉強するために以下のドキュメントを参考にしたので内容をまとめます。
背景
本記事はAWSソリューションアーキテクトプロフェッショナルに合格するために、Udemyの模擬試験を解いて分からなかった部分を勉強してまとめるものです。
試験対策用のため、分からない知識を補足したり試験で問われなさそうなところを省略したりしながらまとめています。
なるべくわかりやすい記載を心がけますが、最終目的は自己学習用であるということをご容赦ください。
Kinesisの機能
- Kinesis Video Stream
- Kinesis Data Stream
- Kinesis Data Firehose
- Kinesis Data Analytics
Kinesis Video Stream(簡単に)
以下の三つの形式から利用可能。
- GetMedia:GetMedia APIを使用して独自のアプリケーションを構築。
- HLS:業界標準のHTTPベースのメディアストリーミングプロトコル。
- MPEG-DASH:従来のHTTPサーバから配信されたデータのストリーミングを可能にする。
Kinesis Data Streams
ストリームデータを処理するためのアプリケーションを構築
仕組み
- プロデューサー:Kinesis Producer Library、Kinesis Agent、IoTデバイス、
- コンシューマー:Kinesis Client Library、Kinesis Firehose、Kinesis Analytic
ユースケース
- ログやイベントデータの収集
- リアルタイム分析
- モバイルデータキャプチャ
- ゲームデータのフィード
Kinesis Data Firehose
ストリームデータをS3、Redshift、Elasticsearch Serviceへ配信
仕組み
- 送信元:Kinesis data Streams
- 配信ストリーム:配信先に応じて配信ストリームを作成。元ソースをS3に保存可能。
- 配信先:S3、Redshift、Elasticsearch Service
ユースケース
- データレイクとデータウェアハウスへのデータストリーミング
- Machine Learning アプリケーションのストリーミング
- ログと IoT Analytics
- セキュリティモニタリング
Kinesis Data Analytics
ストリームデータを標準的なSQLクエリでリアルタイムに分析
仕組み
- 入力元:Kinesis Streams、Kinesis Firehose
- Kinesis Analytics:Lambdaで前処理を実施してからSQLクエリを実行
- 出力先:Kinesis Streams、Kinesis Firehose
ユースケース
- ストリーミングデータを数秒で配信
- リアルタイム分析を作成する
- ステートフル処理を実行する
用語集
- Kinesis Agent:Kinesisにデータを取り込むスタンドアロンJavaアプリケーション
- Kinesis Producer Library (KPL):Kinesis Streansにデータ送信する補助ライブラリ
- Kinesis Client Library (KCL):EC2などにデプロイしてアプリケーションを構築