mkdir redis-master-setup
cd redis-master-setup
nano redis-master.conf
port 6379
requirepass 1234
bind 0.0.0.0
protected-mode yes
저장: Ctrl + O, 종료: Ctrl + X
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.conf | EC2 인스턴스의 현재 디렉토리에 있는 설정 파일 |
/usr/local/etc/redis/redis.conf | Docker 컨테이너 안에서 Redis가 기본으로 읽는 경로 |
즉, 로컬 파일을 컨테이너 내부 Redis 설정 파일로 덮어씌우는 것이야.
sudo docker ps
ls : 조회
ls -a : 숨긴파일까지 다 조회
rm redis-master.conf : 특정파일 삭제
# 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대씩만 순차적으로 동기화함