

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

# 専用スループットを備えた拡張ファンアウトを開発する
<a name="enhanced-consumers"></a>

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

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

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

![\[2 つのシャードと 2 つのコンシューマーを使用した拡張ファンアウトアーキテクチャを示すワークフロー図。2 つのコンシューマーはそれぞれ、拡張ファンアウトを使用してストリームの両方のシャードからデータを受け取っています。\]](http://docs.aws.amazon.com/ja_jp/streams/latest/dev/images/enhanced_fan-out.png)


図に示す内容は以下のとおりです。
+ 2 つのシャードを持つストリーム。
+ ストリームからデータを受信するために拡張ファンアウトを使用する 2 つのコンシューマー (コンシューマー X とコンシューマー Y)。2 つのコンシューマーはそれぞれ、ストリームのすべてのシャードとすべてのレコードにサブスクライブされています。バージョン 2.0 以降の KCL を使用してコンシューマーを構築する場合、KCL は自動的に、ストリームのすべてのシャードにコンシューマーをサブスクライブします。これに対し、API を使用してコンシューマーを構築する場合は、シャードを個別にサブスクライブできます。
+ コンシューマーがストリームからデータを受け取るために使用する拡張ファンアウトパイプを表す矢印。拡張されたファンアウトパイプは、シャードあたり最大 2 MB/秒 のデータを送信します。他のパイプやコンシューマーの総数は関係ありません。

**Topics**
+ [共有スループットコンシューマーと拡張ファンアウトコンシューマーの違い](#enhanced-consumers-differences)
+ [最大 50 の拡張ファンアウトコンシューマーでサポートされているリージョン (オンデマンド Advantage のみ)](#supported-regions)
+ [AWS CLI または APIs を使用して拡張ファンアウトコンシューマーを管理する](building-enhanced-consumers-console.md)

## 共有スループットコンシューマーと拡張ファンアウトコンシューマーの違い
<a name="enhanced-consumers-differences"></a>

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


**共有スループットコンシューマーと拡張ファンアウトコンシューマーを比較した表**  

| 特性 | 拡張ファンアウトなしの共有スループットコンシューマー | 拡張ファンアウトコンシューマー | 
| --- | --- | --- | 
| 読み取りスループット |  シャードあたり合計 2 MB/秒に固定されています。同じシャードから読み取るコンシューマーが複数ある場合、それらのすべてがこのスループットを共有します。コンシューマーがシャードから受け取るスループットの合計が 2 MB/秒を超えることはありません。  |  拡張ファンアウトを使用するコンシューマーが登録されるにつれてスケールされます。拡張ファンアウトを使用するように登録された各コンシューマーは、他のコンシューマーとは関係なく、シャードあたりに受け取る独自の読み取りスループットが最大 2 MB/秒です。  | 
| メッセージの伝播遅延 |  ストリームから読み取るコンシューマーが 1 つの場合は平均約 200 ms です。コンシューマーが 5 つの場合、この平均は最大約 1,000 ms まで上がります。  |  コンシューマーが 1 つまたは 5 つかによって、一般的に平均 70 ms です。  | 
| Cost | 該当しない |  データ取得コストおよびコンシューマー - シャード時間料金がかかります。詳細については、「[Amazon Kinesis Data Streams の料金](https://aws.amazon.com/kinesis/data-streams/pricing/?nc=sn&loc=3)」を参照してください。  | 
| レコードの配信モデル |  GetRecords を使用した HTTP 経由のプルモデルです。  |  Kinesis Data Streams は、SubscribeToShard を使用して、HTTP/2 経由でレコードをプッシュします。  | 

## 最大 50 の拡張ファンアウトコンシューマーでサポートされているリージョン (オンデマンド Advantage のみ)
<a name="supported-regions"></a>

 オンデマンドアドバンテージモードで最大 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 (米国西部) | 

# AWS CLI または APIs を使用して拡張ファンアウトコンシューマーを管理する
<a name="building-enhanced-consumers-console"></a>

Amazon Kinesis Data Streams で*拡張ファンアウト*を使用するコンシューマーは、シャードあたり 1 秒間に最大 2 MB のデータの専用スループットで、データストリームからレコードを受け取ることができます。詳細については、「[専用スループットを備えた拡張ファンアウトを開発する](enhanced-consumers.md)」を参照してください。

 AWS CLI または Kinesis Data Streams APIs を使用して、Kinesis Data Streams で拡張ファンアウトを使用するコンシューマーを登録、説明、一覧表示、および登録解除できます。

## を使用してコンシューマーを管理する AWS CLI
<a name="manage-consumers-cli"></a>

を使用して、拡張ファンアウトコンシューマーを登録、説明、一覧表示、および登録解除できます AWS CLI。例については、次のドキュメントを参照してください。

[register-stream-consumer](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kinesis/register-stream-consumer.html)  
Kinesis データストリームにコンシューマーを登録します。コンシューマーの登録時にタグを適用できます。

[describe-stream-consumer](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kinesis/describe-stream-consumer.html)  
登録済みコンシューマーの詳細情報を、コンシューマー ARN またはコンシューマー名とストリーム ARN の組み合わせを指定して取得します。

[list-stream-consumers](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kinesis/list-stream-consumers.html)  
拡張ファンアウトを使用してストリームからデータを受け取るように登録されているコンシューマーを一覧表示します。

[deregister-stream-consumer](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kinesis/deregister-stream-consumer.html)  
コンシューマー ARN、またはコンシューマー名とストリーム ARN の組み合わせのいずれかを指定して、コンシューマーを登録解除します。

## Kinesis Data Streams API を使用してコンシューマーを管理する
<a name="manage-consumers-api"></a>

Kinesis Data Streams API を使用して、拡張ファンアウトコンシューマーを登録、説明、一覧表示、および登録解除できます。例については、次のドキュメントを参照してください。

[RegisterStreamConsumer](https://docs.aws.amazon.com/kinesis/latest/APIReference/API_RegisterStreamConsumer.html)  
タグを使用して Kinesis データストリームにコンシューマーを登録します。コンシューマーの登録時にタグを適用できます。

[DescribeStreamConsumer](https://docs.aws.amazon.com/kinesis/latest/APIReference/API_DescribeStreamConsumer.html)  
登録済みコンシューマーの詳細情報を、コンシューマー ARN またはコンシューマー名とストリーム ARN の組み合わせを指定して取得します。

[ListStreamConsumers](https://docs.aws.amazon.com/kinesis/latest/APIReference/API_ListStreamConsumers.html)  
拡張ファンアウトを使用してストリームからデータを受け取るように登録されているコンシューマーを一覧表示します。

[DeregisterStreamConsumer](https://docs.aws.amazon.com/kinesis/latest/APIReference/API_DeregisterStreamConsumer.html)  
コンシューマー ARN、またはコンシューマー名とストリーム ARN の組み合わせのいずれかを指定して、コンシューマーを登録解除します。

## コンシューマーのタグ付け
<a name="tag-consumers"></a>

Kinesis Data Streams で作成したストリームおよび拡張ファンアウトコンシューマーに、独自のメタデータをタグ形式で割り当てることができます。タグを使用して、コンシューマーのコストを分類して追跡できます。[属性ベースのアクセス制御 (ABAC)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_attribute-based-access-control.html) では、タグを使用してコンシューマー関数へのアクセスも制御できます。詳細については、「[Amazon Kinesis Data Streams リソースにタグを付ける](tagging.md)」を参照してください。