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

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

Amazon Kinesis Data Streams の用語と概念

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

Kinesis Data Streams のアーキテクチャ

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


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

Kinesis Data Streams 用語

Kinesis Data Stream

AKinesis データストリームの集合である。シャード。各シャードにはデータレコードのシーケンスがあります。各データレコードにはシーケンス番号Kinesis Data Streams によって割り当てられます。

データレコード

Aデータレコードに格納されているデータの単位はKinesis データストリーム。データレコードは、シーケンス番号パーティションキー、データ BLOB (変更不可能なバイトシーケンス) です。Kinesis Data Streams は、いかなる方法でも BLOB 内のデータを検査、解釈、または変更することはありません。データ BLOB は最大 1 MB です。

保持期間

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

Producer

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

Consumer

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

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

アンAmazon Kinesis Data Streams アプリケーションは、一般的に複数の EC2 インスタンスで実行されるストリームのコンシューマーです。

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

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

Shard

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

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

パーティションキー

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

シーケンス番号

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

注記

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

Kinesis クライアントライブラリ

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

Kinesis クライアントライブラリにはメジャーバージョンは 2 種類あります。使用するバージョンは、作成するコンシューマーの種類によって異なります。詳細については、「Amazon Kinesis Data Streams からのデータの読み込み」を参照してください。

アプリケーション名

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

サーバー側の暗号化

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

注記

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

注記

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