AWS:Amazon Kinesis
みなさん、こんにちは。ちゃみみです。
最近Blackbeltのサマリばかりを試験対策向け(ぱっと見でわかるために)にモリモリと書いているせいで全然実機触れてないので少しさびしさが残るのですが、、、DASの試験を控えているためまだお付き合いください。
本日は、Kinesisシリーズについてちょっとサマっていこうと思います。
◆Kinesis Data Streams
→ストリームデータを処理するためのアプリケーションを独自に構築する
データの種類や処理の用途に応じてストリームを作成する。
ストリームは、1つ以上のシャード呼ばれるもので構成されている。
保存されるデータの単位をデータレコードと呼び、デフォルトで24h保持し最長で7d保持することができる。
取り扱うことができる1データレコードの最大サイズは、1MB。
このシャードの数を増減させることでスループットをコントロールできる。
データをストリームに流す際にデータ入力を指定するパーティションキーで保存先のシャードが決定され、ハッシュキーを直接指定することも可能となっている。
Kinesis Data Streamsをサポートする、プロデューサー(データ送信側)とコンシューマー(データ処理側)
は、以下となる。
試験などでは、主にデータ処理側が何かがさりげなく聞かれるケースもあるので押さえますが、
・Kinesis Firehose
・Kinesis Client Library(KCLとよく書かれる)
・Kinesis Analytics
・Lambda
・EMR
あたりを押さえておくとよいでしょう。
◆Kinesis Firehose
→ストリームデータを変換して、S3、Redshift、ES、Splunkへ配信する
配信先に応じて配信ストリームを作成する。
1データレコードの最大サイズは、1MBまで。
配信先は、S3、Redshift、ESとなっている。あとSplunkもかな
直接Datastreamと連携を取ることが可能でイメージとして
【データプロデューサー→Datastream→Firehose】
という流れを取ることが可能である。
従来であれば、
【データプロデューサー→Datastream→データコンシューマー→Firehose】
という流れですが、直接Firehoseへ連携することができる。
◆Kinesis Analytics
→ストリームデータを標準的なSQLクエリでリアルタイムに分析する
Analyticsの送信先として、以下をサポート
・Data Firehose
・Data stream
・Lambda
をサポートしている。
【サポートサービスたち】
◆Kinesis Agent
→Kineisサービスにデータを簡単に収集して取り込む、OSSのスタンドアロンJavaアプリケーションであり、Cloudwatchへメトリクスを送信したりできる。
◆Kinesis Producer Library
→Kinesis Data Streamsにデータを送信するOSSの補助ライブラリ。パフォーマンスメトリクスをCloudwatchに自動送信する。
◆Kinesis Data Generator(KDG)
→HTMLとJavaScriptで実装されたOSSのテスト用プロデューサーUIである。
DatastreamsやFirehoseあてにテストデータを簡単に送信できたりする
◆Kinesis Client Libarary(KCL)
→Java,Ruby,Node.jsの開発に利用できるOSSのクライアントライブラリである。EC2などにデプロイして利用する。このアプリには、「Record Processor」、「Factory Record Processor」、「Worker」が含まれている。
以上がBlackbeltの簡単なまとめでした。
2021年11月04日