카테고리 없음

Redis 복제 구성 및 설정 방법: 마스터-슬레이브 아키텍처 구현 가이드

idea9329 2024. 10. 10. 10:39
반응형

Redis의 복제(Replication) 구성은 마스터-슬레이브 아키텍처를 통해 이루어지며, 이를 통해 마스터 서버의 데이터를 복제하여 여러 슬레이브 서버로 동기화할 수 있습니다. 복제는 데이터 백업이나 부하 분산을 위해 자주 사용됩니다. Redis 복제는 읽기 전용 작업을 슬레이브 서버에서 처리할 수 있으며, 마스터 서버에서의 모든 쓰기 작업은 슬레이브 서버로 동기화됩니다.

Redis 복제 설정 방법

  1. Redis 설치 및 설정: Redis가 설치되어 있지 않다면 마스터 및 슬레이브 서버에 Redis를 설치합니다. 설치 후 설정 파일을 수정하여 복제를 구성합니다.
  2. 마스터 Redis 설정:
    • 마스터는 기본적으로 특별한 설정 없이 운영할 수 있으며, 쓰기 작업이 마스터에서만 이루어집니다. redis.conf에서 추가로 설정할 부분은 없습니다.
  3. 슬레이브 Redis 설정: 슬레이브는 마스터의 데이터를 복제하는 역할을 합니다. 슬레이브 설정은 redis.conf 파일에서 지정할 수 있습니다.
    bash
    코드 복사
    replicaof <master-ip> <master-port>
    예를 들어, 마스터 Redis의 IP가 192.168.0.10이고, 포트가 6379일 경우:이 설정을 통해 슬레이브 Redis는 마스터 Redis 서버와 연결되고, 마스터의 데이터를 자동으로 복제하게 됩니다.
  4. bash
    코드 복사
    replicaof 192.168.0.10 6379
  5. 슬레이브 Redis 서버의 설정 파일에서 아래 설정을 추가하거나 수정합니다.
  6. 재시작: 슬레이브 Redis 설정을 변경한 후 Redis를 재시작합니다.
  7. bash
    코드 복사
    sudo systemctl restart redis
  8. 동기화 확인: 슬레이브 서버가 제대로 복제되고 있는지 확인하려면 redis-cli를 사용해 슬레이브 서버에 접속한 후 다음 명령어를 실행합니다.이 명령어를 실행하면 현재 슬레이브 서버가 어떤 마스터 서버와 연결되어 있는지, 복제 상태가 어떤지 확인할 수 있습니다. 여기서 role:slave, master_host: <master-ip>, master_link_status: up 등이 표시되면 성공적으로 복제가 이루어지고 있는 상태입니다.
  9. bash
    코드 복사
    INFO replication

Redis 복제 흐름

  • 마스터(Master): 모든 쓰기 작업은 마스터 서버에서 처리되며, 마스터는 슬레이브 서버에 데이터를 동기화합니다.
  • 슬레이브(Slave): 슬레이브는 마스터 서버의 데이터를 복제하고, 읽기 전용 작업을 처리할 수 있습니다. 슬레이브는 마스터의 데이터를 실시간으로 동기화하지만, 쓰기 작업은 할 수 없습니다.

Redis 복제 주요 개념

  • 비동기 복제: Redis 복제는 기본적으로 비동기적으로 이루어집니다. 마스터 서버에서 데이터를 업데이트하면 해당 데이터가 슬레이브 서버로 전송되지만, 슬레이브 서버는 즉시 동기화되지 않을 수 있습니다.
  • 복제 지연: 네트워크 상태나 마스터 서버의 부하에 따라 슬레이브와 마스터 간에 약간의 지연이 발생할 수 있습니다. 슬레이브는 비동기적으로 데이터를 받기 때문에 최신 데이터가 항상 슬레이브에 있을 것이라고 보장되지 않습니다.
  • 읽기 전용 슬레이브: 슬레이브 서버는 기본적으로 읽기 전용입니다. 슬레이브에서 쓰기 작업을 시도하면 오류가 발생합니다.

Redis 복제 구성 후 추가 작업

  1. Sentinel 구성: 고가용성을 위해 Redis Sentinel을 사용하여 마스터 장애 시 슬레이브 서버를 자동으로 마스터로 승격할 수 있습니다. 이를 통해 장애 복구를 자동화할 수 있습니다.
  2. 보안 설정: 복제 구성 시 네트워크를 통해 마스터와 슬레이브 간 데이터가 전송되므로, 보안 설정이 필요할 수 있습니다. 예를 들어, Redis의 requirepass 옵션을 사용하여 비밀번호 인증을 설정하거나, 방화벽을 통해 외부 접근을 제한할 수 있습니다.

결론

Redis 복제는 간단하게 설정할 수 있으며, 마스터-슬레이브 아키텍처를 통해 데이터를 동기화할 수 있습니다. replicaof 설정을 통해 슬레이브가 마스터의 데이터를 실시간으로 복제하고, 슬레이브 서버에서 읽기 작업을 처리할 수 있습니다. 고가용성을 위해 Sentinel과 같은 추가적인 설정을 통해 장애 조치도 구성할 수 있습니다.

반응형