Amazon ElastiCache
ElastiCache는 자주 읽는 데이터를 메모리에 두고 빠르게 반환하는 관리형 캐시 계층입니다. 애플리케이션이 원본 저장소 앞에서 반복 조회를 흡수하도록 만들어 지연과 부하를 줄입니다.
▶아키텍처 다이어그램
🔍 구조 다이어그램점선 애니메이션은 데이터 또는 요청의 흐름 방향을 나타냅니다
같은 상품 정보나 세션 데이터를 요청마다 원본 데이터베이스에서 다시 읽으면 응답이 느려지고 DB 부하가 먼저 치솟습니다. 읽기 패턴이 반복되는데도 매번 원본에 가면 트래픽이 늘수록 병목이 더 빨리 옵니다.
초기에는 애플리케이션이 프로세스 메모리나 직접 설치한 Redis로 캐시를 운영했지만, 확장과 장애 조치가 번거로웠습니다. 그래서 캐시도 데이터베이스처럼 관리형으로 다루는 ElastiCache가 필요해졌습니다.
ElastiCache는 Redis와 Memcached를 관리형으로 제공하고, 애플리케이션이 먼저 캐시를 조회한 뒤 없을 때만 원본 저장소를 조회하게 만듭니다. Redis는 캐시 외에도 큐와 메시지 브로커 성격으로 확장할 수 있고, 서버리스 옵션은 다중 AZ 중복 저장과 자동 확장을 붙여 캐시 용량 계획 부담을 줄여 줍니다.
ElastiCache와 DynamoDB는 둘 다 빠른 조회에 쓰이지만 역할이 다릅니다. ElastiCache는 원본 데이터 앞단의 캐시이고, DynamoDB는 그 자체가 영구 저장소가 되는 데이터베이스입니다. 원본 저장소 부하를 줄이고 응답 시간을 낮추는 게 목적이면 ElastiCache를 보고, 캐시가 아니라 본 저장소 자체를 설계하는 문제면 DynamoDB를 보면 됩니다.
세션 저장, 자주 조회되는 키, 랭킹, 저지연 읽기 최적화, 초고속 임시 상태 저장에 적합합니다. 원본 데이터베이스를 대체하기보다 보완하는 계층으로 봐야 합니다.