SAA-C03高パフォーマンスなアーキテクチャの設計MEDIUM単一選択

ある企業が、Amazon RDS for MySQL を使って頻繁に読み取られる商品カタログデータを管理している。読み取りリクエストが急増し、RDS への CPU 負荷が高くなっている。商品データはほぼリアルタイムで更新されるが、1〜2 秒の遅延は許容できる。最小限のコード変更で読み取りパフォーマンスを向上させる最も適切なソリューションはどれか。

  1. A. RDS の自動バックアップ機能を無効化してパフォーマンスを向上させる。
  2. B. RDS インスタンスタイプをより大きいものにスケールアップする。
  3. C. Amazon ElastiCache for Redis をデータベースの前段にキャッシュ層として導入し、アプリケーションはまず Redis から読み取り、キャッシュミスの場合のみ RDS から取得してキャッシュに書き込む。
  4. D. RDS のリードレプリカを追加し、アプリケーションの読み取りクエリをレプリカエンドポイントに向ける。
解答と解説を見る

正解: C

Amazon ElastiCache for Redis はインメモリキャッシュとして、マイクロ秒〜ミリ秒単位の低レイテンシーでデータを提供できる。商品カタログのような頻繁に読まれるデータをキャッシュに保存することで、大部分の読み取りリクエストが RDS に到達する前に Redis から応答される。データ更新時のキャッシュ無効化設定で 1〜2 秒の許容遅延も制御できる。選択肢BのRDS スケールアップはコスト増加が大きく、根本的なボトルネック(大量の読み取りリクエスト)は解決しない。また垂直スケーリングには上限がある。選択肢DのRDS リードレプリカも有効な手段だが、レプリカへの接続切り替えコードの修正が必要であり、インメモリキャッシュ(Redis)ほどのパフォーマンス改善(RDS はマイクロ秒ではなくミリ秒〜数十ミリ秒)が得られない。選択肢Aのバックアップ無効化は本番環境では危険でリスクが高く、パフォーマンス改善効果も微小である。

▸ この試験を本気で演習する(全150問・無料)