Amazon Kinesis Data Streams
開発者ガイド

Amazon Kinesis Data Streams とは?

データレコードの大量のストリームをリアルタイムで収集し、処理するには、Amazon Kinesis Data Streams を使用します。「Kinesis Data Streams アプリケーション」と呼ばれるデータ処理アプリケーションを作成することができます。一般的な Kinesis Data Streams アプリケーションでは、データストリームのデータをデータレコードとして読み込みます。これらのアプリケーションは Kinesis Client Library を使用することも、Amazon EC2 インスタンスで実行することもできます。処理されたレコードは、ダッシュボードに送信してアラートの生成や、料金設定と広告戦略の動的変更に使用できるほか、他のさまざまな AWS のサービスにデータを送信できます。Kinesis Data Streams の機能と料金については、Amazon Kinesis Data Streams を参照してください。

Kinesis Data Streams は、Kinesis ストリーミングデータプラットフォームの一部です。他にも、Kinesis Data FirehoseKinesis ビデオストリームKinesis Data Analytics があります。

AWS ビッグデータソリューションの詳細については、「AWS でのビッグデータ」を参照してください。AWS ストリーミングデータソリューションの詳細については、「ストリーミングデータとは?」を参照してください。

Kinesis Data Streams の機能

Kinesis Data Streams を使用して、高速かつ継続的にデータの取り込みと集約を行うことができます。使用されるデータには、IT インフラストラクチャのログデータ、アプリケーションのログ、ソーシャルメディア、マーケットデータフィード、ウェブのクリックストリームデータなどの種類があります。データの取り込みと処理の応答時間はリアルタイムであるため、処理は一般的に軽量です。

以下に示しているのは、Kinesis Data Streams の一般的なユースケースです。

ログとデータフィードの取り込みと処理の高速化

プロデューサーからストリームにデータを直接プッシュさせることができます。たとえば、システムとアプリケーションのログをプッシュすると、数秒で処理可能になります。これにより、フロントエンドサーバーやアプリケーションサーバーに障害が発生した場合に、ログデータが失われることを防止できます。Kinesis Data Streams では、取り込み用にデータを送信する前にサーバーでバッチ処理しないため、データフィードの取り込みが加速されます。

リアルタイムのメトリクスとレポート作成

Kinesis Data Streams に取り込んだデータを使用して、リアルタイムのデータ分析とレポート作成を簡単に行うことができます。たとえば、データ処理アプリケーションは、バッチデータを受け取るまで待つのではなく、データのストリーミング中にシステムおよびアプリケーションのログに関するメトリクスやレポート作成を操作できます。

リアルタイムデータ分析

これにより、並行処理の能力がリアルタイムデータの価値と同時に得られます。たとえば、ウェブサイトのクリックストリームをリアルタイムで処理し、さらに並行して実行される複数の異なる Kinesis Data Streams アプリケーションを使用して、サイトの使いやすさの関与を分析します。

複雑なストリーム処理

Kinesis Data Streams アプリケーションとデータストリームの Directed Acyclic Graphs (DAG) を作成できます。通常、ここでは複数の Kinesis Data Streams アプリケーションから別のストリームにデータを出力し、別の Kinesis Data Streams アプリケーションによって下流処理が行われるようにします。

Kinesis Data Streams のメリット

Kinesis Data Streams は、さまざまなデータストリーミングの問題解決に使用できますが、一般的にデータのリアルタイム集計にも使用できます。集計データはその後でデータウェアハウスや MapReduce クラスターに読み込むことができます。

データは Kinesis ストリームに取り込むことができるため、耐久性と伸縮性が確保されます。レコードがストリームに取り込まれてから取得されるまでの遅延 (入力から取得までの遅延) は通常、1 秒未満です。つまり、Kinesis Data Streams アプリケーションにデータが追加されると同時にストリームのデータを利用し始めることができます。Kinesis Data Streams はマネージド型サービスであるため、データ取り込みパイプラインの作成と実行にかかわる運用負荷が軽くなります。MapReduce 型のストリーミングアプリケーションを作成することができます。Kinesis Data Streams は伸縮性に優れており、ストリームをスケールアップまたはスケールダウンできるため、有効期限が切れる前にデータレコードがなくなることはありません。

複数の Kinesis Data Streams アプリケーションを使用して、ストリームからデータを消費できるため、アーカイブや処理のような複数のアクションを同時に独立して実行できます。たとえば、2 つのアプリケーションが、同じストリームからデータを読み取ることができます。最初のアプリケーションは、最新の集計を計算して Amazon DynamoDB テーブルを更新します。2 番目のアプリケーションは、データを圧縮して Amazon Simple Storage Service (Amazon S3) などのデータストアにアーカイブします。集計実行中の DynamoDB テーブルは、その後、最新レポート用にダッシュボードによって読み取られます。

Kinesis Client Library を使用すると、耐障害性を維持しながらストリームからデータを消費することができ、Kinesis Data Streams アプリケーションに対するスケーリングも可能になります。

Amazon EMR クラスターを使用して Kinesis データストリームを直接読み取って処理する方法については、「Kinesis コネクタ」を参照してください。