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

開発者はDynamoDBテーブルを管理している。パーティションキーは「productCategory」で、全アクセスの80%が「Electronics」に集中している。本番環境で「ProvisionedThroughputExceededException」が頻発したためオンデマンドモードに変更したが、依然としてスロットリングが発生している。根本的な原因と最も適切な対策の組み合わせはどれか?

A
原因:Auto Scalingの設定不足。対策:ターゲット使用率を下げてより積極的にスケールさせる
(Auto Scalingの設定不足)はAuto Scalingはプロビジョンドモード専用の機能であり、オンデマンドモードには適用されない。
B
原因:ホットパーティションが発生しパーティション単位の制限に達している。対策:高カーディナリティの属性(例:productId)をパーティションキーにするか、Write Sharding(キーにランダムなサフィックスを付加して分散)を採用する
✓ 正解
DynamoDBで単一パーティションキー値にトラフィックが集中する現象を「ホットパーティション」と呼ぶ。パーティションごとに3,000RCU/1,000WCUの上限があり、オンデマンドモードでもこの制限は存在するためスロットリングが続く。根本解決はパーティションキー設計の見直しで、高カーディナリティのキー選択またはWrite Sharding(例:「Electronics#1」〜「Electronics#10」に分散して書き込み)が有効。
C
原因:GSI(グローバルセカンダリインデックス)のスループット不足。対策:GSIのRCU/WCUを個別に増加させる
(GSI のスループット不足)はオンデマンドモードではGSIも自動スケールするため容量を個別設定できず、また本問題の原因はベーステーブルのホットパーティションであってGSI不足ではない。
D
原因:テーブルサイズの上限超過。対策:テーブルを複数に分割するシャーディングを実施する
(テーブルサイズの上限超過)はDynamoDBにはテーブルサイズの上限は存在せず、スロットリングの原因にはならない。

解説

DynamoDBで単一パーティションキー値にトラフィックが集中する現象を「ホットパーティション」と呼びます。パーティションごとに3,000RCU/1,000WCUの上限があり、オンデマンドモードでもこの制限は存在するためスロットリングが続きます。根本解決はパーティションキー設計の見直しです。 選択肢AのAuto Scalingの設定不足はAuto Scalingはプロビジョンドモード専用の機能であり、オンデマンドモードには適用されません。また、ホットパーティション問題はスループット容量の増加だけでは解決できません。 選択肢BのホットパーティションとWrite Sharding採用は根本原因の特定として正確です。高カーディナリティのキー選択またはWrite Sharding(例:「Electronics#1」〜「Electronics#10」に分散)によりパーティションへの負荷を均等化できます。 選択肢CのGSIのスループット不足はオンデマンドモードではGSIも自動スケールするため容量を個別設定できず、また本問題の原因はベーステーブルのホットパーティションであってGSI不足ではありません。 選択肢Dのテーブルサイズの上限超過はDynamoDBにはテーブルサイズの上限は存在せず、スロットリングの原因にはなりません。

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

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

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