Q34 — AWS SAA-C03 第5章
第 34/65 問 | ← 第5章
Q334. ある企業が、新しいビデオゲームをWebアプリケーションとして開発しました。このアプリケーションはVPC内に構築された3層アーキテクチャで、データベース層にはAmazon RDS for MySQLを使用しています。複数のプレイヤーがオンラインで同時に競い合います。ゲームの開発者は、ほぼリアルタイムでトップ10スコアボードを表示し、現在のスコアを保持したままゲームを一時停止および再開できる機能を提供したいと考えています。これらの要件を満たすために、ソリューションアーキテクトは何を行うべきでしょうか?
- A. スコアをキャッシュしてWebアプリケーションが表示できるように、Amazon ElastiCache for Memcached クラスターをセットアップする。
- B. スコアの計算およびキャッシュを行い、Webアプリケーションがスコアボードを表示できるように、Amazon ElastiCache for Redis クラスターをセットアップする。 ✓
- C. Webアプリケーションの前にAmazon CloudFrontディストリビューションを配置し、アプリケーション内のセクションでスコアボードをキャッシュする。
- D. Amazon RDS for MySQL に読み取り専用レプリカを作成し、スコアボードの計算クエリを実行するとともに、Webアプリケーションへの読み取りトラフィックを処理する。
正解: B. スコアの計算およびキャッシュを行い、Webアプリケーションがスコアボードを表示できるように、Amazon ElastiCache for Redis クラスターをセットアップする。
解説
このソリューションは、問題文で示された要件を満たします。Amazon ElastiCache for Redis は、完全マネージド型のインメモリデータストアであり、高性能アプリケーションの実装に使用できます。本ケースでは、ほぼリアルタイムでトップ10スコアボードのスコアを計算・キャッシュするために利用可能です。さらに、ElastiCache for Redis はデータの永続化をサポートしているため、現在のスコアを保持したままゲームを一時停止および再開する機能も実現できます。選択肢A(ElastiCache for Memcached の利用)は不適切です。Memcached はデータの永続化をサポートしないため、システムが停止するとすべてのキャッシュデータが失われ、スコアボードを再計算する必要があります。選択肢C(CloudFront ディストリビューションの利用)は、画像やCSSファイルなどの静的コンテンツのキャッシュに適しており、スコアボードのような動的コンテンツのキャッシュには向いていません。選択肢D(Amazon RDS for MySQL の読み取り専用レプリカの作成)は技術的には可能ですが、読み取り専用レプリカの運用管理に加え、Webアプリケーションへの読み取りトラフィックを効率的に提供するための追加のキャッシュ機構の実装が必要となるため、過剰な工数と複雑さを伴います。