無限ノック › DVA 練習問題一覧 › 問題
DVAトラブルシューティングと最適化

ゲームアプリケーションのリーダーボードはDynamoDBで管理されており、パーティションキーとして `game_id` を使用しています。テーブル全体のプロビジョニングされたキャパシティには十分な余裕があるにもかかわらず、5つの人気ゲームへのアクセスが集中するタイミングで `ProvisionedThroughputExceededException` が頻発しています。この問題の根本原因と最適な対処法はどれですか?

A
テーブル全体のWCUとRCUを5倍に増やし、全パーティションのスループットを一律に底上げする
テーブル全体のキャパシティを増やしても、特定パーティションへの集中は解消されず、各パーティション固有の上限を超えるアクセスは依然スロットリングされる。コストが増えるだけで根本原因のホットパーティションは残るため不適切。
B
ライトシャーディング(ランダムサフィックスや高カーディナリティな複合キー設計)でアクセスを複数パーティションに分散させる
✓ 正解
各パーティションにはテーブル全体を均等分割したスループット上限があり、特定キーへの集中でスロットリングが起きる。ランダムサフィックスや複合キーでアクセスを複数パーティションに分散すれば、偏りを根本的に解消できる。
C
DynamoDB Accelerator(DAX)クラスターを追加して読み取りをキャッシュし、テーブルへの直接アクセスを削減する
DAXは読み取りをキャッシュしてテーブル負荷を下げられるが、書き込みのスロットリングには効果がない。リーダーボードは更新も多く、書き込みのホットパーティションは解決できないため最適解にならない。
D
オンデマンドキャパシティモードに切り替え、ホットパーティションのスループット制限を自動的に解除する
オンデマンドモードでも内部的にパーティション分割される構造は同じで、単一パーティションへの集中によるスロットリング上限は残る。自動的に制限が解除されるという説明は誤りで、根本解決にならない。

解説

DynamoDBの各パーティションにはテーブル全体のスループットを均等分割した個別の上限があります。テーブル全体の消費量が低くても特定パーティションへのアクセスが集中すると、そのパーティション単位でスロットリングが発生します(ホットパーティション問題)。根本解決はパーティションキーの分散設計です。 選択肢Aのテーブル全体のWCUとRCUを5倍に増やすことはできますが、ホットパーティション問題の根本解決になりません。 選択肢CのDynamoDB Accelerator(DAX)クラスターは読み取りには有効ですが書き込みスロットリングは解決しません。 選択肢Dのテーブルをオンデマンドキャパシティモードに切り替えても、オンデマンドモードも内部的にパーティション分割されるためホットパーティション制限は残ります。

ドメイン別正答率・予想スコアでリアルタイムに実力把握

無限ノックでDVAを徹底対策。全問AI生成のオリジナル問題。

無料で演習を始める →
← DVA の問題一覧に戻る