Redis + Sentinel 작성

PUROMANGA·2025년 6월 11일

기술스택

목록 보기
18/22

git bash

🔻 1단계. EC2 접속

🔻 2단계. 작업 폴더 만들기

mkdir redis-master-setup
cd redis-master-setup

🔻 3단계. redis-master.conf 파일 작성

nano redis-master.conf

port 6379
requirepass 1234
bind 0.0.0.0
protected-mode yes

저장: Ctrl + O, 종료: Ctrl + X

🔻 4단계. docker-compose.yml 파일 작성

nano docker-compose.yml

version: '3'
services:
  redis-master:
    image: redis:7
    container_name: redis-master
    ports:
      - "6379:6379"
    volumes:
      - ./redis-master.conf:/usr/local/etc/redis/redis.conf
    command: redis-server /usr/local/etc/redis/redis.conf
좌측우측
./redis-master.confEC2 인스턴스의 현재 디렉토리에 있는 설정 파일
/usr/local/etc/redis/redis.confDocker 컨테이너 안에서 Redis가 기본으로 읽는 경로

즉, 로컬 파일을 컨테이너 내부 Redis 설정 파일로 덮어씌우는 것이야.

✅ 상태 확인

sudo docker ps

예외 명령어

ls : 조회
ls -a : 숨긴파일까지 다 조회

rm redis-master.conf : 특정파일 삭제

그 다음 redis-slave.conf 만들고

총 세서 홀수의 Sentinel 만들면 고가용성 redis 만들 수 있음

흐름

# Sentinel이 사용할 포트 번호 (중요! 서로 다르게 설정)
port 11001

# 감시할 Redis Master 정보 (이름, IP, 포트, 과반수 기준)
sentinel monitor mymaster 127.0.0.1 10000 2

Sentinel이 감시할 마스터 인스턴스 정보

mymaster는 마스터 이름 (내부 식별용 이름)

127.0.0.1 10000 → Redis Master의 IP와 포트

2 → 이 마스터가 다운되었다고 판단하기 위해 최소 2개의 Sentinel이 동의해야 함 (quorum)

sentinel auth-pass mymaster foobared
마스터 Redis에 접근하기 위한 비밀번호
Redis 설정에 requirepass foobared가 있어야 이게 작동함

sentinel down-after-milliseconds mymaster 30000
30초 동안 응답이 없으면 Master가 다운된 것으로 판단

sentinel failover-timeout mymaster 180000
failover(슬레이브를 새 마스터로 승격) 작업의 타임아웃 시간: 180초

sentinel parallel-syncs mymaster 1
새 마스터가 생긴 후, 몇 대의 슬레이브가 동시에 동기화할지

이 예시는 1대씩만 순차적으로 동기화함

0개의 댓글