2021/03/15

AWSのAmazon Kinesisとは?4つの機能やメリット5つを解説

 
  

AWSのAmazon Kinesisとは?

AWSのAmazon Kinesisとは、動画・音声・アプリケーションログ・IoTデバイスからのセンサーデータなどのストリーミングデータに対してリアルタイムで収集・処理・分析できる完全マネージド型のサービスのことです。 はじめに、Amazon Kinesisで提供されている4つの機能について紹介していきます。また、Amazon Kinesisを導入する5つのメリットおよび料金体系などについても紹介していきます。

AWSのAmazon Kinesisの4つの機能

AWSのAmazon Kinesisには4つの機能が提供されています。 ストリーミングデータに対するリアルタイム処理を支える4つの機能とは、どのようなものでしょうか。それぞれの機能の役割について、1つずつ紹介していきます。

Amazon Kinesisの機能1:データストリームの分析を実行する

1つ目は、Kinesis Data Analyticsとしてデータストリームの分析機能が提供されています。 分析対象のストリーミングソースとして、後述の機能であるKinesis Data StreamsもしくはKinesis Data Firehoseを選択できます。また、分析対象のテーブルを強化するため、S3に格納しているオブジェクトをreference dataとして読み込むこともできます。 ストリーミングデータの分析処理は、SQLもしくはApache Flinkによるコーディングで実装します。生データはJSON形式で読み込まれ、設定したスキーマを通してテーブル形式に変換されます。 テーブルデータには値としてtimestampが入力されたROWTIME列が付与され、時間ベースでクエリが使用できるウィンドウクエリも可能です。 クエリ結果はアプリケーション内ストリームに保持され、Kinesis Data StreamsもしくはKinesis Data Firehoseに出力することで永続化できます。 なお、本機能は2019年5月に東京リージョンで利用可能となり、国内データソースとの接続性・データストリームのI/Oレスポンスの向上が可能となりました。

Amazon Kinesisの機能2:ストリーミング動画のキャプチャ・処理・保存を行う

2つ目は、Kinesis Video Streamsとして動画撮影デバイスからAWSへ動画を安全にキャプチャ・処理・保存できる機能が提供されています。 カメラ・スマートフォン・衛星・ドローンなどの動画撮影デバイスにKinesis Video Streams SDKをインストールすることで、AWSへの動画メディアストリーミングを開始できます。 出力先としてHLS・Amazon Rekognition Video・Amazon SageMaker等のサービスを指定でき、動画再生・分析を行えます。また、Kinesis Video Streamsは一般利用公開当初から東京リージョンでの利用に対応されています。

Amazon Kinesisの機能3:データストリームをAWSストアにロードできる

3つ目は、Kinesis Data FirehoseとしてAWSのストレージサービス(S3・Redshift・Elasticsearch Service)や汎用HTTPエンドポイントなどへデータストリームをロードできる機能が提供されています。 Kinesis Data Analyticsの入力元・出力先として指定できるため、Kinesis Data Firehoseを経由することでAWSのストレージサービスに格納されたデータをシームレスに分析できます。 加えて、Kinesis Data Firehoseは指定した配信先サービスにデータを転送する前に、ストリーミングデータのバッファリングを行います。バッファサイズもしくはバッファ間隔を指定でき、指定した容量または時間に応じてバッファリングしたデータの転送を行います。 また、CloudWatch Logsによるエラーログの記録、IAMロールによるアクセス制限、AWS KMSのkeyによる暗号化も対応しています。そして、Kinesis Data Firehoseは2017年8月に東京リージョンで利用可能となっています。

Amazon Kinesisの機能4:データストリームのキャプチャ・処理・保存を行う

4つ目は、Kinesis Data Streamsとして音声・アプリケーションログ・IoTデバイスからのセンサーデータなどをリアルタイムにキャプチャ・処理・保存できる機能が提供されています。 Kinesis Data Streamsで収集したデータは、70ms以内のレイテンシーでS3・Lambda・Kinesis Data Analyticsなどのサービスで利用できるため、収集から分析までのフローをリアルタイムで完結できます。 また、収集したデータによるメトリクスおよびレポート作成も、ストリーミング中にリアルタイムで実施できます。

AWSのAmazon Kinesisを導入する5つのメリット

AWSのAmazon Kinesisを導入するメリットについて、以下5つの観点で紹介します。 ・コスト抑えられる ・リアルタイムで分析する事ができる ・マネージド型で複雑なストリームの処理を実行する ・バッファリングで対応できる ・データ取得が速い Amazon Kinesisの導入を迷われている方は是非参考にしてみてください。

