PORTFOLIO/TECHNICAL DECISION-MAKING

[CodeChef - 기술적 의사 결정] Redis Sentinel 도입이 필요한 이유

jki09871 2025. 1. 6. 15:41

문제 상황

단일 Redis 인스턴스 사용 시 다음과 같은 문제가 발생할 위험이 있었습니다:

  1. Redis 장애 시 데이터 유실 위험
    • 단일 Redis 인스턴스가 장애를 겪으면 캐시 데이터가 모두 유실될 위험이 있었습니다.
    • 조회수나 포인트 랭킹 같은 실시간 데이터가 손실되면, 시스템 신뢰도가 크게 떨어질 가능성이 있었습니다.
  2. 고가용성 부족
    • 단일 Redis는 장애 복구 기능이 없어, 서비스 중단이 발생할 수 있었습니다.
    • 실시간 처리가 중요한 우리 프로젝트 특성상, Redis 장애 시에도 서비스가 안정적으로 유지되어야 했습니다.

도입 이유 및 해결 방안

Redis Sentinel은 Redis의 고가용성을 보장하며, 장애 발생 시에도 데이터 유실을 방지하고 서비스의 연속성을 유지할 수 있었습니다.

  1. 자동 장애 조치
    • Redis Sentinel은 장애 발생 시 자동으로 새로운 마스터를 지정하고 복구를 지원했습니다.
    • 이를 통해 Redis 인스턴스의 장애가 발생하더라도 서비스가 중단되지 않았습니다.
  2. 데이터 안정성 보장(유실 방지)
    • Sentinel을 통해 Redis 장애 시에도 복구가 가능하여, 게시물 조회수와 포인트 랭킹 같은 데이터의 안정성을 보장했습니다.
  3. 크지 않은 프로젝트에 적합한 고가용성 솔루션
    • 클러스터 방식은 설정과 운영 복잡도가 높아 프로젝트 규모에 비해 부담이 컸습니다.
    • Sentinel은 비교적 간단한 설정으로 고가용성을 제공해, 프로젝트의 규모와 요구사항에 적합한 선택이었습니다.