ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • AWS에서 Redis Master Slave 설정
    Etc 2024. 7. 15. 00:25

    우선, t2.micro유형의 EC2를 Ubuntu로 한대 띄운다.

    Master와 Slave 설정을 최소한으로 하기 위해서는,
    EC2서버를 2대 띄우고 각각 마스터와 슬레이브에 맞는 설정을 해주면 된다.

    참고로 네트워크 통신이 가능하게 끔 VPC 와 서브넷을 동일하게 설정해 주는 것을 잊지 말자.

    보안 그룹은 최소한으로 다음처럼 해주자.

    혹시 연결이 되지 않는 다면, 로그를 확인해 보자.

    로그는 다음처럼 입력해서 확인할 수 있다.

    $ tail -f /var/log/redis/redis-server.log

    다음처럼 오류가 나고 있는 것을 볼 수 있다.


    이건 redis.conf에 설정된 bind 를 한번 확인해 보자.

    $ vi /etc/redis/redis.conf

    처음에 다음 처럼 설정되어 있을 수 있다.

    bind 127.0.0.1 -::1
    이것은 로컬 네트워크 인터페이스에만 바인딩되도록 하여, 외부 네트워크로부터의 연결을 허용하지 않는다.

    허용하고자 하는 네트워크 아이피로 변경해 주면 된다.

    다음은 모든 네트워크 인터페이스에 바인딩되도록 설정하는 방법이다.

    bind 0.0.0.0

    그럼 slave설정을 해보자.

    redis-cli 로 접속한 뒤 replicaof 명령으로 설정할 수 있다.

    slaveof는 5.0 부터 사용을 권장하지 않음

    다음 명령을 사용해서 설정 가능하다

    $ replicaof <masterip> <masterport>

    또한 redis.conf에서 설정할 때는 아래 replicaof 를 찾아서 수정해주면 된다.

    참고로 vi 에서 파일명을 찾을때는 / 를 입력한뒤, 찾고자 하는 키워드를 검색해 주면 된다.

    그리고, 계속해서 동일한 단어에 대해서 찾을 때, n 키를 눌러주면 된다.

    redis.conf 파일 적용을 위해서는 다음 redis-server를 재시작 해주면 된다.

    redis-server를 docker가 아닌 직접 설치한 경우, systemctl restart redis-server 명령으로 재시작 한다.

    그리고, 다음과 같이

    $ redis-cli info 를 봤을 때 제대로 슬레이브 설정이 되어 있다면 다음을 확인할 수 있다.

    다음은 Slave 서버

    다음은 Master 서버

    제대로 설정되었다면 master 서버에서 set demo good 과 같이 키를 등록해 보면

    slave 서버에서 get demo 를 쳤을때 good 이 프린트 되는 것을 확인해 볼 수 있다.

    또한 추가로 비밀번호를 통해 접근하고 싶다면 redis.conf에 다음 설정을 해주면 된다.

    Master 서버 - Master 비밀번호 설정

    Slave 서버 - Master 비밀번호 설정

    이후에는 redis-cli 의 명령어 실행 시 비밀번호가 있어야 명령을 실행할 수 있다.

    redis maxmemory 설정 방법은 다음 2가지로 할 수 있다.

    $ vi /etc/redis/redis.conf

    $ redis-cli config set maxmemory 500mb

    설정 후 다음처럼 값을 확인해 볼 수 있다.

    댓글

Designed by Tistory.