業務で利用しないこともあり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の構成イメージは以下の通り。

  • プロデューサーからデータを受け取り
  • kinesis streamでデータを処理して
  • コンシューマーに連携して
  • firehoseが処理をする。
    →firehoseの後続にAmazon Managed Service for Apache Flinkで解析がある

Kinesisシリーズのサービス(Kinesis Video Streams)

上記のほかに「Kinesis Video Streams」というサービスもあり、再生、分析、機械学習のためにメディアストリームをキャプチャ、処理、保存することができるらしい。

SAAで問われることは無さそうなので、ひとまずそんなもんがあるんだなぁぐらいの認識にしておく。

まとめ

ハンズオンしたものの明日には忘れそうなので、機能の超概要だけは押さえておくことにする。

にわとりSE

とりあえず、Streams、Firehose、Analyticsの違いだけは忘れないようにする!

  • Streamsが収集、Firehoseが出力(配信)、Analyticsは名前の通り分析
  • Firehoseは配信元をプロデューサー、配信先がコンシューマーとなる(と呼ぶ)