Redis 원본과 읽기 전용 복제본을 연결하는 방법입니다. 단순 복제는 자동 장애 전환을 제공하는 Sentinel이나 Cluster와 다릅니다. 복제본이 있다고 과거 데이터 복구용 백업이 대체되는 것도 아닙니다.
복제 전용 계정
원본 서버의 관리 세션에서 복제용 ACL 계정을 만듭니다. 원노트의 allcommands 대신 복제 핸드셰이크에 필요한 명령을 제한한 예시입니다. 실제 사용 버전과 ACL 파일 저장 설정을 확인합니다.
ACL SETUSER replication on >CHANGE_ME_PASSWORD +psync +replconf +ping
ACL SAVE복제본 설정
복제본의 redis.conf에 원본 주소·포트·계정을 지정합니다. 아래 IP는 문서용 주소입니다. 실제 환경에서는 복제망 주소로 바꾸고 원본의 bind와 방화벽이 복제본 접속을 허용하는지 확인합니다.
replicaof 192.0.2.10 16379
masteruser replication
masterauth CHANGE_ME_PASSWORD
replica-read-only yes
repl-ping-replica-period 10
repl-timeout 60repl-ping-replica-period는 복제 연결의 주기적 PING 간격이며 데이터가 그 주기에만 복제된다는 뜻이 아닙니다. 초기 전체 동기화 시 복제본의 기존 데이터가 대체될 수 있으므로 대상 인스턴스를 확인합니다.
재기동과 상태 확인
설정 백업과 서비스 영향 확인 후 복제본을 재기동합니다. 인증 가능한 관리 계정으로 양쪽의 replication 정보를 조회합니다.
sudo systemctl restart redis
redis-cli --user lieper --askpass -p 16379 INFO replication원본의 connected_slaves, 복제본의 master_link_status, 동기화 진행 여부와 offset을 확인합니다. 시험 키를 원본에 기록한 뒤 복제본에서 조회해 검증합니다. 원본 장애 시 복제본을 자동으로 승격시키려면 별도의 장애 감지·선출 구성을 설계해야 합니다.