Q66 — AWS SAA-C03 第10章
第 66/100 問 | ← 第10章
Q666. ある企業が、そのモバイルゲームのメタデータの大部分を Amazon RDS DB インスタンスから読み込むアプリケーションを運用しています。ゲームの人気が高まるにつれ、開発者はメタデータの読み込み時間に関連するパフォーマンス低下を観測しました。パフォーマンス指標によると、単にデータベースをスケールアップしても問題は解決しません。ソリューションズアーキテクトは、スナップショット機能、レプリケーション機能、およびサブミリ秒レベルの応答時間に対応するすべての選択肢を検討する必要があります。これらの課題を解決するために、ソリューションズアーキテクトは何を推奨すべきでしょうか?
- A. データベースを Amazon Aurora へ移行し、Aurora Replicas を活用する
- B. データベースを Amazon DynamoDB へ移行し、グローバルテーブルを活用する
- C. データベースの前に Amazon ElastiCache for Redis レイヤーを追加する ✓
- D. データベースの前に Amazon ElastiCache for Memcached レイヤーを追加する
正解: C. データベースの前に Amazon ElastiCache for Redis レイヤーを追加する
解説
Amazon RDS DB インスタンスからメタデータを読み込むモバイルゲームにおいて、メタデータ読み込み時の遅延という課題を解決するには、スナップショット、レプリケーション、およびサブミリ秒応答時間という要件を満たすソリューションが必要です。この条件を最も適切に満たすのは、オプション C「データベースの前に Amazon ElastiCache for Redis レイヤーを追加する」です。理由は以下の通りです。オプション C:Amazon ElastiCache for Redis をデータベースの前に配置することで、パフォーマンスを大幅に向上させ、読み込み遅延を低減できます。Redis はインメモリデータストアであり、サブミリ秒レベルの応答時間を実現でき、高速なデータ取得が求められるユースケースに最適です。頻繁にアクセスされるメタデータを ElastiCache for Redis にキャッシュすることで、以降の読み取り要求をデータベースへのクエリを経ずにキャッシュから直接応答可能となり、データベース負荷を軽減し、全体的なパフォーマンスを向上させます。オプション A:Amazon Aurora への移行と Aurora Replicas の活用は、レプリケーションやスケーラビリティの向上には有効ですが、サブミリ秒応答時間という要件を確実に満たすとは限りません。Aurora は高性能なデータベースエンジンですが、ElastiCache for Redis のようなインメモリキャッシュと比べると応答時間の面で劣ります。オプション B:Amazon DynamoDB への移行とグローバルテーブルの活用は、スケーラビリティとレプリケーションを提供しますが、RDS からの移行コストや、サブミリ秒応答時間の保証といった点では不十分です。また、NoSQL の特性上、既存のアプリケーションとの互換性やクエリ設計の見直しが必要になる可能性があります。オプション D:Amazon ElastiCache for Memcached の導入もキャッシュ機能を提供しますが、Redis と比較して高度なデータ構造や永続化(スナップショット)機能が限定的であり、本要件(特にスナップショットとサブミリ秒応答時間の両立)には Redis の方が適しています。したがって、スローダウンの解消と、スナップショット、レプリケーション、サブミリ秒応答時間という要件を同時に満たす最も適切なソリューションは、データベースの前に Amazon ElastiCache for Redis レイヤーを追加すること(オプション C)です。これにより、頻繁にアクセスされるメタデータをキャッシュし、読み取り要求をキャッシュから直接処理することで、パフォーマンス向上と負荷低減を実現できます。