DVA-C02トラブルシューティングと最適化MEDIUM単一選択

あるチームがElastiCache for Redisをセッションストアとして使ったWebアプリを運用している。キャッシュヒット率が低下していることをCloudWatchのCacheHitsとCacheMissesメトリクスで確認した。最も効率よくヒット率を改善する調査手順として最も適切なのはどれか。

  1. A. アプリケーションコードのキャッシュキー生成ロジックを完全に見直して再設計する
  2. B. TTLの設定値とキャッシュサイズ(maxmemory-policy)を確認し、TTLが短すぎるかメモリ不足でキーが早期退出(eviction)されていないか調査する
  3. C. ElastiCacheのノードタイプをより大きいものに変更してメモリを増やす
  4. D. ElastiCacheクラスターをマルチAZに変更してレプリカを追加することでキャッシュヒット率を上げる
解答と解説を見る

正解: B

ElastiCacheのキャッシュヒット率低下の主な原因はTTLが短すぎること(頻繁に有効期限切れ)またはメモリ不足によるキーの早期退出(eviction)であることが多い(選択肢B)。CloudWatchのEvictionsメトリクスが高い場合はメモリ不足によるevictionが原因。CurrConnectionsやNetworkBytesInで使用状況を確認し、maxmemory-policyがallkeys-lruなどに設定されている場合、アクセス頻度が低いキーから削除されてヒット率が下がる。調査→原因特定→対策(TTL延長またはノードサイズ増加)の順で進めるべき。選択肢Cはノードサイズ増加は対策の一つだが、まず原因を調査してから実施すべき。選択肢Dのマルチ化はレプリカは読み取り負荷分散であり、ヒット率(キャッシュに存在するかどうか)には影響しない。選択肢Aはキーロジックの問題である可能性はあるが、まずメトリクスで原因を特定してから着手すべきで、最初に取るべき手順ではない。

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