Skip to main content

Amazon Kinesis

Overview

Amazon Kinesisは、動画・音声・アプリケーションログ・IoTデバイスからのセンサーデータなどのストリーミングデータをリアルタイムで収集・処理・分析できるサービス。
AWS上でストリーミングデータを扱う方法としては、EC2インスタンスをアプリケーションサーバーとしてリクエストを直接処理したりAmazon SQSでキューイングしたりといった方法がありますが、Kinesisを利用するとそれらと比べて低コストかつ大容量のデータを扱うことができる。
なお、Kinesisは処理したデータを即時削除することなく24時間から7日間保持できるため、複数のコンシューマーが同じデータを取得することをサポートしている。
コンシューマーとは、Kinesisからデータを取得するアプリケーションを持つEC2やLambdaなどを指し、DynamoDBやS3などの他サービスへデータを受け渡す役割を担っている。

Kinesis 4つの機能

Kinesisには次の4つの機能が備わっている。

Kinesis Data Streams

データを低レイテンシーでリアルタイムに利用できる機能。
大量のデータを効率よく処理するために、『シャード』と呼ばれる単位でデータを分割して並列処理を行う。
シャードとは、データストリーム内の一意に識別されたデータレコードの単位です。

Image from Gyazo

Kinesis Data Analytics

ストリーミングデータに対してリアルタイムで分析が可能な機能。
SQLクエリを実行し分析するため、ストリーミングデータの合計値や平均値などを簡単に計算できる。
次の図はゲームなどの分析で使用される例。

Image from Gyazo

Kinesis Data Firehose

簡単な設定でストレージサービスにデータを流し込むことができる機能。
暗号化や圧縮技術にも対応している。
Kinesis Data FirehoseはストリーミングデータをS3やRedshiftなどのデータストアや分析サービスに送信したり、ストリーミングデータ動作環境の一部としてKinesis Data AnalyticsやKinesis Data Streams・Kinesis Video Streamsと併せて使用されるケースもある。
次の図はKinesis Data AnalyticsとKinesis Data Firehoseを併用した使用例です。

Image from Gyazo

Kinesis Video Streams

動画撮影デバイスから直接AWS上にストリーミング配信が可能な機能。
次の図では監視カメラ・ドライブレコーダーなどで使用される例。

Image from Gyazo