ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • redis centinel이란 무엇이며, 설정방법
    데이터베이스/redis 2024. 10. 1. 08:32
    728x90
    반응형

    Redis Sentinel은 Redis 클러스터의 고가용성을 보장하기 위해 사용하는 시스템입니다. Redis Sentinel은 Redis 인스턴스의 모니터링, 장애 감지, 자동 장애 조치(failover) 및 클러스터의 구성을 관리하는 역할을 합니다. 이를 통해 Redis 서버에 문제가 발생했을 때, Sentinel이 이를 감지하고 자동으로 마스터 Redis 인스턴스를 교체하여 서비스 중단을 최소화할 수 있습니다.

    Redis Sentinel의 주요 기능:

    1. 모니터링: Sentinel은 Redis 마스터와 슬레이브 인스턴스를 지속적으로 모니터링하여 인스턴스가 정상적으로 동작하는지 확인합니다.
    2. 장애 감지: 마스터가 응답하지 않을 경우, Sentinel은 이를 감지하고 해당 인스턴스를 장애 상태로 판단합니다.
    3. 자동 장애 조치 (Failover): Sentinel은 마스터가 다운되면 슬레이브 중 하나를 새로운 마스터로 승격시키고, 다른 슬레이브들은 새 마스터를 따르도록 재구성합니다.
    4. 구성 관리: Sentinel은 클라이언트에게 새로운 마스터 인스턴스의 위치를 알려주는 역할을 합니다.

    Redis Sentinel 구성 예제:

    1. 기본 Redis 구성 파일 (redis.conf)

    먼저, 기본 Redis 서버 설정 파일을 확인합니다. 예를 들어, redis-master.conf와 redis-slave.conf를 사용하여 마스터와 슬레이브 Redis 인스턴스를 설정합니다.

    redis-master.conf (마스터 설정):

    port 6379
    bind 0.0.0.0
    protected-mode no
    dir "/var/lib/redis"
    logfile "/var/log/redis/redis-master.log"
    dbfilename dump.rdb
    appendonly yes

     

     

    redis-slave.conf (슬레이브 설정):

     

    port 6380
    bind 0.0.0.0
    protected-mode no
    dir "/var/lib/redis"
    logfile "/var/log/redis/redis-slave.log"
    dbfilename dump.rdb
    appendonly yes
    slaveof 127.0.0.1 6379

     

    2. Redis Sentinel 설정 파일 (sentinel.conf)

    Sentinel 설정 파일은 Redis Sentinel이 Redis 마스터와 슬레이브 인스턴스를 모니터링하고 관리할 수 있도록 설정합니다.

     

    port 26379
    dir "/tmp"
    logfile "/var/log/redis/sentinel.log"
    sentinel monitor mymaster 127.0.0.1 6379 2
    sentinel down-after-milliseconds mymaster 5000
    sentinel failover-timeout mymaster 60000
    sentinel parallel-syncs mymaster 1

     

     

    • sentinel monitor mymaster 127.0.0.1 6379 2는 Sentinel이 127.0.0.1의 6379 포트에서 동작 중인 Redis 인스턴스를 모니터링하며, 이 인스턴스가 마스터임을 정의합니다. 마지막의 숫자 2는 이 마스터가 장애로 간주되기 위해 최소 몇 개의 Sentinel 인스턴스가 해당 상태를 확인해야 하는지를 나타냅니다.
    • sentinel down-after-milliseconds mymaster 5000은 마스터가 5초 동안 응답하지 않으면 다운된 것으로 간주합니다.
    • sentinel failover-timeout mymaster 60000은 장애 조치가 완료될 때까지 최대 60초를 대기합니다.

    3. Redis 및 Sentinel 실행

    각 구성 파일에 맞춰 Redis 인스턴스와 Sentinel을 실행합니다.

    • Redis 마스터 실행:
    redis-server redis-master.conf

     

    Redis 슬레이브 실행:

    redis-server redis-slave.conf

     

    Redis Sentinel 실행:

    redis-sentinel sentinel.conf

     

    4. Sentinel 동작 확인

    Redis Sentinel이 제대로 동작하면 마스터가 다운될 때 자동으로 슬레이브를 마스터로 승격시키고, 클라이언트가 이를 통해 장애 조치가 이루어진 것을 확인할 수 있습니다.

    이와 같은 설정을 통해 Redis Sentinel은 Redis 클러스터의 고가용성을 관리하며, 마스터 장애 시 자동으로 복구가 가능합니다.

    728x90
    반응형
Designed by Tistory.