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