Amazon Kinesis Data Streams の用語と概念 - Amazon Kinesis Data Streams

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Amazon Kinesis Data Streams の用語と概念

Amazon Kinesis Data Streams を使用し始めると、アーキテクチャと用語を理解していることが強みになります。

Kinesis Data Streams のアーキテクチャの概要

以下の図に、Kinesis Data Streams のアーキテクチャの概要を示します。プロデューサーは継続的にデータを Kinesis Data Streams にプッシュし、コンシューマーはリアルタイムでデータを処理します。コンシューマー (Amazon EC2 で実行されているカスタムアプリケーションや Amazon Data Firehose 配信ストリームなど) は、Amazon DynamoDB、Amazon Redshift、Amazon S3 などの AWS サービスを使用して結果を保存できます。

Kinesis Data Streams のアーキテクチャの概要図

Kinesis Data Streams の用語集

Kinesis Data Streams

Kinesis data stream は、シャードのセットです。各シャードにはデータレコードのシーケンスがあります。各データレコードには、Kinesis Data Streams によってシーケンス番号が割り当てられます。

データレコード

Kinesis data stream によって保存されるデータの単位は、データレコードです。データレコードは、シーケンス番号パーティションキー、データ BLOB (変更不可のバイトシーケンス) で構成されます。Kinesis Data Streams ではいずれの方法でも BLOB のデータが検査、解釈、または変更されることはありません。データ BLOB は最大 1 MB です。

容量モード

データストリーム容量モードは、容量の管理方法と、データストリームの使用に対する課金方法を決定します。現在、Kinesis Data Streams では、データストリームのオンデマンドモードとプロビジョンドモードのいずれかを選択できます。詳細については、「データストリーム容量モードの選択」を参照してください。

オンデマンドモードでは、Kinesis Data Streams は必要なスループットを提供するために、シャードを自動的に管理します。使用した実際のスループットに対してのみ課金されます。Kinesis Data Streams は、ワークロードのスループットニーズが上昇または低下したときに自動的に対応します。詳細については、オンデマンドモードを参照してください。

プロビジョンドモードでは、データストリームのシャードカウントを指定する必要があります。データストリームの総容量は、シャードの容量の合計です。必要に応じて、データストリームのシャードの数を増減することができ、シャードカウントに対して時間料金が発生します。詳細については、プロビジョニングモードを参照してください。

保持期間

保持期間は、データレコードがストリームに追加された後にデータレコードにアクセスできる時間の長さです。ストリームの保持期間は、デフォルトで作成後 24 時間に設定されます。IncreaseStreamRetentionPeriod オペレーションを使用して保持期間を最大 8,760 時間 (365 日) まで延長し、 DecreaseStreamRetentionPeriodオペレーションを使用して保持期間を最小 24 時間に短縮できます。24 時間を超える保持期間が設定されたストリームには追加料金が適用されます。詳細については、「Amazon Kinesis Data Streams の料金」を参照してください。

プロデューサー

プロデューサーは、Amazon Kinesis Data Streams にレコードを配置します。たとえば、ストリームにログデータを送信するウェブサーバーはプロデューサーです。

コンシューマー

コンシューマーは、Amazon Kinesis Data Streams からレコードを取得して処理します。これらのコンシューマーは Amazon Kinesis Data Streams アプリケーション と呼ばれます。

Amazon Kinesis Data Streams アプリケーション

Amazon Kinesis Data Streams application はストリームのコンシューマーで、一般的に EC2 インスタンスのフリートで実行されます。

開発可能なコンシューマーには、共有ファンアウトコンシューマーと拡張ファンアウトコンシューマーの 2 種類あります。両者間の相違点を確認する方法、各種類のコンシューマーを作成する方法については、Amazon Kinesis Data Streams からのデータの読み取りを参照してください。

Kinesis Data Streams アプリケーションの出力を別のストリームの入力にすることで、リアルタイムにデータを処理する複雑なトポロジを作成できます。アプリケーションは、他のさまざまな AWS のサービスにデータを送信することもできます。複数のアプリケーションが 1 つのストリームを使用して、各アプリケーションが同時にかつ独立してストリームからデータを消費できます。

