Redis 운영 방식 3가지 Standalone, Sentinel, Cluster의 장단점
2024. 11. 29. 23:46ㆍRedis
Redis 운영 방식에는 크게 Standalone, Sentinel, Cluster 3가지가 존재한다. 대부분의 토이프로젝트에서는 간단한 Standalone 방식을 이용해 배포해 캐싱 작업을 수행한다.
Redis Standalone 모드
- 단일 인스턴스로 단일 서버에서 Redis를 실행하며, 별도의 백업 노드 없이 동작한다.
- 별도의 설정과 구조 변경 없이 바로 사용이 가능해 쉽게 사용가능하다.
- 단일 인스턴스 서버이므로 장애가 발생시 데이터 손실 가능성이 생기며 별도의 복구 메커니즘이 존재하지 않습니다.
Redis Sentinel 모드
- Redis의 노드간의 마스터 - 슬레이브 구조를 가진다. 이를 통해 장애가 발생하면 슬레이브 중 하나를 새로운 마스터로 승격시켜 서비스를 유지 시킨다.
- 복잡한 클러스터 설정 없이도 기본적인 고가용성을 확보할 수 있다.
- 데이터 샤딩을 지원하지 않기 때문에 데이터 저장 용량이나 트래픽 처리량 확장에 한계가 존재
- Standalone에 비하면 복잡한 설정
Redis Cluster 모드
- 데이터 샤딩을 통해 데이터를 여러 마스터 노드에 나누어 저장해 수평적 확장을 지원한다.
- 다중 마스터 구조로 클러스터 내의 각 마스터 노드는 데이터를 저장하고 이를 복제하는 슬레이브 노드를 가질 수 있다.
- 자동 장애 복구가 존재하며 마스터 노드가 다운되면 클러스터가 슬레이브 노드 중 하나를 마스터로 승격 시켜 자동으로 복구한다.
- 해시 슬록을 이용해 각 마스터 노드에 균등하게 분배하기 위해 16384개의 해시 슬롯을 사용한다.
- Standalone과 Sentinel에 비하면 설정과 관리가 복잡하며 노드간 통신과 데이터 재분배를 고려해야 한다.
결론
특징 | Standalone | Sentinel | Cluster |
고가용성 | 없음 | 마스터-슬레이브, 자동 복구 | 다중 마스터, 자동 복구 |
확장성 | 제한적 | 제한적 | 수평적 확장 가능 |
데이터 샤딩 | 지원하지 않음 | 지원하지 않음 | 지원 |
자동 장애 복구 | 지원하지 않음 | 지원 | 지원 |
구조 복잡도 | 간단 | 중간 | 복잡 |
사용 사례 | 개발 환경, 소규모 | 고가용성이 필요한 중소규모 | 대규모 트래픽 및 고가용성 필요 |
- Standalone 모드는 단순한 캐시나 소규모 프로젝트, 테스트 환경에서 적합하며, 복잡성이 낮고 유지보수가 간편합니다.
- Sentinel 모드는 고가용성이 요구되지만 확장성 요구가 적은 경우에 적합합니다. 마스터-슬레이브 구조로 기본적인 고가용성을 제공하며, 자동 장애 복구가 가능하여 서비스 중단을 줄일 수 있습니다.
- Cluster 모드는 대규모 트래픽 처리와 데이터의 수평적 확장이 필요한 경우에 사용됩니다. 여러 마스터 노드와 슬레이브 노드를 통한 고가용성과 자동 장애 복구 기능을 제공하며, 확장성이 뛰어나 분산 환경에서의 서비스에 적합합니다.