
백엔드
고성능 캐시 아키텍처 설계 - 로컬 캐시와 Redis로 대규모 증정 행사 관리 최적화
두줄요약
증정 행사 조회 트래픽 급증 문제를 해결하기 위해 RDS, ElastiCache, 로컬 캐시를 결합한 다중 레이어 캐시를 적용했습니다. 그 결과 TPS는 크게 증가하고 Redis 네트워크 송신량은 대폭 감소했습니다.
문제 상황
- 증정 행사 조회 트래픽 급증으로 RDS 직접 조회 시 응답 지연과 장애 가능성 증가
- ElastiCache 조회만으로도 진행 행사 수가 많을수록 송신 네트워크 바이트 증가
- 분산 환경에서 로컬 캐시만 쓰면 서버별 데이터 불일치 우려
해결 방법
- Amazon RDS의 행사 데이터를 Amazon ElastiCache에 버전 기반 List 캐시로 적재
- 최신 버전 정보를 기준으로 로컬 캐시와 ElastiCache를 함께 조회하는 다중 레이어 캐시 적용
- Spring Boot에서 Caffeine Cache로 로컬 캐시를 구성하고
@Cacheable키에 version 사용
성능/운영 포인트
- 캐시 변경 시 신규 버전 생성으로 최신 데이터만 조회하도록 설계
- 로컬 캐시 도입으로 ElastiCache 접근 횟수와 네트워크 전송량 감소
- 성능 테스트에서 TPS 증가와 Redis Network Bytes out 대폭 감소