シャード

シャードは、ストリーム内の一意に識別されたデータレコードのシーケンスです。ストリームは複数のシャードで構成され、各シャードが容量の 1 単位になります。各シャードは、読み取りで最大 5 トランザクション/秒、最大合計データ読み取り速度 2 MB/秒、書き込みで最大 1,000 レコード/秒、最大合計データ書き込み速度 1 MB/秒をサポートできます (パーティションキーを含む)。ストリームのデータ容量は、ストリームに指定したシャードの数によって決まります。ストリームの総容量はシャードの容量の合計です。

データ転送速度が増加した場合、ストリームに割り当てられたシャードカウントを増やしたり、減らしたりできます。詳細については、ストリームをリシャーディングするを参照してください。

パーティションキー

パーティションキーは、ストリーム内のデータをシャード単位でグループ化するために使用されます。Kinesis Data Streams では、ストリームに属するデータレコードを複数のシャードに配分します。この際、各データレコードに関連付けられたパーティションキーを使用して、配分先のシャードを決定します。パーティションキーは Unicode 文字列で、各キーの最大長は 256 文字に制限されています。MD5 ハッシュ関数を使用して、パーティションキーを 128 ビットの整数値にマッピングし、関連付けられたデータレコードをシャードにマッピングします。後者のマッピングにはシャードのハッシュキー範囲を使用します。アプリケーションは、ストリームにデータを配置するときに、パーティションキーを指定する必要があります。

シーケンス番号

各データレコードには、シャード内のパーティションキーごとに一意のシーケンス番号があります。client.putRecords または client.putRecord を使用してストリームに書き込むと、Kinesis Data Streams によってシーケンス番号が割り当てられます。同じパーティションキーのシーケンス番号は、通常徐々に増加されます。書き込みリクエスト間の期間が長くなるほど、シーケンス番号は大きくなります。

注記

シーケンス番号は、同じストリーム内の一連のデータのインデックスとして使用することはできません。一連のデータを論理的に区別するには、パーティションキーを使用するか、データセットごとに個別のストリームを作成します。

Kinesis Client Library

Kinesis Client Library をアプリケーションにコンパイルすることで、耐障害性を維持しながらストリームからデータを消費できます。Kinesis Client Library により、シャードごとにその実行と処理用のレコードプロセッサが確保されます。また、ストリームからのデータの読み取りが簡素化されます。Kinesis Client Library は、Amazon DynamoDB テーブルを使用してコントロールデータを保存します。また、データを処理するアプリケーションごとに 1 つのテーブルを作成します。

Kinesis Client Library には 2 種類のメジャーバージョンがあります。使用するバージョンは、作成するコンシューマーの種類によって異なります。詳細については、Amazon Kinesis Data Streams からのデータの読み取りを参照してください。

アプリケーション名

Amazon Kinesis Data Streams アプリケーションの名前によって、アプリケーションが識別されます。各アプリケーションには、アプリケーションが使用する AWS アカウントとリージョンを対象とする一意の名前が必要です。この名前は、Amazon DynamoDB のコントロールテーブルと Amazon CloudWatch メトリクスの 名前空間の名前として使用されます。

サーバー側の暗号化

Amazon Kinesis Data Streams は、プロデューサーがストリームに入力するときに、機密データを自動的に暗号化できます。Kinesis Data Streams は暗号化に AWS KMS マスターキーを使用します。詳細については、Amazon Kinesis Data Streams のデータ保護を参照してください。

注記

暗号化されたストリームに対して読み書きを行うために、プロデューサーおよびコンシューマーアプリケーションにはマスターキーへのアクセス許可が必要です。プロデューサーおよびコンシューマーアプリケーションにアクセス許可を付与する方法については、ユーザー生成の KMS マスターキーを使用するための許可を参照してください。

注記

サーバー側の暗号化を使用すると、 AWS Key Management Service (AWS KMS) のコストが発生します。詳細については、AWS Key Management Service の料金を参照してください。