専用スループットを備えた拡張ファンアウトを開発する - Amazon Kinesis Data Streams

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

専用スループットを備えた拡張ファンアウトを開発する

Amazon Kinesis Data Streams では、拡張ファンアウトと呼ばれる機能を使用するコンシューマーを構築できます。この機能により、コンシューマーは、シャードあたり 1 秒間に最大 2 MB のデータのスループットで、ストリームからレコードを受け取ることができます。このスループットは専用です。つまり、拡張ファンアウトを使用するコンシューマーは、ストリームからデータを受け取る他のコンシューマーと競合する必要がありません。Kinesis Data Streams は、ストリームのデータレコードを、拡張ファンアウトを使用するコンシューマーに送信します。そのため、これらのコンシューマーはデータをポーリングする必要はありません。

重要

オンデマンドアドバンテージモードでは、ストリームごとに最大 50 のコンシューマーを登録して、拡張ファンアウトを使用できます。オンデマンドの標準ストリームとプロビジョンドストリームでは、ストリームごとに最大 20 のコンシューマーを登録して、拡張ファンアウトを使用できます。

拡張ファンアウトのアーキテクチャを以下の図に示します。バージョン 2.0 以降の Amazon Kinesis Client Library (KCL) を使用してコンシューマーを構築する場合、KCL は拡張ファンアウトを使用してストリームのすべてのシャードからデータを受け取るように、コンシューマーを設定します。API を使用して、拡張ファンアウトを使用するコンシューマーを構築する場合は、シャードを個別にサブスクライブできます。

2 つのシャードと 2 つのコンシューマーを使用した拡張ファンアウトアーキテクチャを示すワークフロー図。2 つのコンシューマーはそれぞれ、拡張ファンアウトを使用してストリームの両方のシャードからデータを受け取っています。

図に示す内容は以下のとおりです。

  • 2 つのシャードを持つストリーム。

  • ストリームからデータを受信するために拡張ファンアウトを使用する 2 つのコンシューマー (コンシューマー X とコンシューマー Y)。2 つのコンシューマーはそれぞれ、ストリームのすべてのシャードとすべてのレコードにサブスクライブされています。バージョン 2.0 以降の KCL を使用してコンシューマーを構築する場合、KCL は自動的に、ストリームのすべてのシャードにコンシューマーをサブスクライブします。これに対し、API を使用してコンシューマーを構築する場合は、シャードを個別にサブスクライブできます。

  • コンシューマーがストリームからデータを受け取るために使用する拡張ファンアウトパイプを表す矢印。拡張されたファンアウトパイプは、シャードあたり最大 2 MB/秒 のデータを送信します。他のパイプやコンシューマーの総数は関係ありません。

共有スループットコンシューマーと拡張ファンアウトコンシューマーの違い

次の表は、デフォルトの共有スループットコンシューマーと、拡張ファンアウトコンシューマーを比較したものです。メッセージ伝達遅延時間は、ペイロードを送信する API (PutRecordPutRecords) を使用して送信されたペイロードが、ペイロードを消費する API (GetRecordsSubscribeToShard) を経由してコンシューマーアプリケーションに到達するまでにかかった時間 (ミリ秒) として定義されます。

共有スループットコンシューマーと拡張ファンアウトコンシューマーを比較した表
特性 拡張ファンアウトなしの共有スループットコンシューマー 拡張ファンアウトコンシューマー
読み取りスループット

シャードあたり合計 2 MB/秒に固定されています。同じシャードから読み取るコンシューマーが複数ある場合、それらのすべてがこのスループットを共有します。コンシューマーがシャードから受け取るスループットの合計が 2 MB/秒を超えることはありません。

拡張ファンアウトを使用するコンシューマーが登録されるにつれてスケールされます。拡張ファンアウトを使用するように登録された各コンシューマーは、他のコンシューマーとは関係なく、シャードあたりに受け取る独自の読み取りスループットが最大 2 MB/秒です。

メッセージの伝播遅延

ストリームから読み取るコンシューマーが 1 つの場合は平均約 200 ms です。コンシューマーが 5 つの場合、この平均は最大約 1,000 ms まで上がります。

コンシューマーが 1 つまたは 5 つかによって、一般的に平均 70 ms です。

Cost 該当しない

データ取得コストおよびコンシューマー - シャード時間料金がかかります。詳細については、「Amazon Kinesis Data Streams の料金」を参照してください。

レコードの配信モデル

GetRecords を使用した HTTP 経由のプルモデルです。

Kinesis Data Streams は、SubscribeToShard を使用して、HTTP/2 経由でレコードをプッシュします。

最大 50 の拡張ファンアウトコンシューマーでサポートされているリージョン (オンデマンド Advantage のみ)

オンデマンドアドバンテージモードで最大 50 の拡張ファンアウトコンシューマーのサポートは、次の AWS リージョンでのみ使用できます。

AWS リージョン リージョン名

eu-north-1

欧州 (ストックホルム)

me-south-1

中東 (バーレーン)

ap-south-1

アジアパシフィック (ムンバイ)

eu-west-3

欧州 (パリ)

ap-southeast-3

アジアパシフィック (ジャカルタ)

us-east-2

米国東部 (オハイオ)

af-south-1

アフリカ (ケープタウン)

eu-west-1

欧州 (アイルランド)

me-central-1

中東 (アラブ首長国連邦)

eu-central-1

欧州 (フランクフルト)

sa-east-1

南米 (サンパウロ)

ap-east-1

アジアパシフィック (香港)

ap-south-2

アジアパシフィック (ハイデラバード)

us-east-1

米国東部 (バージニア北部)

ap-northeast-2

アジアパシフィック (ソウル)

ap-northeast-3

アジアパシフィック (大阪)

eu-west-2

欧州 (ロンドン)

ap-southeast-4

アジアパシフィック (メルボルン)

ap-northeast-1

アジアパシフィック (東京)

us-west-2

米国西部 (オレゴン)

us-west-1

米国西部 (北カリフォルニア)

ap-southeast-1

アジアパシフィック (シンガポール)

ap-southeast-2

アジアパシフィック (シドニー)

il-central-1

イスラエル (テルアビブ)

ca-central-1

カナダ (中部)

ca-west-1

カナダ西部 (カルガリー)

eu-south-2

欧州 (スペイン)

cn-northwest-1

中国 (寧夏)

eu-central-2

欧州 (チューリッヒ)

us-gov-east-1

AWS GovCloud (米国東部)

us-gov-west-1

AWS GovCloud (米国西部)