無限ノック › SAP 練習問題一覧 › 問題SAP 既存のソリューションの継続的改善
ある企業は、トラフィックの変動が激しいWebアプリケーションをAmazon EC2とAmazon RDS for MySQLを使用して運用しています。データベースは単一のAZに配置されています。最近のマーケティングキャンペーン中にアクセスが急増し、データベースへの読み取りリクエストが処理能力を超え、アプリケーションのレイテンシが大幅に悪化しました。アプリケーションコードの変更を最小限に抑えつつ、読み取りパフォーマンスと可用性を向上させるための最適なソリューションはどれですか。
A RDSインスタンスをマルチAZ配置に変更し、セカンダリインスタンスを読み取りクエリ専用のエンドポイントとしてアプリケーションから利用する
RDSのマルチAZ配置は高可用性(同期レプリケーションによるフェイルオーバー)を提供する機能です。セカンダリインスタンスはスタンバイ状態であり、読み取りトラフィックを処理することはできないため、読み取りパフォーマンスの向上には寄与しません。
B Amazon ElastiCache for Memcachedクラスターをデプロイし、データベースへのすべてのクエリ結果をキャッシュするようにアプリケーションのクエリロジックを書き換える
ElastiCacheの導入は読み取りパフォーマンスを大幅に向上させますが、キャッシュにデータが存在するかを確認し、なければDBにクエリしてキャッシュに保存するというロジックの完全な書き換えが必要となり、コード変更を最小化する要件に反します。
C RDS for MySQLのリードレプリカを作成し、アプリケーションの読み取りリクエストをリードレプリカのエンドポイントにルーティングするように設定を変更する
✓ 正解
リードレプリカを追加することで、プライマリDBから読み取り負荷をオフロードし、パフォーマンスを劇的に改善できます。接続先エンドポイントの追加設定のみで済むため、コードの変更を最小限に抑えるという要件に合致する最適な手法です。
D データベースをAmazon DynamoDBに移行し、DynamoDB Accelerator (DAX) を有効化してマイクロ秒レベルの読み取りパフォーマンスを実現する
リレーショナルデータベース(MySQL)からNoSQLデータベース(DynamoDB)への移行は、データモデリングの根本的な見直しとアプリケーションコードの大規模なリファクタリングを伴うため、「コードの変更を最小限に抑える」という要件に真っ向から反します。
解説 リレーショナルデータベースにおける「読み取りリクエスト(Read)の負荷によるパフォーマンス低下」を解決するための最も標準的で効果的な方法は、リードレプリカ(Read Replica)の追加です。Amazon RDSのリードレプリカを作成すると、非同期レプリケーションによってプライマリインスタンスのデータがコピーされ、読み取り専用のトラフィックをオフロードできます。アプリケーション側では、データベース接続先の設定(読み取り用のコネクションプール)をリードレプリカのエンドポイントに向けるだけの最小限の変更で済みます。また、リードレプリカを別のAZに配置することで、将来の障害復旧(プライマリへの昇格)に備えることができ、可用性の向上にも寄与します。
ドメイン別正答率・予想スコアでリアルタイムに実力把握
無限ノックでSAPを徹底対策。全問AI生成のオリジナル問題。
無料で演習を始める →