あるeコマース企業は、Amazon RDS for PostgreSQL(db.r6g.4xlarge、マルチAZ)上で商品カタログサービスを運用している。読み取りトラフィックの約90%は、人気上位500商品の詳細を取得する同一の参照系クエリで占められ、これらの商品データは1日に数回しか更新されない。ピーク時にプライマリの CPU 使用率が95%に達し読み取りレイテンシが悪化している。すでにリードレプリカを2台追加したが、レプリカの CPU も高止まりしている。
要件は次のとおりである。
(1)反復される同一クエリによる DB 負荷を大幅に削減する。
(2)アプリケーションの変更を最小化する。
(3)データ更新後の陳腐化を一定時間内に抑える。
最も適切な改善策はどれか。
A
ElastiCache for Redis を導入し、遅延読み込み(Lazy Loading)で商品詳細をキャッシュして TTL を設定し、データ更新時に該当キャッシュを無効化する
✓ 正解
上位500商品への同一クエリが大半を占め更新頻度が低いため、遅延読み込みのキャッシュが最適である。キャッシュヒットにより反復クエリが DB に到達せず CPU 負荷を大幅削減でき、TTL と更新時無効化で陳腐化も一定時間内に抑えられ全要件を満たす。
B
RDS Proxy を導入して接続プーリングを行い、データベース接続確立のオーバーヘッドを削減してプライマリ DB の CPU 負荷を低減する