無限ノック › SAP 練習問題一覧 › 問題
SAP新しいソリューションのための設計

あるオンラインゲーム企業は、リアルタイム対戦のランキング機能を Amazon DynamoDB(オンデマンドキャパシティ)で運用しています。プレイヤーのスコアは ap-northeast-1 の単一テーブルに書き込まれ、上位 100 名のリーダーボードは全世界のクライアントから 1 秒あたり数十万回参照されます。参照の 95% は同一の上位ランキング項目に集中しており、運営はこの「ホットな読み取り」に対してマイクロ秒〜ミリ秒未満のレイテンシを求めています。一方で、スコア更新は強い整合性で即座にランキングへ反映される必要があります。アプリは ap-northeast-1 の EKS 上で動作しています。書き込みスループットやデータモデルは変更せず、最小の運用負荷でこの読み取り性能要件を満たす方法はどれですか。

A
DynamoDB Accelerator(DAX)クラスターを EKS と同一 VPC に配置し、リーダーボードの読み取りを DAX 経由に切り替える。書き込みは DAX のライトスルーで DynamoDB に反映させ、ホット項目はインメモリキャッシュから返す
✓ 正解
DAX は DynamoDB 専用インメモリ・ライトスルーキャッシュでキャッシュヒット時にマイクロ秒レイテンシを実現し、ホット項目に 95% 集中する本件で高ヒット率を得られる。書き込みロジックやデータモデル変更が不要でアプリは DAX クライアント差し替えのみと運用負荷が最小。
B
Amazon ElastiCache for Redis クラスターを導入し、アプリ側でスコア更新時に DynamoDB と Redis の両方へ書き込むキャッシュアサイド方式を実装。リーダーボード参照は Redis のソート済みセットから返す
ElastiCache for Redis はキャッシュアサイドを自前実装する必要があり、DynamoDB と Redis への二重書き込みの整合性管理などアプリ改修と運用負荷が大きい。マネージドな DynamoDB 統合がなく要件の「最小運用負荷」に反する。
C
DynamoDB グローバルテーブルを複数リージョンに展開し、各地域のクライアントが最寄りリージョンのレプリカから上位ランキングを読み取る。書き込みは ap-northeast-1 のレプリカに集約する
グローバルテーブルは地理的レイテンシ削減のための仕組みで、レプリカは結果整合のためスコアの即時・強整合な反映要件を満たせない。ホット項目のマイクロ秒読み取りという本質的な性能課題も解決しない。
D
DynamoDB テーブルにグローバルセカンダリインデックス(GSI)を追加してスコア降順でクエリし、参照頻度に合わせて GSI の読み取りキャパシティを引き上げてホット読み取りを吸収する
GSI を追加しキャパシティを増やしてもホットな単一項目への参照集中は分散されず、項目・パーティション単位のスループット制約に阻まれる。インメモリキャッシュではないためマイクロ秒レイテンシも達成できない。

解説

DynamoDB Accelerator(DAX)は DynamoDB 専用のインメモリ・ライトスルーキャッシュで、キャッシュヒット時にマイクロ秒レベルのレイテンシを提供します。参照の 95% が同一のホット項目に集中する本シナリオではキャッシュヒット率が非常に高く、読み取り性能要件を最小の運用負荷で満たせます。 DAX はライトスルーで書き込みを DynamoDB に反映しつつキャッシュも更新するため、データモデルや書き込みロジックの変更が不要です。アプリは DAX クライアントに差し替えるだけで導入でき、運用負荷が最小です。 選択肢Bの ElastiCache for Redis はキャッシュアサイドを自前実装する必要があり、二重書き込みの整合性管理などアプリ改修と運用負荷が大きくなります。 選択肢Cの DynamoDB グローバルテーブルは地理的レイテンシ対策であり、レプリカは結果整合のためスコア即時反映の強整合要件を満たせません。 選択肢Dの GSI 追加とキャパシティ増強はホット項目への参照集中を解消できず、単一項目のスループット上限に阻まれマイクロ秒レイテンシも実現できません。

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

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

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