Amazon Kinesis とは

Amazon Kinesis

Amazon Kinesis でストリーミングデータをリアルタイムで収集、処理、分析することが簡単になるため、インサイトを適時に取得して新しい情報に迅速に対応できます。

Amazon Kinesis は、アプリケーションの要件に最適なツールを柔軟に選択できるだけでなく、あらゆる規模のストリーミングデータをコスト効率良く処理するための主要機能を提供します。

Amazon Kinesis をお使いになると、機械学習、分析、その他のアプリケーションに用いる動画、音声、アプリケーションログ、ウェブサイトのクリックストリーム、IoT テレメトリーデータをリアルタイムで取り込めます。

Amazon Kinesis はデータを受信するとすぐに処理および分析を行うため、すべてのデータを収集するのを待たずに処理を開始して直ちに応答することが可能です。

利点

リアルタイム

Amazon Kinesis はストリーミングデータをリアルタイムで取得、バッファ、処理するため、通常は数時間から数日かかるインサイトの生成を数秒から数分で完了できます。

完全マネージド型

Amazon Kinesis は完全マネージド型ですので、インフラストラクチャを管理する必要なく、ストリーミングアプリケーションを実行できます。

スケーラブル

Amazon Kinesis はサイズの上限なくストリーミングデータに対応し、数千ものソースからのデータをとても低いレイテンシーで処理できます。

機能

Amazon Kinesis Video Streams

分析、機械学習 (ML)、およびその他の処理のために、接続されたデバイスから AWS へ動画を簡単かつ安全にストリーミングできるようになります。

仕組み

ライブ動画をデバイスから AWS クラウドにストリーミングし、永続的に保存できるようにします。その後、リアルタイムで動画を処理するために独自のアプリケーションを構築するか、バッチ指向の動画分析を実行できます。

  • Producer

    • Kinesis のビデオストリームにデータを送る任意のソース。動画を生成するあらゆるデバイスをプロデューサーにすることができます。音声フィード、イメージ、RADAR データなどの動画以外のデータも送信できます。 1 つのプロデューサーで複数のビデオストリームを生成できます。例えば、ビデオカメラは動画データを 1 つの Kinesis のビデオストリームにプッシュし、音声データを別のストリームにプッシュすることができます。

      • Kinesis Video Streams プロデューサーライブラリ
        • デバイスにインストールして設定できる、使いやすい一連のソフトウェアとライブラリ。ストリーミング方法には、リアルタイム、数秒間のバッファリング後、事後メディアアップロードなどのさまざまな方法を利用できます。
  • Kinesis のビデオストリーム

    • ライブ動画データを転送して、必要に応じて保存し、リアルタイムとバッチまたはアドホックの両方でデータを消費できるようにするリソースです。一般的な設定の場合、Kinesis のビデオストリームには、それに対してデータを発行するプロデューサーが 1 つだけ用意されています。 音声、動画のほか、奥行き感知フィードや RADAR フィードなどの、時間がエンコードされた類似のデータストリームを扱うことができます。Kinesis のビデオストリームは AWS Management Console を使用して作成するか、AWS SDK を使用してプログラミングすることにより作成します。 複数の独立したアプリケーションでは、Kinesis のビデオストリームを並列で消費できます。
  • コンシューマー

    • フラグメントやフレームなどのデータを Kinesis のビデオストリームから取得して、表示、処理、または分析します。一般的に、これらのコンシューマーは Kinesis Video Streams アプリケーションと呼ばれます。リアルタイムで、または低レイテンシー処理が求められない場合は、データが永続的に保存されて時間インデックスが作成された後で、Kinesis のビデオストリームのデータを消費および処理するアプリケーションを作成できます。これらのコンシューマーアプリケーションを作成して Amazon EC2 インスタンス上で実行できます。
      • Kinesis ビデオストリームパーサーライブラリ
        • Kinesis Video Streams アプリケーションが Kinesis のビデオストリームから低レイテンシーでメディアを確実に取得できるようにします。また、メディア内のフレームの境界を解析し、アプリケーションでフレーム自体の処理や分析を集中的に実行できるようにします。

