3. Redis 고가용성 아키텍처 및 운영 전략


수천 대의 마이크로서비스가 동시에 접근하는 대규모 분산 환경에서는 Redis 단일 노드의 장애가 전체 서비스의 중단으로 이어지지 않도록 하는 자동화된 장애 조치(Failover) 메커니즘이 필수적이다.

Redis의 고가용성(HA)을 달성하기 위한 방법을 알아보자.

3.1. Redis 데이터 복제 메커니즘


Redis는 **마스터-슬레이브(Master-Slave) 구조의 비동기 복제(Asynchronous Replication)**를 기본으로 채택하고 있다.

Redis의 복제는 마스터가 명령어를 처리한 후, 이를 슬레이브에 비동기적으로 전파하는 방식이다.

이러한 데이터 유실 가능성을 최소화하기 위해 min-replicas-to-write 옵션을 사용하여 최소 N개의 슬레이브가 정상적으로 연결되어 있을 때만 쓰기를 허용하도록 설정할 수 있다.

하지만 이는 가용성과 일관성 사이의 트레이드오프를 수반하며, 네트워크 분할 상황에서 전체 쓰기 거부로 이어질 수 있다.

3.2. Redis Sentinel


Redis Sentinel은 단순한 모니터링 도구가 아닌, Redis 인스턴스의 상태를 감시하고 장애 발생 시 사람의 개입 없이 자동으로 시스템을 복구하는 오케스트레이션 시스템이다.

Sentinel은 그 자체로 분산 시스템으로 설계되어 있으며, 단일 Sentinel의 오작동이 전체 시스템의 가용성을 해치지 않도록 설계되었다.