지난 포스팅에서 RDS를 구축한 데 이어, 이번에는 캐시 레이어를 구성하려고 한다.
기존 로컬 개발 환경에서는 Docker 컨테이너로 Redis를 띄워 사요했지만, AWS 인프라 환경으로 넘어오면서 관리형 서비스인 ElastiCache를 도입하기로 결정했다.
특히 이번 구성에서는 익숙한 Redis 대신 Valkey 엔진을 선택했다.
이 포스팅에서는 그 이유와 구체적인 설정 과정에 대해 정리해보려고 한다.
1. 왜 Docker에서 ElastiCache로 넘어가는가?
1) 데이터 지속성 문제
기존에는 도커로 Redis를 띄워서 사용했었다.
배포과정에서 컨테이너가 재생성 될때마다 캐시가 초기화 된다.
Redis가 초기화되면 메모리에 있던 정보들이 날아간다.
볼륨 마운트를 해도 되지만 설정이 까다롭다.
2) 리소스 경합 방지
WAS와 Redis를 한 EC2에서 사용하면서 CPU와 메모리를 나눠쓰게 되면 메모리가 부족할때 Redis 가 강제 종료 될 위험이 있다.
3) 확장 및 관리 용이성
현재는 비용문제로 가용영역 AZ를 2개 사용하지 않고 DB 단일 인스턴스만 사용하고 있다.
ElastiCache를 쓰게 되면 추후에 이중화를 하는 것도 옵션으로 쉽게 설정을 변경할 수 있다.
👉 요약하자면 도커로 Redis를 띄우는 것보다 ElastiCache를 사용하는 것이 관리적인 측면에서 더 편리하다는 것이다.
2. 엔진 선택 : Redis vs Valkey
도커 대신 ElastiCache로 넘어가며 엔진도 Redis에서 Valkey로 변경하기로 했다.
Redis는 원래 무료 오픈소스였는데 7.4버전부터 라이선스 정책을 변경하여 유료화 되었다.
AWS, 구글, 오라클 등이 연합해서 Redis 마지막 무료버전을 Fork해서 만든게 Valkey다.
Valkey는 Redis 7.2버전과 호환된다.
Redis OSS보다 Valkey가 20%정도 더 저렴하다.
물론 구글링을 할때 Redis가 검색하기 더 수월할 것이다.
구글 트렌드로 검색을 봤다.


구글 트렌드나 레퍼런스양은 아직 Redis가 압도적이긴 하지만, Valkey와 Redis가 호환이 가능하고 비용이 20% 더 저렴하기 때문에 레퍼런스가 부족하다 하더라도 Valkey를 써보려한다.
3. ElastiCache 생성 및 설정하기

ElastiCache 대시보드 진입
왼쪽 서브메뉴 > 리소스 > Valkey 캐시 > 캐시 생성 클릭
1) 설정

✔️배포 옵션
'노드 기반 캐시' 선택
노드 기반 캐시는 예산이 정해져 있고 트래픽 예측이 가능한 개인 프로젝트에 적합하다.
서버리스는 트래픽에 맞게 알아서 관리해주기 때문에 요금이 더 비싸다.
✔️ 생성 방법
'클러스터 캐시' 선택
서버 한대만 쓰더라도 클러스터 캐시를 선택하면 된다.
내 맘대로 하나하나 설정해서 캐시를 생성하는 설정이다.
✔️ 클러스터 모드
'비활성화됨' 선택
클러스터 모드를 활성화 한다는 것은 데이터를 쪼개서 저장한다는 것이다.
일단 서버 1대로 시작할 것이기 때문에 클러스터 모드를 비활성화 한다.
2) 클러스터 정보 및 위치

클러스터 정보는 나중에 알아보기 쉽게 '프로젝트명-valkey'로 지정했다.
위치는 기본값 그대로 AWS 클라우드를 선택한다.
다중 AZ , 자동 장애 조치는 체크박스를 해제한다.
다중 AZ 체크를 하면 최소 2대 이상의 서버를 사용해야한다.
RDS도 단일로 했으니 Valkey도 단일로 맞춰준다.
자동 장애 조치는 메인 서버에 장애가 발생했을 때, 보조 서버로 넘어가도록 하는 것인데 다중AZ를 사용하지 않으니 이것도 해제한다.
3) 캐시 설정

