본문 바로가기
IT/기타

AWS Redis에서 Valkey로 무중단 마이그레이션

by twofootdog 2026. 1. 5.
반응형

안녕하세요

지금까지 Redis 유료화 및 Redis vs Valkey에 대해 설명 드렸습니다

 

<이전 글>

 

오늘은 AWS Redis를 Valkey로 마이그레이션 하는 방법에 대해 공유 드리도록 하겠습니다.

반응형

 

 

1. 왜 지금 옮겨야 하나요? (40% 절감의 매직)

Redis에서 Valkey로 마이그레이션을 할 경우 비용 절감 및 성능은 놀라울 정도로 좋아집니다.

  • 인프라 비용: 월 $5,000 ➡️ $3,000 (40% 절감!)    
  • 성능: 응답 속도(Latency) 변화 없음, 처리량(Throughput) 증가.

AWS는 ElastiCache Serverless 사용 시 Valkey를 선택하면 33%, 노드 기반은 20% 더 저렴한 요금을 책정했습니다. 안 바꾸면 손해인 상황이죠.

 

 

 

2. 실전! 무중단 마이그레이션 4단계

가장 안전한 RIOT(Redis Input/Output Tool) 툴을 활용한 방식을 소개합니다. 서비스 중단 없이 데이터를 실시간으로 복제할 수 있습니다.    

Step 1. 신규 Valkey 클러스터 생성 (Target)

AWS 콘솔에서 Create Cluster를 누르고, 엔진으로 Valkey를 선택합니다.

  • 꿀팁: 인스턴스 타입은 Graviton (r7g 등) 계열을 선택하세요. Valkey와 궁합이 좋아 성능이 더 잘 나옵니다.    

Step 2. 데이터 실시간 동기화 (Sync)

기존 Redis(Source)에서 Valkey(Target)로 데이터를 쏘아줍니다. riot 를 설치하고 아래 명령어를 실행하세요.

 

1) 설치(MAC) : 

brew install redis/tap/riot
# 설치 확인
riot --version

 

2) 설치(Linux) : 

리눅스 서버에서는 직접 바이너리 파일을 다운로드하는 것이 가장 확실합니다. riot은 자바(Java) 기반이므로, Java 11 이상이 설치되어 있어야 합니다.

 

# 1. 최신 버전 다운로드 (버전 번호는 최신 릴리스 확인 필요)
wget https://github.com/redis/riot/releases/latest/download/riot-standalone-linux-x86_64.zip

# 2. 압축 해제
unzip riot-standalone-linux-x86_64.zip

# 3. 실행 권한 부여 및 실행 테스트
cd riot-standalone-linux-x86_64/bin
./riot --help

 

3) 동기화 기본 명령어 (Linux/Mac 공통):

# 기본 문법: riot -h <소스주소> -p <소스포트> replicate -h <타겟주소> -p <타겟포트> --mode <모드>

./riot -h my-old-redis.xxxx.cache.amazonaws.com -p 6379 \
       replicate \
       -h my-new-valkey.xxxx.cache.amazonaws.com -p 6379 \
       --mode live

옵션 :

  • -h: 호스트 주소 (Endpoint)
  • -p: 포트 번호 (보통 6379)
  • replicate: 복제 명령을 실행하겠다는 뜻
  • --mode live: (중요) 초기 데이터를 복제한 후에도, 실시간으로 들어오는 변경 사항까지 계속 동기화합니다. (CDC 방식)
  • (선택) --source-password <비번>: 기존 Redis에 비밀번호가 있다면 추가하세요.
  • (선택) --target-password <비번>: 신규 Valkey에 비밀번호가 있다면 추가하세요.

 

이 명령어가 실행되는 터미널 창을 끄지 마세요! 명령어가 돌아가는 동안, 기존 Redis에 들어오는 데이터는 자동으로 Valkey에도 쌓이게 됩니다. 두 DB가 '동기화(Sync)' 상태가 되는 것이죠

이러면 기존 데이터는 물론, 마이그레이션 도중에 들어오는 새로운 데이터까지 계속 동기화됩니다.

Step 3. 애플리케이션 연결 변경 (Switch)

  • 모니터링 툴을 보고 두 DB의 데이터 개수(Key Count)가 똑같은지 확인합니다.
  • 애플리케이션 배포 설정에서 DB 주소만 Valkey 엔드포인트로 싹 바꿔서 배포합니다. (Valkey는 Redis와 100% 호환되니 코드 수정은 필요 없습니다)  

Step 4. 기존 클러스터 종료 (Cost Cut)

  • 모든 트래픽이 Valkey로 넘어간 것을 확인했다면? 기존 Redis 클러스터를 삭제합니다.
  • 고생하셨습니다. 이제 다음 달 고지서부터 할인된 요금을 확인하실 수 있습니다. 

 

 

3. 주의사항 (이것만은 체크!)

  1. Azure 사용자: Azure는 Valkey를 공식 지원하지 않습니다. AKS(쿠버네티스)에 직접 설치하거나, Azure Managed Redis로 업그레이드해야 합니다.
  2. 호환성 체크: Redis 7.2 기반이므로 대부분 호환되지만, 아주 특수한 Redis Module(RedisGraph 등)을 쓰고 있다면 대체재를 확인해야 합니다.    

 

 

4. 마치며

여러분, 기술의 변화는 두렵기도 하지만 기회이기도 합니다. 남들이 "어떡하지?" 하고 걱정할 때, 발 빠르게 Valkey로 전환해서 비용을 아끼고 성능을 높인다면 그게 바로 경쟁력이지 않을까 생각합니다.

 

오늘 공유 드린 Valkey 마이그레이션에 대한 내용이 여러분의 업무에 도움이 되길 바랍니다. 감사합니다!


5. 참조 링크

 

 

 

반응형

댓글