Redis Cluster 설치 (master 3 + replica 3)
Redis난이도: 중급소요 시간: 45–60분Redis Cluster를 처음부터 구성합니다(Redis 7.2 / 8.2 또는 Valkey): 16384개 hash slot을 master 3개(또는 그 이상)에 나누고, 각 master에 다른 서버의 replica를 하나씩 둡니다. 서버당 인스턴스 1개(서버 6대) 또는 2개(서버 3대) 배치, 인스턴스별 systemd 서비스, 비밀번호, cluster 생성, 점검, failover 테스트를 단계별로 진행합니다. 완료하면 데이터를 master에 분산하고, 서버 하나를 잃으면 자동으로 failover하며, node를 추가해 확장할 수 있는 cluster를 갖추게 됩니다. 데이터가 서버 한 대에 들어가고 애플리케이션이 다중 키 명령, Lua, SELECT를 사용한다면 Sentinel 구성이 더 간단합니다. Node 추가, reshard, 장애 node 교체는 Redis 운영 가이드에, 백업과 보안 강화는 별도 가이드에 있습니다.
구성: 인스턴스 6개: 서버 6대 × 1 또는 서버 3대 × 2
시작하기 전에
- 모든 서버가 같은 운영체제 버전이고 최신 상태이며, 시계가 NTP(chrony)로 동기화되어 있습니다.
- RAM이 양식의 값과 같습니다. Swap은 작지만 설정되어 있습니다(fork 중 OOM 대비). 디스크에 RAM의 2배 이상 여유 공간이 있습니다(RDB/AOF 재작성용).
- 서버끼리 IP로 접근할 수 있습니다(Redis 구성에서는 IP를 사용).
- 서버 간에 …, ……, …, …… 포트가 열려 있고, 이 포트를 다른 서비스가 사용하지 않습니다.
- ……서버가 운영체제의 AppStream 저장소(또는 EPEL)…서버가 rpms.remirepo.net과 EPEL(dl.fedoraproject.org) 저장소………서버가 Ubuntu universe 저장소…서버가 packages.redis.io 저장소……에 접근할 수 있거나 사내 미러가 설정되어 있습니다.
- 서버에 다른 Redis/Valkey 설치가 없습니다(버전 충돌).
- root 또는 sudo 권한으로 로그인했고, 유지보수 시간이 승인되었습니다.
가이드 단계
- 운영체제 준비 (모든 서버) — Hostname: … · Hostname: … · 시스템 업데이트와 도구 · 커널 설정 (sysctl) · sysctl 설정 적용
- 설치 (모든 서버) — Remi 및 EPEL 저장소 추가 · packages.redis.io 저장소 추가 · … 소프트웨어 설치 · 배포판 기본 서비스 비활성화 · SELinux 포트 정의
- 인스턴스 구성 — systemd 서비스 템플릿 (…@.service) · cluster-….conf: … · cluster-….conf: … · cluster-….conf: … · 데이터 디렉터리와 비밀번호 · 인스턴스 시작 …
- Cluster 생성 — 모든 인스턴스 접근 확인 · Cluster 생성 (--cluster create) · Cluster 점검 (--cluster check) · Replica 배치 검증
- 검증과 failover 테스트 — 쓰기/읽기 테스트 · 계획된 failover (CLUSTER FAILOVER) · 애플리케이션 연결
- 설치 후 — 확장: node 추가와 reshard (참고) · 백업 · 모니터링