✔️ 엔진 버전
7.2, 8.0, 8.1, 8.2 가 있다.
7.2는 Redis 7.2와 100% 똑같은 버전이다.
8.0은 메모리 효율이 더 개선되었다고 한다. 물론 Redis 7.2와 호환도 가능하다.
그래서 8.0 버전을 선택했다.
※참고
Amazon Elasticache Valkey 8.0은 더 빠른 스케일링과 개선된 메모리 효율을 제공합니다 | Amazon Web Services
이 글은 AWS Database Blog에 게시된 Amazon ElastiCache version 8.0 for Valkey brings faster scaling and improved memory efficiency by Abhay Saxena and Rashim Gupta 을 한국어로 번역 및 편집하였습니다. 2024년 11월, Amazon ElastiCache
aws.amazon.com
✔️ 포트
Valkey의 기본 포트는 Redis의 기본값과 동일하게 6379다.
✔️ 노드 유형
현재는 낮은 사양도 소화 가능한 상태기 때문에 노드 유형은 cache.t4g.micro를 선택해주었다.
나중에 서비스가 커지게되면 캐시 데이터가 날아가도 상관없는 때에 노드 유형을 small이나 medium으로 변경해주면 된다.
✔️ 복제본 개수
0으로 설정
1로 설정하면 메인 노드 1개 + 복제 노드 1개로 총 2대가 생긴다 .
0으로 설정하면 메인노드 1개만 생긴다.
이것도 나중에 서비스가 커지면 그 때 이중화를 해도 된다.
4) 연결

✔️ VPC ID
프로젝트 용도로 만들어둔 VPC를 선택했다.
✔️서브넷 선택
서브넷은 자동으로 4개가 선택됐는데 private 서브넷 2개만 선택해야한다.
관리 버튼을 클릭해서 서브넷 관리를 띄운다.
서브넷 이름을 보면 private, public이라고 써있다.
public 서브넷은 체크해제하고 선택 버튼을 클릭한다.


가용 영역 배치는 기본 설정 없음으로 그대로 두고 다음 버튼을 누른다.
5) 고급설정 - 보안

저장 중 암호화부터 전송 중 암호화 까지 기본값 그대로 체크상태를 유지한다.
✔️ 액세스 제어
사용자 그룹 액세스 제어 목록 선택
✔️ 사용자 그룹
'사용자 그룹 생성'을 클릭한다. 그럼 사용자 그룹을 생성하는 창이 새로 뜬다.
'사용자 생성' 클릭

기억하기 쉬운 사용자ID와 암호를 입력한다.
꼭 메모해두기!
액세스 문자열은 사용자에 대한 액세스 제어 권한을 설정하는 것인데
on ~* +@all
을 입력하면 모든 권한을 준다는 의미다.

방금 만든 사용자를 사용자 그룹에 추가한다.
이제 다시 ElastiCache 캐시 생성 페이지로 돌아간다.
6) 고급설정 - 백업, 유지관리

자동 백업을 비활성화 해준다.
ElastiCache가 날아가면 DB에서 다시 조회하면 된다.
아까 서버 사양을 micro로 설정했기 때문에 노드 용량이 0.5GB로 작다.
나중에 채팅 기능을 개발하고 나면 그때 자동 백업을 사용하고 서버 사양을 올려줄 계획이다.
다음 클릭 > 검토하면 끝!
'Cloud' 카테고리의 다른 글
| [AWS] EC2로 NAT Gateway 만들어 비용 절감하기 (0) | 2026.01.14 |
|---|---|
| [AWS] RDS & ElastiCache 데이터 저장소 만들기 - 2편 (0) | 2025.12.29 |
| [AWS] RDS & ElastiCache 데이터 저장소 만들기 - 1편 (0) | 2025.12.29 |
| [AWS] VPC 네트워크 생성 실습 - 가상의 데이터센터 만들기 (0) | 2025.12.26 |
| 네이버 클라우드 플랫폼(NCP) (1) 서버 생성하기 - CI/CD 파이프라인 (0) | 2025.08.18 |