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

ECサイトのDynamoDBテーブルは「category」をパーティションキーとして使用し、オンデマンドキャパシティモードで運用しています。CloudWatchを確認すると「Electronics」カテゴリへの読み込みリクエストが集中し、SuccessfulRequestLatencyが増加しています。この問題の根本原因と最も効果的な解決策はどれですか?

A
オンデマンドキャパシティモードはスロットリングが発生しない設計のため、RDSへの移行を検討する
RDSへの移行は、オンデマンドモードでスロットリングが発生しないという誤った前提に基づいており、データモデルの大幅変更を伴うため根本解決策として不適切です。
B
Write Shardingを実装し、ランダムサフィックス(1〜10)でパーティションを分散させ読み込みは複数Queryで集約する
✓ 正解
DynamoDBはパーティションキーの値ごとにデータを分散させますが、「Electronics」のような特定値への集中アクセスはホットパーティション問題を引き起こします。オンデマンドモードでも内部的なスロットリングが発生し得ます。Write Sharding(書き込みシャーディング)でパーティションキーにランダムサフィックスを付加することで負荷を複数パーティションに分散できます。また、人気カテゴリの読み込みにはDAX(DynamoDB Accelerator:DynamoDB専用インメモリキャッシュ)によるキャッシュも有効な補完策です。
C
「category」をパーティションキーとするGSI(グローバルセカンダリインデックス)を追加し、メインテーブルの負荷をGSIに分散させる
GSI追加は、同じキー値を使うため負荷分散にならず根本解決になりません。
D
DynamoDB Streamsを有効化してLambdaでデータを均等に再配置する
DynamoDB Streams+Lambdaによるデータ再配置は、非同期処理でありリアルタイムのホットパーティション問題を解消せず、追加コストと運用複雑性が増大します。

解説

DynamoDBはパーティションキーの値ごとにデータを分散させますが、「Electronics」のような特定値への集中アクセスはホットパーティション問題を引き起こします。オンデマンドモードでも内部的なスロットリングが発生し得ます。Write Sharding(書き込みシャーディング)でパーティションキーにランダムサフィックスを付加することで負荷を複数パーティションに分散できます。また、人気カテゴリの読み込みにはDAX(DynamoDB Accelerator:DynamoDB専用インメモリキャッシュ)によるキャッシュも有効な補完策です。 選択肢AのRDSへの移行は、オンデマンドモードでスロットリングが発生しないという誤った前提に基づいており、データモデルの大幅変更を伴うため根本解決策として不適切です。 選択肢CのGSI追加は、同じキー値を使うため負荷分散にならず根本解決になりません。 選択肢DのDynamoDB Streams+Lambdaによるデータ再配置は、非同期処理でありリアルタイムのホットパーティション問題を解消せず、追加コストと運用複雑性が増大します。

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

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

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