포스트

Redis Sentinel Replication

Sentinel Replication이 다루는 문제

Redis를 운영할 때 중요한 것은 단순한 캐시 성능만이 아니라, master 장애가 났을 때 얼마나 빨리 복구할 수 있는가다. Sentinel Replication은 이 지점을 위한 구조다.

기본 구성은 다음과 같다.

  • 1개의 master
  • 여러 개의 replica
  • 여러 개의 sentinel 프로세스

Sentinel은 master와 replica를 감시하고, master 장애 시 replica 중 하나를 새 master로 승격한다.

복제 구조

replica는 master의 데이터를 복제해 읽기 부하를 일부 분산하고, 장애 시 승격 후보 역할을 한다. 다만 비동기 복제이기 때문에, 장애 직전의 일부 쓰기가 replica에 완전히 반영되지 않았을 가능성은 항상 염두에 둬야 한다.

Sentinel의 역할

Sentinel은 단순 모니터링 도구가 아니다. 실제로는 다음 책임을 가진다.

  • master 상태 감시
  • 장애 판정
  • failover 조정
  • 새 master 정보 알림

애플리케이션은 Sentinel을 직접 조회하거나, Sentinel을 이해하는 클라이언트 라이브러리를 통해 현재 master 위치를 얻는다.

운영 시 주의점

과반수와 네트워크 분리

Sentinel은 여러 프로세스의 합의로 failover를 진행한다. 그래서 홀수 개 구성과 네트워크 분리 상황을 같이 고려해야 한다.

복제 지연

replica가 master를 충분히 따라오지 못하면 장애 시 데이터 손실 범위가 커질 수 있다. 복제 지연은 반드시 모니터링해야 한다.

replica 읽기의 일관성

replica 읽기는 최신성이 약해질 수 있다. 강한 최신성이 필요한 데이터라면 무조건 replica 읽기를 붙이는 방식은 위험할 수 있다.

정리

Redis Sentinel Replication은 고가용성을 위한 운영 구조다. 샤딩은 필요 없지만 master 장애 대응 자동화가 필요할 때 가장 먼저 검토할 수 있는 선택지다.

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.

댓글

아직 댓글이 없습니다