開発者は DynamoDB テーブルに対して PutItem リクエストを送信していますが、間欠的に ProvisionedThroughputExceededException が発生しています。 CloudWatch メトリクスを確認すると、テーブル全体の消費 WCU(書き込みキャパシティユニット)はプロビジョニング済み WCU の 40% 程度にとどまっています。 このエラーの最も可能性の高い原因はどれですか?
DynamoDB はスループットをパーティションごとに均等分散します。テーブル全体の WCU 消費量が低くても、特定のパーティションキーに書き込みが集中するとそのパーティションの上限を超えて ProvisionedThroughputExceededException が発生します。対策としては、パーティションキーにランダムなサフィックスを付加する「書き込みシャーディング」、アクセスパターンの見直し、またはオンデマンドキャパシティモードへの切り替えが有効です。 選択肢A の テーブル全体のプロビジョニング済み WCU が不足している説は、テーブル全体の WCU 消費量が 40% にとどまっているため否定されます。 選択肢C の DynamoDB のサービスクォータ(上限値)に達している説はアカウント・リージョン単位の制限であり、特定パーティションへのアクセス集中という局所的なエラーパターンとは一致しません。 選択肢D の アイテムサイズが 400KB を超えている説は、この場合 ProvisionedThroughputExceededException ではなく ValidationException が返されます。