일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- High Availability
- 레디스
- 개발
- 센티넬
- 복제
- 고가용성
- gitlab
- DotNetOpenAuth
- NoSQL
- c#
- 기어스 오브 워
- DSM6
- haproxy
- Keepalived
- Cover Guru
- Gears of War
- XBOX360
- AirComic
- 커버구루
- replication
- ASP.NET
- .NET
- TeamCity
- redis
- iPod Touch
- 닷넷
- ipod
- sentinel
- 네아로
- mmbot
- Today
- Total
Once in a Lifetime
01. Redis - Master/Slave 설치 본문
Redis 의 복제 구성과 Sentinel 을 이용한 Failover. 고가용성을 위한 HaProxy 의 Keepalived 를 이용한 이중화에 대해서 포스팅 합니다.
서버의 구성은 위와 같이 진행합니다.
1. Redis 마스터 서버 (쓰기/읽기) - 통상 쓰기 전용으로 사용
2. Redis 슬레이브 서버 (읽기) - 읽기 전용
3. Redis 마스터들을 감시하여 마스터가 다운되었을 경우 FailOver (슬레이브를 마스터로 승격)
4. Redis 상단에 HaProxy 를 이용한 스위치 구성 (Keepalived 로 이중화)
실제 클라이언트는 스위치(HaProxy)를 통해 쓰기(5000번 포트) / 읽기(5001번 포트)에 접속하는 것으로 구성합니다.
설치 전 준비사항
-본 포스팅에서 운영체제는 CentOS 7 을 사용합니다.
net-tools
yum -y install net-tools
nano
yum -y install nano
wget
yum -y install wget
firewalld
yum -y install firewalld
Install EPEL Repo
wget -r --no-parent -A 'epel-release-*.rpm' http://dl.fedoraproject.org/pub/epel/7/x86_64/e/
rpm -Uvh dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-*.rpm
EPEL Repo 확인 (epel.repo / epel-testing.repo)
ls -l /etc/yum.repos.d/
필요한 데몬과 툴, 리파지터리를 설치했으면 본격적으로 Redis 서버를 설치해 보겠습니다.
Install Redis
yum -y install redis
전체적으로 업데이트를 한번 실행해 줍니다.
yum update
Redis 는 마스터/슬레이브의 구분(물리적인 패키지)이 없고, 설정파일만으로 구분하기 때문에, 위의 구성도와 같이 서버를 구성하기 위해 총 3대의 서버에 동일하게 Redis 서버를 설치해 줍니다. 각각의 서버별로 기본 포트인 6379 외 다른 포트를 바인딩 하기도 하지만, 본 포스팅에서는 3대의 서버 모두 기본 포트인 6379 를 바인딩 합니다.
방화벽 설정
Redis 기본 포트인 6379 번 포트를 오픈하여 외부에서 해당 포트로 접속이 가능하도록 설정합니다.
firewalld 실행 및 등록
systemctl start firewalld.service
systemctl enable firewalld.service
방화벽 public zone 에 추가
firewall-cmd --permanent -zone=public --add-port=6379/tcp
firewall-cmd --reload
설정 파일
Redis 서버의 설정 파일은 /etc/redis.conf 입니다.
nano /etc/redis.conf
공통 설정 부분 입니다.
- 원격 접속을 위해 로컬 아이피 바인딩을 주석 처리
#bind 127.0.0.1
- 마스터 서버의 FailOver 시 슬레이브를 마스터 서버로 승격시 사용할 서버 패스워드 설정
마스터/슬레이브 모두 동일하게 설정
masterauth mypassword
- 서버 패스워드 설정
requirepass mypassword
- 백업파일(rdb) 생성 주기 옵션 (save 초 변경키수)
save 900 1
save 300 10
save 60 1000
기본적인 Redis 서버 구성이 완료 되었습니다.
Redis 서버를 실행 및 등록하고 제대로 동작하는지 확인해 보겠습니다.
[root@localhost ~]# redis-cli
127.0.0.1:6379> auth mypassword
OK
127.0.0.1:6379> ping
PONG
제대로 설치된 것 같네요.
기타 트러블 슈팅의 기본은 로그 파일의 확인인 점 잊지마시고, 로그 파일의 경로는 아래와 같습니다.
/var/log/redis/redis.log
다음 포스팅은 설치한 마스터 서버 1대, 슬레이브 서버 2대를 이용하여 복제(Replication) 구성을 해보도록 하겠습니다.