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

あるSaaS企業の分析ダッシュボードは、Amazon RDS for PostgreSQLに対して同一の複雑な集計クエリを多数のユーザーが繰り返し実行しています。アクセス増加に伴い読み取り負荷が高まり、応答時間が悪化しています。同じクエリ結果を低レイテンシー(ミリ秒未満~数ミリ秒)で返しつつ、データベースへの負荷を大幅に削減したいと考えています。最も適切なソリューションはどれですか。

A
Amazon ElastiCache for Redis を導入し、クエリ結果をキャッシュしてアプリケーションから参照する
✓ 正解
ElastiCache for Redisはインメモリストアで、繰り返される集計クエリの結果をキャッシュし、ミリ秒未満で応答しつつDB負荷を大幅に削減できます。キャッシュ戦略として要件を最も的確に満たします。
B
Amazon DynamoDB Accelerator(DAX)を導入し、クエリ結果をキャッシュする
DynamoDB Accelerator(DAX)はDynamoDB専用のインメモリキャッシュで、RDS for PostgreSQLのクエリ結果をキャッシュする用途には使用できないため、この要件には対応できず不適切です。
C
Amazon RDS のリードレプリカを5台追加し、アプリケーションで読み取りクエリを分散する
リードレプリカ追加は読み取りを分散しますが、同一の重い集計クエリを毎回演算するため負荷削減効果はキャッシュに劣り、レプリカラグやコスト増も生じるため最適ではありません。
D
Amazon ElastiCache for Memcached を導入し、マルチAZの自動フェイルオーバーで結果をキャッシュする
ElastiCache for MemcachedはデータのレプリケーションやマルチAZ自動フェイルオーバーをサポートしておらず、選択肢に記載された冗長構成自体が実現できないため不適切です。

解説

Amazon ElastiCache for Redisは、インメモリのキーバリューストアで、頻繁に実行される集計クエリの結果をキャッシュすることで、ミリ秒未満のレイテンシーで応答しつつデータベースへの繰り返し負荷を大幅に削減できます。レプリケーションやマルチAZフェイルオーバーにも対応します。 選択肢のDynamoDB Accelerator(DAX)はDynamoDB専用のキャッシュで、RDS/PostgreSQLのクエリ結果はキャッシュできません。 選択肢のリードレプリカは負荷分散には有効ですが、同一クエリを毎回実行するため演算コストは残り、キャッシュほど負荷を削減できずレプリカラグも生じます。 選択肢のElastiCache for Memcachedはレプリケーションをサポートせず、記載のようなマルチAZ自動フェイルオーバー構成自体が実現できません。

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

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

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