업데이터 및 업그레이드 : 서버의 패키지 리스트를 업데이트하고 기존 패키지를 최신 버전으로 업그레이드한다.
sudo apt update
sudo apt upgrade
redis 설치
sudo apt install redis-server
# redis 가 설치되는 곳은 cd /etc/redis 이 경로 아래로 설치된다.
redis 설정 변경 : supervised 지시어를 찾아 no 대신 systemd로 변경합니다. 이렇게 하면 systemd가 Redis 서비스를 더 잘 관리할 수 있습니다.
sudo nano /etc/redis/redis.conf
redis 서버 시작 : 변경사항을 적용하고 redis 서버를 시작한다.
sudo systemctl restart redis.service
redis 서버 상태 확인
sudo systemctl status redis
redis 테스트
redis-cli ping
redis 서버 확인 : 어떤 ip 어떤 포트에 redis 가 떠있나 확인가능
ps -ef | grep redis
Sentinel 은 1대만 설치해도 되지만, 장애가 발생하면 monitoring 과 failover 가 불가능 하기 때문에 3대로 설치한다.
Sentinel 은 홀수 개로 설치해야하는데, 이유는 장애여부와 failover tl sentinel service 가 다수결로 의사를 결정 하기 때문이다.
이제 기존에 만들어서 ec2 에 띄운 인스턴스의 이미지를 복사해서 똑같이 새로하나 만들어준다.



별도의 작업 없이 그대로 이름만 바꿔서 생성해준다.

생성된 이미지는 외쪽 이미지 메뉴에서 확인 할 수 있다.
이제 생성된 두번째 인스턴스로 들어가서 replica(부계정) 설정을 해준다.
redis-cli
REPLICAOF {처음만든 인스턴스 프라이빗 IPv4} {포트(6379)}
이제 로그를 한번 봐보면
/home/ubuntu# tail -f /var/log/redis/redis-server.log

started 만 뜨고 동작은 되지 않고 있다. 이유는 보안설정을 하지 않았기 때문에 두 redis가 통신이 안되고 있다. 6379포트를 개방해야한다.
이게 포트 설정을 해도 잘 안될때가 있다 그럴때는 master redis 의 redis.conf 파일의 bind 를 bind {private 포트} 127.0.0.1 으로 변경 후 꼭 재시작 해주자
이후 확인해보면 정상적으로 replica 설정이 되어있는걸 확인 할 수 있다.
이제 테스트로 key 값 하나를 넘겨보면 잘 넘어오는걸 확인 할 수 있다.
set byeon byeon # 마스터에서 set 으로 넘김
get byeon # replica 에서 받아오기
이제 프리티어에서 maxmemory 가 0으로 설정되어 있으므로 일단 500mb 로 설정한다.
# 그런데 이 방법은 서버를내렸다 올리면 0으로 다시 초기화 된다.
CONFIG SET maxmemory 500mb
/etc/redis vi redis.conf
maxmemory 부분이 주석처리되어있는데 바꿔 주도록 하지 500mb로
이제 mster, slave 레디스에 sentinel 을 설치한다
apt-get install redis-sentinel # 설치
ps -ef | grep sentinel # 확인
이제 센티넬은 홀수 즉 3대가 있어야 다수결로 판단하므로 ec2 한개를 다시 해서 여기도 sentinel을 설치를 해준다.
cd /ect/redis -> redis.conf # 파일의 bind 를 다시 맞춰준다 밥법은 위와 같다.
# 쭉 아래로 내려가면 이 설정이 있다 여기서 2는 다수결 결과이다.
sentinel monitor mymaster {master private 포트} 6379 2
위 설정을 ec2 서버 3대 전부다 해준다.
물론 보안설정도 다시 해줘야한다. 왜냐하면 sentinel 도 포트가 26379 포트이기 때문이다
제일 마지막에 설정해준 ec2에서 로그를 확인해본다
tail -f /var/log/redis/redis-sentinel.log
# 이때 master redis 를 내리면 slave로 redis가 바뀌는지 확인해본다.
# 만약 정상적으로 작동안하면 포트 및 설정 후 재시작을 안한거다.

이 로그가 뜨면 성공이다.
이렇게 한쪽 redis 에러가 발생하면 다른 slave redis가 master가 되어줄수있다.