Q21 — AWS SAA-C03 第6章

第 21/65 問 | ← 第6章

Q386. ゲーム会社がスコアを表示するWebアプリケーションを運用しています。このアプリケーションは、Application Load Balancer の後ろで Amazon EC2 インスタンス上で動作し、データを Amazon RDS for MySQL データベースに保存しています。ユーザーが、データベースの読み取りパフォーマンスが原因で長時間の遅延や中断を経験し始めています。同社は、アプリケーションのアーキテクチャへの変更を最小限に抑えつつ、ユーザー体験を向上させたいと考えています。これらの要件を満たすために、ソリューションズアーキテクトは何を行うべきでしょうか?

正解: A. データベースの前に Amazon ElastiCache を使用する

解説

このシナリオにおいて、ユーザー体験を向上させつつアプリケーションアーキテクチャへの変更を最小限に抑えるには、データベースの前に Amazon ElastiCache を導入するのが最も適切です。 選択肢A:データベースの前に Amazon ElastiCache を使用する Amazon ElastiCache を活用することで、アプリケーションとデータベースの間にインメモリのキャッシュ層を導入できます。これにより、データベースへのクエリ数を大幅に削減し、読み取りパフォーマンスを顕著に向上させられます。ElastiCache は Redis や Memcached などの人気キャッシュエンジンをサポートする、AWS が管理するインメモリデータストアサービスです。頻繁にアクセスされるデータを ElastiCache にキャッシュすることで、以降の読み取り要求をキャッシュから直接応答できるようになり、データベースの負荷と応答時間を低減できます。 選択肢B:アプリケーションとデータベースの間に RDS Proxy を使用する RDS Proxy は、AWS が提供するフルマネージドなデータベースプロキシサービスであり、接続プーリングなどの機能を通じてスケーラビリティや可用性の向上に寄与します。ただし、RDS Proxy は主に接続管理を最適化するものであり、データベースの読み取りパフォーマンスそのものを直接改善するものではありません。 選択肢C:アプリケーションを EC2 インスタンスから AWS Lambda に移行する EC2 から AWS Lambda への移行は、サーバーレス化によるスケーラビリティやコスト効率の向上をもたらしますが、データベースの読み取りパフォーマンスという根本的なボトルネックを解決しません。アプリケーションの実行環境を変更しても、データベース側の問題が解消されないため、ユーザー体験の改善には不十分です。 選択肢D:データベースを Amazon RDS for MySQL から Amazon DynamoDB に移行する MySQL(リレーショナルデータベース)から DynamoDB(NoSQLデータベース)への移行は、アプリケーションアーキテクチャに大きな変更を伴います。スキーマ設計、クエリ構文、トランザクション制御など、アプリケーションコードの大幅な修正が必要になる可能性があり、また DynamoDB 固有の制約や特性(例:一貫性モデル、スケーリング方式)が既存のユースケースに適合しない場合もあります。 以上より、ユーザー体験の向上とアーキテクチャ変更の最小化という両方の要件を満たすには、データベースの前に Amazon ElastiCache を配置し、インメモリキャッシュ層を追加するのが最適な解決策です。これにより、既存のアプリケーションおよびデータベース構成をほぼそのまま維持したまま、読み取りパフォーマンスを大幅に向上させることができます。