Redis 운영 방식 3가지 Standalone, Sentinel, Cluster의 장단점

2024. 11. 29. 23:46Redis

Redis 운영 방식에는 크게 Standalone, Sentinel, Cluster 3가지가 존재한다. 대부분의 토이프로젝트에서는 간단한 Standalone 방식을 이용해 배포해 캐싱 작업을 수행한다.

 

Redis Standalone 모드 
  • 단일 인스턴스로 단일 서버에서 Redis를 실행하며, 별도의 백업 노드 없이 동작한다.
  • 별도의 설정과 구조 변경 없이 바로 사용이 가능해 쉽게 사용가능하다.
  • 단일 인스턴스 서버이므로 장애가 발생시 데이터 손실 가능성이 생기며 별도의 복구 메커니즘이 존재하지 않습니다.

Standalone 구조

 

Redis Sentinel 모드
  • Redis의 노드간의 마스터 - 슬레이브 구조를 가진다. 이를 통해 장애가 발생하면 슬레이브 중 하나를 새로운 마스터로 승격시켜 서비스를 유지 시킨다.
  • 복잡한 클러스터 설정 없이도 기본적인 고가용성을 확보할 수 있다.
  • 데이터 샤딩을 지원하지 않기 때문에 데이터 저장 용량이나 트래픽 처리량 확장에 한계가 존재
  • Standalone에 비하면 복잡한 설정

Master Slave 구조

Redis Cluster 모드
  • 데이터 샤딩을 통해 데이터를 여러 마스터 노드에 나누어 저장해 수평적 확장을 지원한다.
  • 다중 마스터 구조로 클러스터 내의 각 마스터 노드는 데이터를 저장하고 이를 복제하는 슬레이브 노드를 가질 수 있다.
  • 자동 장애 복구가 존재하며 마스터 노드가 다운되면 클러스터가 슬레이브 노드 중 하나를 마스터로 승격 시켜 자동으로 복구한다.
  • 해시 슬록을 이용해 각 마스터 노드에 균등하게 분배하기 위해 16384개의 해시 슬롯을 사용한다.
  • Standalone과 Sentinel에 비하면 설정과 관리가 복잡하며 노드간 통신과 데이터 재분배를 고려해야 한다.

 

Cluster 모드 구조

 

 

결론

 

특징 Standalone Sentinel Cluster
고가용성 없음 마스터-슬레이브, 자동 복구 다중 마스터, 자동 복구
확장성 제한적 제한적 수평적 확장 가능
데이터 샤딩 지원하지 않음 지원하지 않음 지원
자동 장애 복구 지원하지 않음 지원 지원
구조 복잡도 간단 중간 복잡
사용 사례 개발 환경, 소규모 고가용성이 필요한 중소규모 대규모 트래픽 및 고가용성 필요
  • Standalone 모드는 단순한 캐시나 소규모 프로젝트, 테스트 환경에서 적합하며, 복잡성이 낮고 유지보수가 간편합니다.
  • Sentinel 모드는 고가용성이 요구되지만 확장성 요구가 적은 경우에 적합합니다. 마스터-슬레이브 구조로 기본적인 고가용성을 제공하며, 자동 장애 복구가 가능하여 서비스 중단을 줄일 수 있습니다.
  • Cluster 모드는 대규모 트래픽 처리와 데이터의 수평적 확장이 필요한 경우에 사용됩니다. 여러 마스터 노드와 슬레이브 노드를 통한 고가용성과 자동 장애 복구 기능을 제공하며, 확장성이 뛰어나 분산 환경에서의 서비스에 적합합니다.