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

あるグローバルゲーム会社が、新作タイトルのプレイヤープロファイルAPIを設計します。要件は次の通りです。 ①北米・欧州・アジアの各リージョンで読み取りレイテンシをひと桁ミリ秒に抑える、 ②プロファイル更新はどのリージョンからでも可能で、各リージョンのローカル書き込みを低レイテンシで受け付ける、 ③想定トラフィックは読み取りが書き込みの100倍以上で、突発的なホットキー(人気プレイヤー)アクセスが発生する、 ④フルマネージドで運用負荷を最小化したい。これらを最も適切に満たすデータストア構成はどれですか。

A
単一リージョンのAmazon DynamoDBテーブルにDAXクラスターを前段配置し、他リージョンからはGlobal Acceleratorで接続して読み書きを集約する
単一リージョンへ集約する構成のため、遠隔リージョンからの読み書きにはリージョン間往復が加わりひと桁msの読み取りを満たせない。Global Acceleratorは経路最適化に過ぎずローカル書き込み要件②も満たせない。
B
Amazon DynamoDB Global Tablesを3リージョンに構成し、各リージョンにDAXクラスターを配置してホットキー読み取りをキャッシュ、書き込みは各リージョンのローカルテーブルへ行う
✓ 正解
Global Tablesはマルチアクティブで各リージョンのローカル読み書きを低レイテンシで実現し、自動双方向複製で整合する。各リージョンのDAXがホットキーと読み取り多めの負荷をキャッシュで吸収し、すべてフルマネージドで運用負荷も最小のため全要件を満たす。
C
Amazon Aurora Global Databaseを構成し、各リージョンのリーダーから読み取り、書き込みはプライマリリージョンに集約、各リージョンにElastiCache for Redisを配置する
Aurora Global Databaseは書き込みがプライマリリージョンに集約される設計のため、どのリージョンからもローカルに低レイテンシで書き込む要件②を満たせない。リレーショナルである必要もなく、要件に対し過剰かつ不適合。
D
各リージョンに独立したAmazon DynamoDBテーブルを配置し、DynamoDB Streamsを起点にLambdaで他リージョンへ非同期コピーして整合性を取る
各リージョン独立テーブル+Streams+Lambdaによる自前複製は、マルチアクティブ時の書き込み競合解決やループ防止を自作する必要があり運用負荷が高く整合性リスクも大きい。フルマネージドで運用負荷最小という要件④に反する。

解説

DynamoDB Global Tablesはマルチリージョンのマルチアクティブ構成で、各リージョンのローカルテーブルへ低レイテンシで読み書きでき、リージョン間は自動で双方向レプリケーションされます。これにより要件①の各地ひと桁ms読み取りと②のローカル書き込みを両立できます。 各リージョンにDAX(DynamoDB Accelerator)を前段配置すると、読み取り多めのワークロードとホットキーアクセスをマイクロ秒級キャッシュで吸収でき、要件③に適合します。 Global TablesもDAXもフルマネージドのため運用負荷が最小(要件④)で、全要件を同時に満たす唯一の構成です。 選択肢Aは単一リージョン集約のため、遠隔リージョンからの読み書きはネットワーク往復が加わりひと桁msを満たせず、ローカル書き込み要件にも反する。 選択肢AのGlobal Acceleratorはネットワーク経路最適化であり、データのローカル化はできない。 選択肢CのAurora Global Databaseは書き込みがプライマリリージョンに集約され、各リージョンからの低レイテンシなローカル書き込み(②)を満たせない。 選択肢DのStreams+Lambda自前複製はマルチアクティブの競合解決を自作する必要があり、運用負荷が高く整合性リスクも大きい。

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

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

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