Amazon Kinesis のアイコン

Amazon Kinesis

リアルタイムストリーミングデータの収集・処理・分析を行うサービス

何ができるか

Amazon Kinesis は、リアルタイムのストリーミングデータを大規模に収集・処理・分析するサービス群です。Kinesis Data Streams はデータストリームの収集と処理、Kinesis Data Firehose はストリームデータの S3 や Redshift への配信、Kinesis Data Analytics はストリームデータの SQL/Flink による分析を提供します。

どのような場面で使うか

IoT デバイスからのセンサーデータのリアルタイム処理、Web サイトのクリックストリーム分析、ログのリアルタイム集約と分析、金融取引のリアルタイムモニタリング、ゲームのプレイヤー行動分析などに利用されます。 この分野について体系的に学びたい方は、関連書籍 (Amazon) も参考になります。

身近な例え

ベルトコンベアに例えられます。工場 (データソース) から次々と流れてくる製品 (データ) をベルトコンベア (ストリーム) で運び、検品 (処理)、仕分け (分析)、梱包 (格納) を流れ作業で行います。

Kinesis とは

Amazon Kinesis は、リアルタイムデータ処理のためのサービス群です。バッチ処理が「データを溜めてからまとめて処理する」のに対し、Kinesis は「データが発生した瞬間に処理する」ストリーム処理を実現します。1 秒あたり数百万件のレコードを処理できるスケーラビリティを備えています。

Kinesis Data Streams と Firehose

Kinesis Data Streams はカスタムアプリケーションでストリームデータを処理するためのサービスです。シャード数でスループットを制御し、Lambda や独自のコンシューマーでデータを処理します。Kinesis Data Firehose はストリームデータを S3、Redshift、OpenSearch、Splunk などに自動配信するサービスです。コードを書かずにデータの変換と配信を設定できます。

はじめかた

Kinesis コンソールで「データストリームの作成」を選択し、ストリーム名とキャパシティモード (オンデマンドまたはプロビジョンド) を指定します。AWS SDK の PutRecord API でデータを送信し、Lambda をコンシューマーとして設定すれば、リアルタイム処理パイプラインが完成します。Firehose を使えば、コードなしで S3 へのデータ蓄積が可能です。

注意点

  • Data Streams のデータ保持期間はデフォルト 24 時間、最大 365 日まで延長可能だが、保持期間に応じて料金が増加する
  • シンプルなデータ配信には Firehose、カスタム処理が必要な場合は Data Streams を選択する

さらに詳しく知りたい方は、関連書籍 (Amazon) で理解を深められます。