無限ノック › SAA 練習問題一覧 › 問題
SAA高性能なアーキテクチャの設計

あるフラッシュセール EC サイトが Amazon DynamoDB(プロビジョニング済みキャパシティモード)を使用して商品在庫と注文データを管理しています。パーティションキーは product_id です。テーブル全体の WCU を十分に設定しているにもかかわらず、フラッシュセール中に特定の 3 商品への書き込みが集中し ProvisionedThroughputExceededException が発生しています。DynamoDB の内部パーティション上限によるホットパーティション問題が原因です。この問題を最も効果的に解決するアーキテクチャの変更はどれですか?

A
パーティションキーにランダムサフィックス(0〜9)を付加して書き込みを分散し、読み取り時はパラレルクエリで集約する
✓ 正解
ランダムサフィックスを付加することで人気商品への書き込みを複数の物理パーティションに均等分散でき、1 パーティションあたりの WCU 上限を超えなくなる。読み取りはパラレルクエリで集約するため、機能的な整合性も維持できる。
B
DAX(DynamoDB Accelerator)クラスターを追加してテーブルへの読み取りをキャッシュし、全体的なアクセス負荷を軽減する
DAX は読み取りアクセスの高速化とキャッシュに特化したサービスであり、書き込みスロットリングには効果がない。ホットパーティションへの書き込み集中という根本的な問題は DAX を追加しても解消されない。
C
グローバルテーブルを複数リージョンに展開してデータを複製し、各リージョンへの書き込みで負荷を地理的に分散させる
グローバルテーブルは災害対策や低レイテンシのリージョン間データアクセスを目的としており、単一テーブル内のホットパーティション問題は解決しない。各リージョンでも同一 product_id への書き込みが集中する。
D
オンデマンドキャパシティモードへ変更し、DynamoDB Adaptive Capacity によりスパイクトラフィックを自動処理させる
オンデマンドキャパシティモードに切り替えても DynamoDB の内部パーティション上限(1 パーティションあたり 1,000 WCU)は変わらない。Adaptive Capacity で緩和される場合もあるが、継続的なホットパーティションの根本解決にはならない。

解説

DynamoDB のホットパーティション問題は、同一パーティションキーへのリクエスト集中が内部パーティション上限(書き込み 1,000 WCU)を超えることで発生する。テーブル全体の WCU を増やしてもホットパーティションは解消されない。書き込みシャーディング(Write Sharding)では、パーティションキーにランダムサフィックス(例: product_id_3)を付加して物理的に異なるパーティションへ書き込みを均等分散する。読み取り時はすべてのサフィックスに対してパラレルクエリを実行し結果を集約する。 選択肢B の DAX(DynamoDB Accelerator)はマイクロ秒レベルの読み取りキャッシュを提供するが、書き込みスロットリングには効果がなく、ホットパーティションへの書き込み集中は解消されない。 選択肢C のグローバルテーブルは複数リージョンへのデータ複製機能で、同一パーティションキーへの書き込み集中という問題を解決しない。各リージョンで同じホットパーティション問題が発生する。 選択肢D のオンデマンドキャパシティモードは急激なトラフィック変化への対応には有効だが、DynamoDB 内部パーティション上限は変わらないため、特定パーティションへの継続的な書き込み集中の根本解決にはならない。

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

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

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