Amazon Kinesis Data Streams
開発者ガイド

ステップ 7: 終了する

Kinesis data stream の使用には料金がかかるため、作業が終わったら、ストリームとそれに対応する Amazon DynamoDB テーブルは必ず削除してください。レコードを送信したり取得したりしていなくても、ストリームがアクティブなだけでわずかな料金が発生します。その理由として、アクティブなストリームでは、受信レコードを継続的に "リッスン" し、レコードを取得するようにリクエストすることにリソースが使用されるためです。

ストリームおよびテーブルを削除するには

  1. 実行しているプロデューサーおよびコンシューマーをすべてシャットダウンします。

  2. https://console.aws.amazon.com/kinesis にある Kinesis コンソールを開きます。

  3. このアプリケーション用に作成したストリームを選択します(StockTradeStream)。

  4. [Delete Stream] を選択します。

  5. https://console.aws.amazon.com/dynamodb/ にある DynamoDB コンソールを開きます。

  6. StockTradesProcessor テーブルを削除します。

概要

ほぼリアルタイムで大量のデータを処理するために、魔法のコードを記述したり、大規模なインフラストラクチャを開発したりする必要はありません。Kinesis Data Streams を使用すれば、少量のデータを処理するロジックを記述する(processRecord(Record) を記述する)場合と同じくらい簡単に、大量のストリーミングデータにも対応できるように拡張することができます。Kinesis Data Streams が代わりに処理してくれるため、処理を拡張する方法を心配しなくて済みます。することと言えば、ストリームレコードを Kinesis Data Streams に送信し、受信した新しい各レコードを処理するロジックを記述するだけです。

このアプリケーションについて考えられる拡張機能は、次のとおりです。

すべてのシャードで集計する

現在、単一のワーカーおよび単一のシャードから取得したデータレコードを集計した統計が表示されています (単一のアプリケーションでは、シャードを複数のワーカーによって同時に処理することはできません)。拡張するときに複数のシャードがある場合、すべてのシャードで集計しようと考えるかもしれません。そのためには、パイプラインアーキテクチャを用意します。パイプラインアーキテクチャでは、各ワーカーの出力が単一のシャードを持つ別のストリームに供給され、第 1 段階の出力を集計するワーカーによってそのストリームが処理されます。第 1 段階のデータが制限(シャードおよび 1 分間あたり 1 つのサンプル)されるため、シャードごとに処理しやすくなります。

処理の拡張

多数のシャードが含まれるようにストリームを拡張する場合(多数のプロデューサーがデータを送信している場合)、処理を拡張するには、より多くのワーカーを追加します。ワーカーを Amazon EC2 インスタンスで実行し、Auto Scaling グループを活用できます。

Amazon S3/DynamoDB/Amazon Redshift/Storm へのコネクタを使用します。

ストリームは継続的に処理されるため、出力を他の保存先に送信することができます。AWS には、Kinesis Data Streams を他の AWS サービスおよびサードパーティ製ツールと統合するためのコネクタが用意されています。

次のステップ

このページの内容: