翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon Kinesis Producer Library を使用したプロデューサーの開発
Amazon Kinesis Data Streams プロデューサーは、ユーザーデータレコードを Kinesis data stream に配置する (データの取り込みとも呼ばれます) アプリケーションです。Kinesis Producer Library (KPL) を使用すると、プロデューサーアプリケーションの開発が簡素化され、デベロッパーは Kinesis Data Streams に対する優れた書き込みスループットを実現できます。
Amazon で KPPPをモニタリングできます CloudWatch。詳細については、「Amazon CloudWatch を使用した Kinesis Client Library のモニタリング」を参照してください。
目次
- KPL の役割
- KPL を使用するメリット
- KPL の使用が適さない場合
- KPL のインストール
- Kinesis Producer Library の Amazon Trust Services (ATS) 証明書への移行
- KPL でサポートされるプラットフォーム
- KPL の主要な概念
- KPL とプロデューサーコードの統合
- KPL を使用した Kinesis Data Stream への書き込み
- Kinesis Producer Library の設定
- コンシューマーの集約解除
- Amazon Kinesis Data Firehose で KPL を使用する
- AWS Glue スキーマレジストリでの KPL の使用
- KPL プロキシ設定
注記
最新の KPL バージョンにアップグレードすることをお勧めします。KPL は、最新の依存関係やセキュリティパッチ、バグ修正、下位互換性のある新機能を含む新しいリリースで定期的に更新されます。詳細については、https://github.com/awslabs/amazon-kinesis-producer /releases/
KPL の役割
KPL easy-to-use は高度な設定可能ライブラリで、Kinesis Data Streams への書き込みに役立つ、高度な設定可能ライブラリです。これは、プロデューサーアプリケーションのコードと Kinesis Data Streams API アクション間の仲介として機能します。KPL は次の主要なタスクを実行します。
-
自動的で設定可能な再試行メカニズムにより 1 つ以上の Kinesis Data Streams へ書き込む
-
レコードを収集し、
PutRecords
を使用して、リクエストごとに複数シャードへ複数レコードを書き込む -
ユーザーレコードを集約し、ペイロードサイズを増加させ、スループットを改善する
-
コンシューマーで Kinesis Client Library (KCL) とシームレスに統合して、バッチ処理されたレコードを集約解除する
-
Amazon CloudWatch メトリクスをユーザーに代わって送信し、プロデューサーのパフォーマンスを確認可能にする
KPL は AWS SDK
KPL を使用するメリット
Kinesis Data Streams プロデューサーの開発に KPL を使用する主な利点を以下に示します。
KPL は、同期または非同期のユースケースで使用できます。同期動作を使用する特別な理由がないかぎり、非同期インターフェイスの優れたパフォーマンスを使用することを推奨します。これら 2 つのユースケースの詳細とコード例については、KPL を使用した Kinesis Data Stream への書き込み を参照してください。
- パフォーマンスのメリット
-
KPL は、高性能のプロデューサーの構築に役立ちます。Amazon EC2 インスタンスをプロキシとして使用し、100 バイトのイベントを数百または数千の低電力デバイスから収集して、レコードを Kinesis Data Streams に書き込む場合を考えてみます。これらの EC2 インスタンスはそれぞれ、毎秒数千イベントをデータストリームに書き込む必要があります。必要なスループットを実現するには、お客様の側で、再試行ロジックとレコード集約解除に加え、バッチ処理やマルチスレッドなどの複雑なロジックをプロデューサーに実装する必要があります。KPL が、これらのタスクをすべて実行します。
- コンシューマー側の使いやすさ
-
コンシューマー側のデベロッパーが Java で KCL を使用する場合、追加作業なしで KPL が統合されます。KCL で、複数の KPL ユーザーレコードで構成されている集約された Kinesis Data Streams レコードを取得するときは、自動的に KPL が呼び出され、個々のユーザーレコードが抽出され、ユーザーに返されます。
KCL を使用せずに API オペレーション
GetRecords
を直接使用するコンシューマー側のデベロッパーの場合、KPL Java ライブラリを使用して個々のユーザーレコードを抽出して、これらのレコードをユーザーに返すことができます。 - プロデューサーのモニタリング
-
Amazon と KPL を使用して、Kinesis Data Streams プロデューサーを収集 CloudWatch 、モニタリング、分析できます。KPL は、スループット、エラー、 CloudWatch およびその他のメトリクスをユーザーに代わって送信し、ストリーム、シャード、またはプロデューサーレベルでモニタリングするように設定できます。
- 非同期アーキテクチャ
-
KPL は、レコードを Kinesis Data Streams に送信する前にそれらのレコードをバッファ処理する場合があるため、実行を続行する前にレコードがサーバーに到着したことを確認するために、発信者アプリケーションを強制的にブロックし待機させることはしません。レコードを KPL に配置する呼び出しは、必ずすぐに処理が戻り、レコードの送信やサーバーからの応答の受信を待ちません。代わりに、レコードを Kinesis Data Streams に送信した結果を後で受信するための
Future
オブジェクトが作成されます。これは、 AWS SDK の非同期クライアントと同じ動作です。
KPL の使用が適さない場合
KPL では、ライブラリ内で最大 RecordMaxBufferedTime
まで追加の処理遅延が生じる場合があります (ユーザーが設定可能)。RecordMaxBufferedTime
の値が大きいほど、パッキング効率とパフォーマンスが向上します。この追加的な遅延を許容できないアプリケーションは、AWS SDK を直接使用することが必要になる場合があります。Kinesis Data Streams での AWS SDK の使用の詳細については、で Amazon Kinesis Data Streams API を使用したプロデューサーの開発AWS SDK for Javaを参照してください。RecordMaxBufferedTime
やその他のユーザー設定可能な KPLのプロパティの詳細については、Kinesis Producer Library の設定を参照してください。