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