DynamoDB で、Kinesis データストリームの問題をトラブルシューティングする方法を教えてください。

所要時間1分
0

Amazon DynamoDB が Amazon Kinesis データストリームとやり取りする方法を最適化し、問題をトラブルシューティングしたいです。

簡単な説明

DynamoDB テーブルで Kinesis データストリームを使用するときに、次の一般的な問題が発生する場合があります。

  • Kinesis データストリームレコードが失敗する。
  • コストが高くなったり、変動したりする。

AWS CloudTrail のログを確認し、Amazon CloudWatch で Kinesis データストリームのメトリクスを監視すると、問題のトラブルシューティングに役立ちます。

注: DynamoDB と Kinesis ストリームのデータのデフォルトの保管期間は、24 時間枠に設定されています。ただし、ストリームの保持期間を延長すると、データを最大 1 年間 (365 日または 8,760 時間) 保存できます。

解決策

失敗したレコードのトラブルシューティング

レコードが失敗した理由を特定するには、CloudTrail ログを確認します。レコードが失敗する一般的な理由を次に示します。

ProvisionedThroughputExceedException エラーが発生し、ストリームがプロビジョニングされたキャパシティモードの場合は、シャードの数が不足しています。より多くのシャードをプロビジョニングして、テーブルの読み取りおよび書き込み操作を管理します。

ProvisionedThroughputExceedException エラーが発生し、ストリームがオンデマンドキャパシティモードの場合は、正しくないパーティションキーを使用している可能性があります。パーティションキーが正しくないと、データがシャード間で不均等に分散される場合があります。データの分散が不均等だと、1 秒あたり 2 MB の読み取りレートクォータと 1 秒あたり最大 1 MB の書き込みレートクォータを超えるレコードを持つシャードで過負荷がかかる場合があります。

この問題を解決するには、データをシャード全体に均等に分散するパーティションキーを選択します。

適切なキャパシティモードを選択してコストを最適化する

DynamoDB で Kinesis データストリームのパフォーマンスとコストを最適化するには、適切なキャパシティモードを選択します。

DynamoDB データベースのワークロードの変動が大きく、予測が難しい場合は、オンデマンドキャパシティモードを選択します。Kinesis データストリームはシャードを自動的に管理するため、キャパシティを計画する必要はありません。

ワークロードが安定していて予測可能な場合は、プロビジョニングされたキャパシティモードを選択します。DynamoDB テーブルからの変更データキャプチャレコードを収容するために必要なシャードの数を指定することができます。

CloudTrail ログを使用して API アクティビティを確認する

コントロールプレーン API アクティビティを参考にデータストリームをトラブルシューティングするには、CloudTrail ログを確認します。CloudTrail は、すべてのコントロールプレーンの操作を記録し、内容にはストリームが有効または無効になった時期など、ストリームのアクティビティ情報が含まれます。CloudTrail ログを分析して、プロビジョニングされたスループットや、Kinesis および DynamoDB リソースに問題がないかどうかを確認します。次に、Kinesis Data Streams API を使用してシャードを管理します。

Kinesis データストリームメトリクスを使用して詳細なトラブルシューティングを行う

Kinesis データストリームメトリクスを監視するには、CloudWatch を使用します。

一般的な問題を特定するには、次のメトリクスが便利です。

  • GetRecords.IteratorAgeMilliSeconds メトリクスは、指定した期間におけるデータストリームに対するすべての GetRecords 呼び出しから受信した、最新のレコードの経過時間を示します。
  • GetRecords.Latency メトリクスは、指定された期間における Kinesis ストリームでの各 GetRecords 操作の所要時間を示します。
  • ThrottledPutRecordCount メトリクスは、データストリームにおける容量が不十分なためにスロットリングされたレコードの数を示します。
  • WriteProvisionedThroughputExceeded および ReadProvisionedThroughputExceeded メトリクスは、指定された期間において、データストリームのスロットリングが原因で拒否されたレコードの数を示します。

関連情報

Amazon CloudWatch と AWS Lambda を使用して Amazon Kinesis データストリームを自動スケーリングする

Kinesis データストリームコンシューマーのトラブルシューティング

AWS公式
AWS公式更新しました 5ヶ月前