メニュー
Amazon Kinesis Data Streams
開発者ガイド

Amazon Kinesis Data Streams とは?

Amazon Kinesis Data Streams を使用して、データレコードの大量のストリームをリアルタイムで収集し、処理します。

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

Kinesis Data Streams は Amazon Kinesis Data Firehose と共にストリーミングデータ プラットフォーム、Kinesis の一部です。詳細については、「Amazon Kinesis Data Firehose 開発者ガイド」を参照してください。AWS ビッグデータソリューションの詳細については、ビッグデータを参照してください。AWS ストリーミングデータソリューションの詳細については、「ストリーミングデータとは?」を参照してください。

Kinesis Data Streams の機能

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

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

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

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

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

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

リアルタイムデータ分析

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

複雑なストリーム処理

Amazon Kinesis Data Streams application とデータストリームの Directed Acyclic Graphs(DAG)を作成できます。一般的に、ここでは複数の Amazon Kinesis Data Streams application から別のストリームにデータを出力して、別の Amazon Kinesis Data Streams application により下流処理が行われるようにします。

Kinesis Data Streams のメリット

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

データは Kinesis data streamに取り込むことができ、それによって耐久性と適応性が確保されます。レコードがストリームに取り込まれてから取得されるまでの遅延 (入力から取得までの遅延) は通常、1 秒未満です。つまり、Amazon Kinesis Data Streams application ではデータが追加されるとすぐにストリームのデータの利用を開始できます。Kinesis Data Streams はマネージド型サービスであるため、データ取り込みパイプラインの作成と実行にかかわる運用負荷が軽くなります。MapReduce 型のストリーム処理アプリケーションを作成できること、さらに Kinesis Data Streams に適応性があることで、ストリームをスケールアップまたはダウンできるため、データレコードを有効期限になる前に失うことがなくなります。

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

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

Amazon EMR クラスターを使用して Kinesis data stream を直接読み取って処理する方法の例については、『Amazon EMR 開発者ガイド』の「Analyze Kinesis Data Streams Data」を参照してください。