DVA-C02トラブルシューティングと最適化EASY単一選択

あるチームがAmazon DynamoDBを使ったAPIを運用している。突然「ProvisionedThroughputExceededException」が発生し始めたが、全体的なスループットは設定値以下であることをCloudWatchで確認している。特定の商品IDへのアクセスが集中しているという報告がある。この状況の原因として最も適切な説明はどれか。

  1. A. DynamoDBテーブルのオートスケーリングが正しく設定されていないためキャパシティ不足が発生している
  2. B. CloudWatchのメトリクスに遅延があり、実際は全体スループットが設定値を超えている
  3. C. DynamoDBのグローバルテーブルのレプリカ間で競合が発生している
  4. D. ホットパーティション問題が発生しており、特定のパーティションキーへのアクセス集中が個別パーティションの上限を超えている
解答と解説を見る

正解: D

ProvisionedThroughputExceededExceptionが全体スループット以下でも発生するのは、ホットパーティション問題(選択肢D)が典型的な原因である。DynamoDBのデータは内部的に複数のパーティションに分散されるが、各パーティションはテーブル全体のキャパシティを均等に分け合う。特定のパーティションキーに大量のリクエストが集中すると、そのパーティション単独のスループット上限を超え、テーブル全体の合計は上限以下でもエラーが発生する。選択肢Aのオートスケーリングは全体キャパシティの問題であり、パーティション偏重の問題には対応できない。選択肢Cのグローバルテーブル競合はWrite競合の問題であり今回の症状とは異なる。選択肢BのCloudWatch遅延は可能性として極めて低く、問題文の条件に反する。解決策としてはキャッシュ導入・アクセスパターン分散・書き込みシャーディングが有効。

▸ この試験を本気で演習する(全150問・無料)