Amazon Kinesisのメリット1:コストを抑えられる

AWSのサービス全般に当てはまりますが、従量課金制であるため利用しない間の費用は発生せず、コストを抑えられる点が1つ目のメリットとなります。 例えば、EC2にデータを取り込んで分析を実施する場合、汎用SSDボリュームでは1か月で0.12USD/GBの料金となります。 一方で、Kinesis Data Firehoseの場合は最初の500TBで0.036USD/GBと、EC2と比較して3割の料金で実現できます。 また別のメリットとも関連しますが、Amazon Kinesisは完全マネージド型のサービスであるため、費用面のコストだけでなくインフラの管理コストも抑制できます。

Amazon Kinesisのメリット2:リアルタイムで分析する事ができる

2つ目のメリットは冒頭でも紹介した通り、ストリーミングデータに対してリアルタイムで分析できる点です。 Kinesis Data Streamsでは、1秒間に数GBのデータを継続的にキャプチャでき、データソースとなるデバイスの規模に合わせて動的にスケーリングするため、デバイスの増加に伴いリアルタイム性が損なわれることがありません。

Amazon Kinesisのメリット3:マネージド型で複雑なストリームの処理を実行する

3つ目のメリットは、Kinesis4つの機能全てにおいて完全マネージドである点です。 例えば、Kinesis Data Streamsでは入力のデータ量に応じて自動でスループットをスケーリングするため、EC2のインスタンスタイプやEBSの容量のようにユーザーがメトリクスを監視しながらサイジングし直すといったような手間がかかりません。 Kinesis Data Firehoseにおいても、ストリーミングデータのロードに必要なAWS上における全てのリソースが自動でプロビジョニングされるため、インフラレイヤーの管理が一切必要ありません。

Amazon Kinesisのメリット4:バッファリングで対応できる

4つ目のメリットは、ストリーミングデータをバッファリングできる点です。 データソースとKinesis Data Firehoseの間にバッファリングできる配信ストリームを作成することで、送信先となるS3などのデータストアへの送信を遅滞なく行えます。 Kinesis Data Firehoseでは、バッファサイズとバッファ間隔が設定できます。バッファサイズをMB単位で指定でき、バッファ間隔は1秒間隔で指定できます。 また、送信先へのデータ送信遅延を自動で検知し、配信ストリームのバッファサイズを動的に拡張する機能も備わっているため、バッファサイズのプロビジョニングを意識する必要がありません。

Amazon Kinesisのメリット5:データ取得が速い

5つ目のメリットは、データ取得が速い点です。 Amazon Kinesisのリアルタイム分析を支えている要因の一つが、データ取得の速さです。 Kinesis Data Streamsではデータ収集後70ms(0.070秒)以内に読み込んだデータをリアルタイム分析アプリケーションで利用でき、Kinesis Data Analyticsでも1秒未満のレイテンシーで分析結果をレスポンスするため、Kinesisを利用した収集・分析プロセスはリアルタイムで完結できます。 また、Kinesis Data Firehoseについてもストリーミングデータをキャプチャしてから60秒以内に送信先のサービスへロードされるため、ストアのプロセスにおいてもほぼリアルタイムを実現できます。

Amazon Kinesisの料金4種類

Amazon Kinesisの料金体系は4つの機能ごとに特徴があります。他のAWSサービスと同様、いずれも利用した分の従量課金制となります。 また、Amazon Kinesisサービス特有の料金単位もあるため、詳しく紹介していきます。 なお、リージョンについては東京リージョンを、通貨についてはUSDを前提としています。

Amazon Kinesisの料金1:Amazon Kinesis Video Streams

Kinesis Video Streamsのストリームに入力された時と、出力された時に一律0.01097USD/GBの課金が発生します。 ストリームからの出力でHLSを利用した場合は、0.01536USD/GBと通常の出力の約1.4倍の単価で課金が発生します。 そして、ストリームに保存された時の単価が入出力時よりも高く、1か月データを保存した場合は0.025USD/GBの課金が発生します。

Amazon Kinesisの料金2:Amazon Kinesis Data Analytics

Kinesis Data Analyticsの課金要素として、Kinesis特有の処理単位であるKPU(Kinesis Processing Unit)と、アプリケーションストレージおよびバックアップ容量があります。 KPUは1vCPU/4GBメモリをセットとしたストリーム処理能力の単位のことで、ストリームのスループットや処理の複雑さに応じてスケーリングされます。 1KPUが1時間消費された時、0.142USDの課金が発生します。 アプリケーションストレージは1か月0.12USD/GBで、アプリケーションバックアップは0.025USD/GBの課金が発生します。

