Redis 구성 방식 (Replication vs Sentinel vs Cluster)

choi·2025년 12월 30일

Redis 도입 시 가장 먼저 하는 고민은 "어떤 아키텍처로 구성할 것인가?"임. 서비스 규모, 가용성(HA), 데이터 분산 필요성에 따라 크게 세 가지 방식(Replication, Sentinel, Cluster)으로 나뉨.

각 방식의 특징과 장단점을 정리함.


1. Standalone (Replication) : 기본 복제 구성

가장 기본적인 형태. Master 노드 1개와 Replica(Slave) 노드 1개 이상으로 구성됨.

동작 원리

  • Master: 데이터 쓰기(Write)와 읽기(Read) 모두 수행.
  • Replica: Master 데이터를 비동기(Asynchronous)로 복제해 유지. 주로 읽기 전용(Read-Only)으로 설정해 Read 트래픽 분산 용도로 사용.

장점

  • 구성이 가장 간단함.
  • Replica를 늘려 Read 성능 확보 가능.

단점

  • SPOF (Single Point of Failure): Master 장애 시 쓰기 불가.
  • 수동 복구: 장애 시 관리자가 직접 Replica를 Master로 승격시켜야 함.
  • Scale-up 의존: 데이터 증가 시 장비 스펙 업(Scale-up) 외엔 방법 없음.

2. Redis Sentinel : 고가용성(HA) 확보

Replication의 '수동 복구' 한계를 해결하기 위한 구조. 별도의 Sentinel(감시자) 프로세스가 Redis를 모니터링함.

동작 원리

  1. Monitoring: Sentinel이 Master, Replica 상태 주기적 감시.
  2. Notification: 장애 감지 시 관리자에게 알림 발송.
  3. Automatic Failover: Master 다운 시, Sentinel 투표로 Replica 중 하나를 Master로 승격.
  4. Configuration Provider: 클라이언트는 Sentinel에 접속해 현재 Master 주소를 받아옴.

특징

  • 홀수 구성: 과반수 투표(Quorum) 위해 Sentinel은 최소 3개 이상 홀수로 구성 필요.
  • 데이터 샤딩 불가: 모든 데이터가 하나의 Master에 저장되므로 대용량 처리에 한계 존재.

3. Redis Cluster : 샤딩 + 고가용성

단일 서버 메모리 초과나 쓰기 트래픽 분산이 필요할 때 쓰는 수평 확장(Scale-out) 구조.

동작 원리 (Hash Slot)

  • Sharding: 전체 데이터를 16,384개 Hash Slot으로 분할.
  • 분산 저장: Key를 CRC16 해시 함수로 돌려 저장할 슬롯(노드) 결정.

    SLOT = CRC16(key) mod 16384

  • Failover: Master별로 Replica를 가지며, 장애 시 해당 Replica가 자동 승격 (Sentinel 없이 자체 수행).

장점

  • 무한한 확장성: 노드 추가로 용량과 처리량 증대 가능.
  • HA: 일부 노드 장애에도 전체 서비스 중단 없음.

단점

  • 설정과 관리가 복잡함.
  • Multi-key 연산 제한: 서로 다른 노드에 있는 Key 간 트랜잭션이나 MGET 사용이 어려움.

4. 비교

특징Standalone (Replication)SentinelCluster
목적단순 복제, 읽기 분산고가용성 (HA)확장성 (Sharding) + HA
데이터 분산불가불가가능 (노드별 분할)
장애 복구수동자동 (Sentinel 개입)자동 (자체 수행)
쓰기 성능Master 1대 한계Master 1대 한계노드 추가 시 증가
구현 난이도

5. 결론: 선택 가이드

  • 소규모 / 단순 캐시: Standalone (Replication)으로 충분함.
  • 다운타임 치명적 / 데이터 적음: Sentinel 도입해 자동 장애 복구 체계 구축.
  • 대규모 데이터 / 쓰기 트래픽 많음: Cluster로 데이터 분산 처리 필요.
profile
늦게나마 정신을 차리려고 하는 개발 뭐시기하는 사람

0개의 댓글