home
SAA-C03

[database] ElastiCache

같은 질문을 DB에 매번 다시 묻지 않기. 자주 쓰는 데이터를 메모리에 얹어 응답을 확 당기는 캐싱.

DB 선택 큰 그림·캐시 3형제(DAX/ElastiCache/RDS Proxy) 비교는 database-overview.

One-Line Summary

Amazon ElastiCacheRedis OSS·Valkey·Memcached를 관리형으로 제공하는 인메모리 캐시다. 자주 조회되는 데이터를 메모리에 두어 DB 부하를 줄이고 지연을 마이크로초~밀리초로 낮춘다. 시험 핵심은 캐시로 DB 읽기 offload / 세션 스토어 / Redis vs Memcached 선택 / 캐싱 전략(lazy loading vs write-through) 이다.

뭔지 (What / Why)

같은 쿼리를 DB가 반복해서 처리하면 느리고 비싸다. 자주 읽는 결과를 메모리에 캐시해 두면 DB를 거치지 않고 즉시 응답한다. ElastiCache는 이 인메모리 계층을 관리형으로 준다(패치·복제·failover 대행).

앱 ─▶ (캐시 히트?) ─▶ ElastiCache(메모리) ─── 있으면 즉시 반환
        └─(미스)──▶ RDS/DynamoDB ─▶ 결과를 캐시에 저장 후 반환

"자주 조회되는 데이터/쿼리 결과를 빠르게, DB 부하 감소" = ElastiCache. 관계형 DB 자체의 읽기 확장은 Read Replica, DynamoDB 전용 캐시는 DAX.

엔진 선택 — Redis/Valkey vs Memcached (빈출)

Redis OSS / ValkeyMemcached
데이터 구조풍부(string·list·set·sorted set·hash·pub/sub)단순 key-value
고급 기능복제·Multi-AZ 자동 failover·백업/스냅샷·영속성·트랜잭션·pub/sub없음(순수 캐시)
확장클러스터 모드로 샤딩멀티스레드·수평 확장이 단순
적합세션·리더보드·pub/sub·HA 필요·복잡 캐시단순 캐시를 쉽게 스케일아웃

HA·영속성·복잡한 자료구조가 필요하면 Redis/Valkey, 단순 캐시를 멀티스레드로 쉽게 확장하려면 Memcached. 시험 정답은 대부분 Redis 계열(기능이 많아서).

캐싱 전략 (SAA 레벨)

전략방식특징
Lazy Loading (cache-aside)미스일 때만 DB 조회 후 캐시 적재실제 읽는 데이터만 캐시. 첫 접근은 느리고, 데이터가 오래될(stale) 수 있음
Write-Through쓸 때 캐시도 같이 갱신캐시가 항상 최신. 안 읽는 데이터까지 캐시(쓰기 부하)
TTL항목에 만료 시간staleness를 시간으로 제어(두 전략과 병행)

"오래된 값이 보일 수 있다" = Lazy Loading 특성. "항상 최신 캐시" = Write-Through. 보통 Lazy Loading + TTL 조합.

대표 사용 사례

사례이유
DB 읽기 offload반복 쿼리 결과 캐시 → RDS 부하·지연 감소
세션 스토어무상태 웹서버들이 세션을 공유(Redis)
리더보드·순위Redis sorted set으로 실시간 순위
속도 제한·카운터원자적 증감 연산
pub/sub 메시징Redis pub/sub

실무 활용 사례

  • 읽기 폭주 완화: 인기 상품/피드를 캐시해 DB 히트 감소.
  • 수평 확장 웹앱 세션: ALB 뒤 여러 EC2가 Redis에 세션 공유 → 특정 서버에 묶이지 않음(sticky session 대체).
  • 실시간 게임 순위: Redis sorted set.

Common Wrong Directions

오답 방향왜 부족한가
DynamoDB 캐시에 ElastiCacheDynamoDB 전용은 DAX
관계형 읽기 확장을 캐시로만근본 읽기 확장은 Read Replica, 캐시는 보완
HA·영속성 필요한데 Memcached복제·failover·백업은 Redis/Valkey
세션 공유를 sticky session으로만ElastiCache(Redis) 세션 스토어가 더 견고
"오래된 값" 문제를 무시Lazy Loading은 stale 가능 → TTL/Write-Through

Exam Triggers

문제에서 이런 표현이 나오면떠올릴 것
"cache frequently accessed data / reduce DB load"ElastiCache
"session store for stateless web servers"ElastiCache (Redis)
"leaderboard / real-time ranking"Redis sorted set
"pub/sub, replication, automatic failover"Redis/Valkey
"simple cache, multi-threaded, easy scale-out"Memcached
"microsecond reads for DynamoDB"DAX(ElastiCache 아님)

Memory Sentence

ElastiCache는 Redis/Valkey·Memcached 관리형 인메모리 캐시로, 반복 조회를 캐시해 DB 부하·지연을 줄인다. HA·영속성·자료구조(세션·리더보드·pub/sub)면 Redis/Valkey, 단순 캐시 스케일아웃이면 Memcached. 전략은 Lazy Loading(+TTL)·Write-Through. DynamoDB 전용 캐시는 DAX, 관계형 읽기 확장은 Read Replica.

References

댓글

아직 댓글이 없습니다.