Amazon Kinesisの料金3:Amazon Kinesis Data Firehose

Kinesis Data Firehoseは、取り込まれたデータ容量に応じてGB単位に掛かる課金額が変動します。また、データ形式の変換時に加え、VPCを介して処理されたデータ量と各AZで配信された時間に対しても課金が発生します。 取り込みデータ容量について、0~500TBの場合は1か月で0.036USD/GB、~1.5PBの場合は0.031USD/GB、~3PBの場合は0.025USD/GBと、増加に応じたステップごとに単価がディスカウントされます。 データ形式の変換は0.022USD/GB、VPCを介した処理が0.01USD/GB、1時間ごとのVPC配信で0.014USD/AZの課金が発生します。

Amazon Kinesisの料金4:Amazon Kinesis Data Streams

Kinesis Data Streamsの料金は、後述するシャード時間とPUTペイロードユニットに依存します。 シャード時間ごとに0.0195USDの課金が発生し、加えて100万PUTペイロードユニットごとに0.0215USDの課金が発生します。

PUT ペイロードユニットとは?

PUTペイロードユニットは、25KBのデータのかたまりを単位とした概念のことです。Kinesis Data Streamsのストリームが取得するデータをレコードと言い、レコードのサイズを25KBで分割して余りを切り上げた数がPUTペイロードユニット数となります。

シャード料金とは?

シャード料金は、シャード時間に応じて課金される料金のことです。 シャードは、ストリーム内で一意のデータレコードの連なりのことを指します。シャード時間はストリームへの取得と、ストリームからの送信の2種類があり、それぞれスループットが異なります。 シャード時間において、ストリームへの取得は1MB/秒、ストリームからの送信は2MB/秒となります。このシャード時間に応じてシャード料金が決定します。

AWSのAmazon KinesisとAWS SQSの違い

Amazon Kinesisはリアルタイムで収集される大量のデータを受け入れて処理する能力に長け、AWS SQSは受信したメッセージ単位で確認・失敗を追跡して自動再配信する機能を有します。 そのため、リアルタイムで大容量のデータを格納・処理したい場合はAmazon Kinesis、簡単な制御でメッセージのキューイング・連携先のサービスへのコマンドを実施したい場合はAWS SQSといった具合に、状況に応じて使い分けるのがいいでしょう。

Amazon Kinesisの他のサービスと連携した活用例

 AWSのAmazon Kinesis以外のサービスと連携した活用例について、株式会社あきんどスシローとNetflixでの導入事例をもとに紹介いたします。 株式会社あきんどスシローでは、寿司皿にICタグを付け、回転寿司のレーンを流れる寿司を管理しています。そして、ICタグからの情報をAmazon Kinesisでストリーミングし、EC2上に構築したQlikViewなどの分析アプリケーションでデータ分析を行っています。 Netflixでは、Kinesis Data Streamsを活用することでAWSアカウントをまたいだVPCフローログを一元化しています。AWSアカウントごとにフローログをCloudWatch Logs経由で収集し、毎日何十億と発生するトラフィックをKinesis Data Streamsで収集しています。

AWSのAmazon Kinesisを上手に活用しよう

AWSのAmazon Kinesisについて、4つの機能と5つのメリットを紹介しました。 大容量データのストリーミング配信や、蓄積・分析にいたるまで、リアルタイムかつ低コストで実現できるAmazon Kinesisをぜひ活用して行きましょう。

ITエンジニアへのキャリアチェンジならキャリアチェンジアカデミー

この記事の監修者・著者

株式会社オープンアップITエンジニア
株式会社オープンアップITエンジニア
未経験からITエンジニアへのキャリアチェンジを支援するサイト「キャリアチェンジアカデミー」を運営。これまで4500人以上のITエンジニアを未経験から育成・排出してきました。
・AWS、salesforce、LPICの合計認定資格取得件数:2100以上(2023年6月時点)
・AWS Japan Certification Award 2020 ライジングスター of the Year 受賞

おすすめの動画

  • 【未経験からIT業界へ転職するなら】相談窓口とスキルの獲得はここで解決!IT転職が一気に有利に!【キャリアチェンジアカデミー】

  • 【費用一切不要】未経験からIT業界へ転職するならまずはここへ相談!【キャリアチェンジアカデミー】

  • 【何のエンジニアになれるのか?】未経験からITエンジニアを目指すとこんな道がある【キャリアチェンジアカデミー】