業務で利用しないこともありkinesis関連が何度見ても覚えられないのでメモ書き。
にわとりSE
今回はデータ配信で使うkinesisについて学ぶよ
kinesisはデータ配信で利用するサービスで、AWS機能の中でも大筋じゃないと思っていたけど
SAAの問題集をやっていると何度も登場する。(CloudFrontも頻出しているイメージ)
youtubeの影響もあり、世の中的にはデータ配信って超重要コンテンツだったり?
機能紹介
ストリーミングデータを取り込み、それを配信&加工&保存するための機能。
代表機能
代表機能について一問一答での備忘録。
- Kinesis Data Streams
ストリームデータを処理するアプリケーションを構築。
1秒以下でのデータロード向けに設計されており、ストリーミングデータをリアルタイムに処理したり、表示させたい場合に利用。
- Kinesis Data Firehose
ストリームデータをS3やRedshiftなどへ簡単に配信。
データロードまで60秒必要となり、リアルタイムな処理には向いていないが、データ変換・配信するのに向いている。
リアルタイムが要求されないデータ処理は、StreamsではなくFirehoseを利用するという回答もあるので、
データ処理 = Streamsと理解すると回答を間違う可能性がある。
- Kinesis Data Analytics
ストリームデータを標準的なSQLクエリでリアルタイムに可視化・分析。
Amazon Managed Service for Apache Flinkという名前に変更されている。
なので、今後はData Analyticsという単語は忘れAmazon Managed Service for Apache Flinkで覚えるべきなはず(古い参考書を使っているとData Analyticsしか出てこないの注意。。はまってしまう)
SAAで頻出するのは上記3つだけと理解。
後述のKinesis Video Streamsというものがあるが、問題集で出てこないのであまり利用されていないものと思われる。
Data Streamsの前提知識
前提知識の一問一答
- シャード
Amazon Kinesis データストリームの基本的なスループットの単位
- レコード
Amazon kinesisデータストリームに保存されるデータの単位
- データBLOB
データプロデューサがデータストリームに追加する処理対象のデータ
- パーティションキー
レコードを分離してデータストリームの異なるシャードにルーティングするために使用
- シーケンス番号
各レコードの一意の識別子
- プロデューサー
Amazon Kinesis Data Streams にレコードを配置。ようはINPUT情報と理解。
- コンシューマー
Amazon Kinesis Data Streams からレコードを取得して処理。ようはOUTPUT情報と理解。
機能構築
構成イメージ
kinesis streamの構成イメージは以下の通り。
アマゾンHPより引用
- プロデューサーからデータを受け取り
- kinesis streamでデータを処理して
- コンシューマーに連携して
- firehoseが処理をする。
→firehoseの後続にAmazon Managed Service for Apache Flinkで解析がある
Kinesisシリーズのサービス(Kinesis Video Streams)
上記のほかに「Kinesis Video Streams」というサービスもあり、再生、分析、機械学習のためにメディアストリームをキャプチャ、処理、保存することができるらしい。
Amazon Kinesis Video Streams を使用すると、分析、機械学習 (ML)、再生、およびその他の処理のために、接続されたデバイスから AWS へ動画を簡単かつ安全にストリーミングできるようになります。Kinesis Video Streams は、数百万ものデバイスからの動画のストリーミングデータを取り込むために必要なすべてのインフラストラクチャを、自動的にプロビジョンして、伸縮自在にスケールします。ストリーム内の動画データの耐久性に優れた保存、暗号化、インデックス作成を行い、使い勝手のよい API を介したデータへのアクセスも可能にします。Kinesis Video Streams を使用すると、ライブやオンデマンド視聴用の動画を再生したり、Amazon Rekognition Video との統合、および Apache MxNet、TensorFlow、OpenCV といった ML フレームワーク向けライブラリとの統合により、コンピュータビジョンと動画分析を活用するアプリケーションを迅速に構築することができます。また、Kinesis Video Streams はオープンソースプロジェクトの WebRTC もサポートしています。これにより、リアルタイムのメディアストリーミングと、ウェブブラウザ、モバイルアプリケーション、コネクテッドデバイス間のシンプルな API によるインタラクションが可能になります。Amazon Kinesis Video Streams は、WebRTC 接続を介したメディア取り込みをサポートし、安全なストレージ、再生、分析処理を実現します。
アマゾンHPより引用
SAAで問われることは無さそうなので、ひとまずそんなもんがあるんだなぁぐらいの認識にしておく。
まとめ
ハンズオンしたものの明日には忘れそうなので、機能の超概要だけは押さえておくことにする。
にわとりSE
とりあえず、Streams、Firehose、Analyticsの違いだけは忘れないようにする!