DVA-C02トラブルシューティングと最適化MEDIUM複数選択

あるチームがDynamoDBのスロットリング問題を解決しようとしている。CloudWatchのReadThrottleEventsとWriteThrottleEventsが高い値を示しており、特定の時間帯に集中していることがわかった。根本原因の調査と対策として正しいものを2つ選択してください。

  1. A. DynamoDBのConsumedReadCapacityUnitsとConsumedWriteCapacityUnitsのメトリクスをパーティションキー別に確認してホットパーティションを特定する
  2. B. DynamoDBをグローバルテーブルに変更してトラフィックを複数リージョンに分散させる
  3. C. DynamoDBのプロビジョンドキャパシティを即座に2倍にしてスロットリングを解消する
  4. D. アプリケーションのリトライロジックに指数バックオフとジッターを実装して、スロットリング時の再試行の衝突を分散させる
  5. E. OnDemandモードに切り替えてすべてのスロットリング問題を永久に解決する
解答と解説を見る

正解: A, D

ホットパーティションの特定(選択肢A)は根本原因調査の第一歩。CloudWatchのConsumedCapacityUnitsをパーティションキー別にCloudWatch ContributorInsightsで確認し、特定のキーへのアクセス集中を検出する。原因がわかれば、キーの設計変更・キャッシュ導入・書き込みシャーディングといった根本対策を実施できる。指数バックオフとジッターの実装(選択肢D)はスロットリング発生時の対症療法として重要で、複数クライアントの同時リトライによるサンダーリングハードを防ぐ。AWS SDKのデフォルトリトライはあるが、アプリケーション固有の適切なジッター付き指数バックオフを追加することが推奨される。選択肢Cのキャパシティ倍増はホットパーティション問題では効果が限定的(各パーティション単位の上限は変わらない)。選択肢BのグローバルテーブルはDR用途であり、スロットリング解決にはならない。選択肢EのOnDemandはスロットリングを大幅に減らせるが「永久に解決」は誇大表現で、急激なスパイクでは依然スロットリングが発生しうる。

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