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

あるモバイルゲーム会社は、数百万人のプレイヤーが参加するリアルタイムランキングシステムを運営しています。このシステムは1秒あたり500,000件の読み取りリクエストを処理する必要があり、応答時間を1ミリ秒未満に維持することが求められています。現在、データはAmazon DynamoDBに保存されており、ピーク時の読み取りレイテンシーは5〜8ミリ秒です。アプリケーションコードの変更を最小限に抑えながら、このパフォーマンス要件を達成するための最適なソリューションはどれですか?

A
DynamoDB の読み取りキャパシティユニット (RCU) を大幅に増加させ、DynamoDB Auto Scaling を有効化する
RCUを増加させるとスループット(同時処理数)は向上するが、DynamoDBのベースレイテンシー特性自体は変わらないため、現在の5〜8ミリ秒を1ミリ秒未満に改善することはできない。根本的にはインメモリキャッシュ層の追加が必要。
B
Amazon DynamoDB Accelerator (DAX) クラスターを DynamoDB テーブルの前段に配置し、アプリケーションのエンドポイントを DAX に変更する
✓ 正解
DAXはDynamoDB専用のインメモリキャッシュでマイクロ秒単位のレイテンシーを実現する。DynamoDB互換APIを持つためエンドポイント変更のみで導入でき、「アプリケーションコードの変更を最小限に抑える」という要件も同時に満たせる唯一の選択肢。
C
Amazon ElastiCache for Redis をキャッシュ層として追加し、アプリケーション側でキャッシュの読み書きロジックを実装する
ElastiCacheもインメモリキャッシュとして1ミリ秒未満のレイテンシーを実現できるが、アプリケーション側でキャッシュへの読み書きロジックを独自実装する必要があり、コード変更最小化の要件に反するため不適切。
D
DynamoDB Global Tables を有効化し、複数リージョンにデータをレプリケーションして読み取りを分散させる
Global TablesはマルチリージョンにデータをレプリケーションしてDR対策や地理的分散アクセスを実現する機能であり、単一リージョン内のレイテンシーを改善する効果はない。今回の1ミリ秒未満という応答時間要件への対策として不適切。

解説

DAX(DynamoDB Accelerator)はDynamoDB専用のインメモリキャッシュであり、マイクロ秒単位のレイテンシーを実現します。DynamoDB互換のAPIを持つため、アプリケーションコードの変更を最小限に抑えながら導入できます。 選択肢Aは、RCU増加はスループット向上には有効ですが、DynamoDBのベースレイテンシー特性自体は変わらず1ミリ秒未満のレイテンシーは達成できません。 選択肢Bは、DAXはDynamoDB互換APIを提供するためエンドポイント変更のみで導入でき、マイクロ秒レイテンシーとコード変更最小化の両要件を同時に満たします。 選択肢Cは、ElastiCache for Redisも有効ですが、アプリケーション側でキャッシュの読み書きロジックを独自実装する必要があり、コード変更最小化の要件に反します。 選択肢Dは、Global Tablesはマルチリージョンの可用性向上が目的であり、単一リージョン内のレイテンシー改善効果は限定的です。

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

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

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