Amazon Kinesis プロデューサーライブラリを使用したプロデューサーの開発 - Amazon Kinesis Data Streams

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

Amazon Kinesis プロデューサーライブラリを使用したプロデューサーの開発

Amazon Kinesis Data Streams プロデューサーは、ユーザーデータレコードを Kinesis データストリーム (データの取り込み). Kinesis Producer Library (KPL) を使用すると、プロデューサーアプリケーションの開発が簡素化され、開発者は Kinesis データストリームに対する優れた書き込みスループットを実現できます。

Amazon CloudWatch を使用して KPL をモニタリングできます。詳細については、「Amazon CloudWatch を使用した Kinesis プロデューサーライブラリのモニタリング」を参照してください。

KPL の役割

KPL は、Kinesis データストリームへの書き込みに役立つ、使いやすく、高度な設定が可能なライブラリです。これは、プロデューサーアプリケーションコードと Kinesis Data Streams API アクション間の仲介として機能します。KPL は、次の主要なタスクを実行します。

  • 自動的で設定可能な再試行メカニズムにより 1 つ以上の Kinesis データストリームへ書き込む

  • レコードを収集し、PutRecords を使用して、リクエストごとに複数シャードへ複数レコードを書き込む

  • ユーザーレコードを集約し、ペイロードサイズを増加させ、スループットを改善する

  • とシームレスに統合Kinesis クライアントライブラリコンシューマーで (KCL) を使用してバッチ処理されたレコードを集約解除する

  • プロデューサーのパフォーマンスを確認可能にする、ユーザーに代わって Amazon CloudWatch メトリクスを送信します。

KPL は、Kinesis Data Streams API で使用できる Kinesis Data Streams API とは異なることに注意してください。AWS SDK。Kinesis Data Streams API は KKinesis Data Streams 多くの要素 (ストリームの作成、リシャーディング、レコードの入力と取得など) を管理するのに役立ちます。また、KPL はデータの取り込みに特化した抽象化レイヤーを提供します。Kinesis Data Streams API の詳細については、Amazon Kinesis API リファレンス

KPL を使用するメリット

Kinesis Data Streams プロデューサーの開発に KPL を使用する主な利点を以下に示します。

KPL は、同期または非同期のユースケースで使用できます。同期動作を使用する特別な理由がないかぎり、非同期インターフェイスの優れたパフォーマンスを使用することを推奨します。これら 2 つのユースケースの詳細とコード例については、「KPL を使用した Kinesis データストリームへの書き込み」を参照してください。

パフォーマンスのメリット

KPL は、高性能のプロデューサーの構築に役立ちます。Amazon EC2 インスタンスをプロキシとして、100 バイトのイベントを数百または数千の低電力デバイスから収集し、レコードを Kinesis データストリームに書き込む状況を考えてみます。これらの EC2 インスタンスはそれぞれ、毎秒数千イベントをデータストリームに書き込む必要があります。必要なスループットを実現するには、お客様の側で、再試行ロジックとレコード集約解除に加え、バッチ処理やマルチスレッドなどの複雑なロジックをプロデューサーに実装する必要があります。KPL は、これらのタスクをすべて実行します。

コンシューマー側の使いやすさ

コンシューマー側の開発者が Java で KCL 使用する場合、追加作業なしで KPL が統合されます。KCL は、複数の KPL ユーザーレコードで構成されている集約された Kinesis Data Streams レコードを取得するとき、KCL は自動的に呼び出され、個々のユーザーレコードが抽出され、ユーザーに返されます。

コンシューマー側の開発者が KCL を使用せずに API オペレーションを使用する場合GetRecords直接、KPL Java ライブラリは、個々のユーザーレコードをユーザーに返すために各ユーザーのレコードを抽出するために使用できます。

プロデューサーのモニタリング

Amazon CloudWatch と KPL を使用して、KKinesis Data Streams プロデューサーを収集、モニタリング、分析できます。KPL は、スループット、エラー、およびその他のメトリクスをユーザーに代わって CloudWatch に配信し、ストリーム、シャード、またはプロデューサーレベルでモニタリングするように設定できます。

非同期アーキテクチャ

KPL では、レコードを Kinesis Data Streams に送信する前にそれらのレコードをバッファ処理する場合があるため、実行を続行する前にレコードがサーバーに到着したことを確認するために、発信者アプリケーションを強制的にブロックし待機させることはしません。KPL にレコードを配置する呼び出しは、必ずすぐに処理が戻り、レコードの送信やサーバーからの受信を待ちません。代わりに、Futureオブジェクトは、レコードを Kinesis Data Streams に送信した結果を後で受信するために作成されます。これは、AWS SDK の非同期クライアントと同じ動作です。

KPL の使用が適さない場合

KPL では、追加の処理遅延が生じる場合がありますRecordMaxBufferedTimeライブラリ内で (ユーザーが設定可能)。RecordMaxBufferedTime の値が大きいほど、パッキング効率とパフォーマンスが向上します。この追加的な遅延を許容できないアプリケーションは、AWS SDK を直接使用することが必要になる場合があります。AWS SDK を KKinesis Data Streams と組み合わせて使用する方法については、「」を参照してください。Amazon Kinesis Data Streams API と AWS SDK for Java を使用したプロデューサーの開発。の詳細RecordMaxBufferedTimeなどの KPL のユーザー設定可能なプロパティの詳細については、Kinesis プロデューサーライブラリの設定