Amazon DynamoDB でのスロットリングのトラブルシューティング
DynamoDB は、全体的なサービスパフォーマンスとコスト管理の 2 つの主な目的でスロットリングを実装します。スロットリングは、消費レートがキャパシティを超えたときにパフォーマンスの低下を防ぐ意図的な保護手段として、または最大スループットまたはサービスクォータ制限に達したときにコスト制御メカニズムとして機能します。スロットリングが発生すると、DynamoDB はリクエストがスロットリングされた理由と影響を受けたリソースに関する詳細情報を含む特定の例外を返します。スロットリングの各理由は、スロットリングイベントの頻度とパターンに関する追加のインサイトを提供する特定の CloudWatch メトリクスに対応しています。
次の図は、DynamoDB が保護スロットリングを実装する 4 つの主なシナリオを示しています。
-
キー範囲スループットを超過 (両方のモード)。
特定のパーティションに向けられた消費量が、内部パーティションレベルのスループット制限を超えています。
-
プロビジョンドスループットを超過 (プロビジョンドモードの場合)。
消費が、テーブルまたはグローバルセカンダリインデックス (GSI) に設定されているプロビジョンドキャパシティユニット (読み取りまたは書き込み) を超えています。
-
アカウントレベルのサービスクォータを超過 (オンデマンドモードの場合)。
消費により、テーブルまたは GSI は、現在の AWS リージョンの読み取り/書き込みスループットのテーブルごとのアカウントレベルのサービスクォータを超えます。これらのクォータはバックストップ保護として機能し、引き上げることができます。
-
オンデマンドの最大スループットを超過 (オンデマンドモードの場合)。
消費が、テーブルまたは GSI に設定されている最大スループット制限を超えています。これらは、コスト管理の目的で特に設定する制限です。

このガイドは、DynamoDB でのスロットリングの理解と操作に役立つようにまとめられています。まず、診断フレームワークを通じてワークロードに影響を与える特定のタイプのスロットリングを特定するのに役立ちます。
次に、解決ガイドセクションでは、検出と分析のためにモニタリングする CloudWatch メトリクス、最適化の推奨ステップなど、スロットリングシナリオごとに具体的なガイダンスを提供します。この構造化されたアプローチに従うことで、スロットリングの根本原因をより適切に診断し、DynamoDB テーブルが効率的に動作するように適切なソリューションを実装できます。
まず、スロットリングの診断 に従って、ワークロードに影響を与えているスロットリングのタイプを特定し、推奨される解決戦略を実装する方法について学びます。