Amazon Kinesis Data Streams

数十万規模のソースから秒あたり数ギガバイトものデータを継続的にキャプチャできる、スケーラブルで耐久性に優れたリアルタイムデータストリーミングサービスです。

Amazon Kinesis Data Streams Terminology and Concepts

The producers continually push data to Kinesis Data Streams, and the consumers process the data in real time. Consumers (such as a custom application running on Amazon EC2 or an Amazon Kinesis Data Firehose delivery stream) can store their results using an AWS service such as Amazon DynamoDB, Amazon Redshift, or Amazon S3.

Kinesis Data Stream

A Kinesis data stream is a set of shards. Each shard has a sequence of data records. Each data record has a sequence number that is assigned by Kinesis Data Streams.

Data Record

A data record is the unit of data stored in a Kinesis data stream. Data records are composed of a sequence number, a partition key, and a data blob, which is an immutable sequence of bytes. Kinesis Data Streams does not inspect, interpret, or change the data in the blob in any way. A data blob can be up to 1 MB.

Retention Period

The retention period is the length of time that data records are accessible after they are added to the stream. A stream’s retention period is set to a default of 24 hours after creation. You can increase the retention period up to 8760 hours (365 days) using the IncreaseStreamRetentionPeriod operation, and decrease the retention period down to a minimum of 24 hours using the DecreaseStreamRetentionPeriod operation. Additional charges apply for streams with a retention period set to more than 24 hours. For more information, see Amazon Kinesis Data Streams Pricing.

Producer

Producers put records into Amazon Kinesis Data Streams. For example, a web server sending log data to a stream is a producer.

Consumer

Consumers get records from Amazon Kinesis Data Streams and process them. These consumers are known as Amazon Kinesis Data Streams Application.

Shard

A shard is a uniquely identified sequence of data records in a stream. A stream is composed of one or more shards, each of which provides a fixed unit of capacity.

Amazon Kinesis Data Firehose

データストリームを AWS データストアにキャプチャ、変換、ロードし、既存のビジネスインテリジェンスツールを使って準リアルタイムで分析できる最も容易な方法です。

Amazon Kinesis Data Firehose とは何ですか?

Amazon Kinesis Data Firehose は、Amazon Simple Storage Service (Amazon S3)、Amazon Redshift、Amazon OpenSearch Service、Splunk、およびカスタム HTTP エンドポイントまたは Datadog、Dynatrace、LogicMonitor、MongoDB、New Relic、Sumo Logic などのサードパーティーサービスプロバイダーが所有する HTTP エンドポイントなどの送信先へのストリーミングデータのリアルタイム配信のためのフルマネージドサービスです。

主なコンセプト
  • Kinesis Data Firehose の配信ストリーム
    • Kinesis Data Firehose の基礎となるエンティティ。Kinesis Data Firehose 配信ストリームを作成し、それにデータを送信することで Kinesis Data Firehose を使用します。
  • record
    • データプロデューサーが Kinesis Data Firehose 配信ストリームに送信する、関心のあるデータ。レコードのサイズは最大 1000 KB です。
  • データプロデューサー
    • プロデューサーは Kinesis Data Firehose 配信ストリームにレコードを送信します。
  • バッファサイズおよびバッファの間隔
    • Kinesis Data Firehose は特定の期間、受信するストリーミングデータを特定のサイズにバッファしてから、送信先に配信します。Buffer Size は MB 単位で、Buffer Interval は秒単位です。

Amazon Kinesis Data Analytics

新しいプログラミング言語や処理フレームワークを習得することなく、SQLApache Flink でデータストリームをリアルタイムで処理できる最も簡単な方法です。

参考:Apache Flink