본문 바로가기

리눅스

레디스 센티널(Redis Sentinel) 구성 방법

반응형

레디스 센티널(Redis Sentinel) 구성 방법

레디스(Redis)는 오픈 소스 인 메모리 데이터 스토어입니다. 레디스는 단일 노드에서 실행될 수도 있지만, 이러한 구성은 고 가용성 및 확장성에 대한 요구를 충족하지 못할 수 있습니다. 이를 해결하기 위해 레디스 센티널(Redis Sentinel)을 사용할 수 있습니다. 레디스 센티널은 레디스의 고 가용성 및 확장성을 제공하는 분산 시스템입니다. 이를 통해 레디스의 여러 노드를 모니터링하고, 장애가 발생했을 때 자동으로 재구성할 수 있습니다.

 

레디스 센티널 구성 방법은 다음과 같습니다.

1. 레디스 설치

레디스를 설치합니다. 여러 노드를 사용할 경우 각 노드에 레디스를 설치합니다.

2. 레디스 센티널 설치

레디스 센티널을 설치합니다. 여러 노드를 사용할 경우 각 노드에 레디스 센티널을 설치합니다.

3. 레디스 구성 파일 수정

레디스 구성 파일(redis.conf)을 수정합니다. 여러 노드를 사용할 경우 각 노드의 구성 파일을 수정합니다.

  • bind <노드 IP 주소>
  • port <레디스 포트>
  • daemonize yes
  • pidfile <pid 파일 경로>
  • logfile <로그 파일 경로>
  • dir <데이터 디렉터리 경로>
  • requirepass <레디스 암호>

4. 레디스 센티널 구성 파일 수정

레디스 센티널 구성 파일(sentinel.conf)을 수정합니다. 여러 노드를 사용할 경우 각 노드의 구성 파일을 수정합니다.

  • sentinel monitor <마스터 노드 이름> <마스터 노드 IP 주소> <마스터 노드 포트> <투표 수>
  • sentinel down-after-milliseconds <마스터 노드 이름> <장애 감지 시간>
  • sentinel failover-timeout <마스터 노드 이름> <재설정 시간>
728x90

 

5. 레디스 센티널 실행

레디스 센티널을 실행합니다. 여러 노드를 사용할 경우 각 노드에서 레디스 센티널을 실행합니다.

  • redis-sentinel <센티널 구성 파일 경로>

6. 각 레디스 인스턴스에서 Sentinel 실행

모든 Redis 인스턴스에서 Sentinel을 실행해야 합니다. 각각의 Sentinel은 마스터 및 슬레이브 Redis 서버 상태를 감시하고 Sentinel 구성 파일의 내용을 기반으로 마스터 선출 및 장애 조치를 수행합니다.

redis-server /path/to/sentinel.conf --sentinel

위 명령어를 통해 Sentinel 모드로 Redis 인스턴스를 실행할 수 있습니다. 이 명령어는 Sentinel 구성 파일 경로를 지정해야 합니다.

7. Sentinel 모니터링

각 Sentinel 인스턴스는 마스터 Redis 서버의 선출과 장애 조치를 위해 다른 Sentinel 인스턴스와 통신합니다. 이를 위해서는 각 Sentinel 인스턴스가 다른 Sentinel 인스턴스를 알고 있어야 합니다.

 

각 Sentinel 인스턴스를 구성 파일을 통해 다른 Sentinel 인스턴스에 대한 정보를 입력해줍니다. 예를 들어, sentinel.conf 파일에는 아래와 같이 다른 Sentinel 인스턴스 정보가 있을 수 있습니다.

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 resque 127.0.0.1 6379 2
sentinel down-after-milliseconds resque 10000
sentinel failover-timeout resque 180000
sentinel parallel-syncs resque 5

위 구성 파일에서는 mymaster와 resque 두 개의 Redis 인스턴스를 모니터링하고 있습니다. 이때, sentinel monitor 명령어를 통해 마스터 Redis 서버의 정보를 입력하며, down-after-milliseconds, failover-timeout, parallel-syncs 등의 속성을 설정할 수 있습니다.

8. 장애 조치 테스트

Redis Sentinel 구성이 완료되면 마스터 Redis 서버의 장애 조치 기능을 테스트해 볼 수 있습니다. 이를 위해 마스터 Redis 서버의 프로세스를 중지시켜 봅니다.

Redis Sentinel은 마스터 Redis 서버의 상태를 감시하다가 마스터 Redis 서버가 다운되면, 슬레이브 Redis 서버 중 하나를 새로운 마스터 Redis 서버로 선출합니다.

결론

이렇게 Redis Sentinel을 이용해 레디스 센티널 구성을 완료할 수 있습니다. Redis Sentinel을 이용하면 Redis 인스턴스를 더욱 안정적으로 운영할 수 있으며, Redis 서버의 고가용성을 보장할 수 있습니다.

 

728x90
반응형