Amazon Kinesis Data Stream 500 の内部サーバーエラーまたは 503 サービス利用不可エラーのトラブルシューティングを行いたいと考えています。
簡単な説明
Kinesis データストリームに生成する場合、次の内部エラーが発生する可能性があります。
- **PutRecord ** または PutRecords が Amazon KinesisException 500 または Amazon KinesisException 503 エラーを数分間、1% を超えるレートで返す
- Shard.Shard.Success または GetRecords が、レートが 1% を超える Amazon KinesisException 500 または AmazonKinesisException 503 エラーを数分間、1% を超えるレートで返す
これらの内部エラーをトラブルシューティングするには、次の手順を実行します。
- エラー率を計算します。
- 再試行メカニズムを実装します。
解決策
エラー率の計算
PutRecord.Success または GetRecord.Success のタイムウィンドウが大幅に低下しているか確認します。これらの指標は [モニタリング] タブで確認できます。大幅な低下が見られる場合は、エラー率を計算して Kinesis データストリームの問題の重大性を判断します。
エラー率を計算するには、PutRecord.Success と GetRecord.Success の平均値を計算します。
再試行メカニズムの実装
エラー率が 0.1% を下回っていることを確認します。Kinesis データストリームでは、低いエラー率で高スループットの書き込みが可能です。平均エラー率は通常 0.01% 未満です。
独自のコンシューマーまたはプロデューサーを記述した場合は、アプリケーションコードに再試行メカニズムを実装します。再試行メカニズムの実装の詳細については、「Implementing Efficient and Reliable Producers with the Amazon Kinesis Producer Library (Amazon Kinesis プロデューサーライブラリによる効率的で信頼性の高いプロデューサーの実装)」の「Retries (再試行)」セクションを参照してください。
エラー率が数分にわたって 1% を超える場合は、AWS サポートにお問い合わせください。その際、以下の情報を提供してください。
- データストリームとの間でデータを読み書きするために使用するアプリケーション
- Kinesis データストリームのシャード数
- サーバー側の暗号化設定
- 影響を受ける特定のシャード ID
- 成功率の低下が確認される期間
- 内部障害が発生しているリクエスト ID
関連情報
Amazon Kinesis Producer Library を使用してプロデューサーを開発する (KPL)
KCL 2.x コンシューマーの開発