Amazon Kinesis Data Streams
開発者ガイド

ステップ 7: 終了する

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

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

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

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

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

  4. [ストリームの削除] を選択します。

  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 のサービスおよびサードパーティー製ツールと統合するためのコネクタが用意されています。

次のステップ

このページの内容: