翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon Kinesis Data Streams プロデューサーのトラブルシューティング
以下のトピックでは、Amazon Kinesis Data Streams プロデューサーの一般的な問題に対する解決策を示します。
プロデューサーアプリケーションが予想よりも遅い速度で書き込んでいる
書き込みスループットが予想よりも遅い最も一般的な理由は次のとおりです。
サービス制限を超えました
サービスの制限を超えているかどうかを確認するには、プロデューサーがサービスからスループット例外をスローしているかどうかを確認し、スロットリングされているAPIオペレーションを検証します。呼び出しによって制限が異なることに注意して、クォータと制限 を確認してください。たとえば、書き込みと読み取りのシャードレベルの制限は最もよく知られていますが、以下のようなストリームレベルの制限もあります。
CreateStream
、DeleteStream
、ListStreams
、 GetShardIterator
、MergeShards
のオペレーションは、1 秒あたり 5 個の呼び出しに制限されます。DescribeStream
オペレーションは、1 秒あたり 10 個の呼び出しに制限されます。DescribeStreamSummary
オペレーションは、1 秒あたり 20 個の呼び出しに制限されます。
このような呼び出しが原因でない場合は、選択したパーティションキーを使用してすべてのシャードに put オペレーションを均等に分散できること、どのパーティションキーもサービスの制限に達していないことを確認します。これには、ピークスループットを測定して、ストリームのシャードの数を考慮する必要があります。ストリーム管理の詳細については、Kinesis データストリームの作成と管理を参照してください。
ヒント
単一レコードオペレーション を使用するときは、スループットスロットリング計算のために最も近いキロバイトに切り上げてください。一方PutRecord、マルチレコードオペレーションは各呼び出しのレコードの累積合計をPutRecords四捨五入します。たとえば、PutRecords
は 1.1 KB になる 600 レコードのリクエストをスロットリングしません。
プロデューサーを最適化したい
プロデューサーの最適化を開始する前に、次の主要なタスクを完了してください。最初に、レコードのサイズと 1 秒あたりのレコード数で必要となるスループットピークを特定します。次に、制限要素としてのストリーム容量を除外します (サービス制限を超えました)。ストリーム容量を除外している場合は、以下のプロデューサーの 2 つの一般的なタイプのトラブルシューティングのヒントと最適化のガイドラインを使用します。
ラージプロデューサー
大規模なプロデューサーは通常、オンプレミスサーバーまたは Amazon EC2インスタンスから実行されます。ラージプロデューサーからより高いスループットを必要とするお客様は、通常レコードあたりのレイテンシーに注意を払います。レイテンシーに対処する戦略には、次のものがあります。お客様がレコードをマイクロバッチ/バッファできる場合は、Kinesis Producer Library (高度な集約ロジックを持つ)、マルチレコードオペレーション を使用するかPutRecords、単一レコードオペレーション を使用する前にレコードをより大きなファイルに集約しますPutRecord。バッチ/バッファを使用できない場合は、複数のスレッドを使用して Kinesis Data Streams サービスに同時に書き込みます。 AWS SDK for Java およびその他の SDKsには、コードが非常に少ない非同期クライアントが含まれています。
スモールプロデューサー
スモールプロデューサーは、通常モバイルアプリケーション、IoT デバイス、またはウェブクライアントです。モバイルアプリの場合は、 PutRecords
オペレーションまたは AWS Mobile の Kinesis Recorder を使用することをお勧めしますSDKs。詳細については、 AWS Mobile SDK for Android 「 入門ガイド」および AWS Mobile SDK for iOS 「 入門ガイド」を参照してください。モバイルアプリケーションは、本来断続的な接続を処理する必要があり、PutRecords
のようなバッチ put タイプを必要とします。何らかの理由でバッチを使用できない場合は、上記のラージプロデューサーの情報を参照してください。プロデューサーがブラウザの場合、生成されるデータの量は通常非常に小さなものとなります。ただし、アプリケーションの重要なパスに put オペレーションを配置することはお勧めしません。
不正なKMSマスターキーのアクセス許可エラーが表示される
このエラーは、プロデューサーアプリケーションがKMSマスターキーに対するアクセス許可なしで暗号化されたストリームに書き込むときに発生します。KMS キーにアクセスするためのアクセス許可をアプリケーションに割り当てるには、「 での AWS キーポリシーKMSの使用」および「 でのIAMポリシーの使用 AWS KMS」を参照してください。