카테고리 없음

EC2 3대를 사용한 Redis 클러스터 설정 가이드: 복제본을 통한 고가용성 확보 방법

idea9329 2024. 10. 15. 10:02
반응형

Redis 클러스터에서 --cluster-replicas 옵션은 각 마스터 노드에 몇 개의 복제본(슬레이브 노드)을 생성할 것인지 결정하는 설정입니다. 이 옵션의 값에 따라 클러스터의 가용성과 안정성이 달라지게 됩니다. 이를 더 자세히 설명하면 다음과 같습니다.

마스터 노드와 복제본(슬레이브) 노드

  • 마스터 노드: Redis 클러스터에서 데이터를 직접 저장하고 관리하는 주 노드입니다. 클러스터에서 데이터를 나누어 관리하는 역할을 합니다.
  • 복제본(슬레이브) 노드: 마스터 노드의 데이터를 복제하여 저장하는 노드입니다. 복제본이 있으면 마스터 노드가 장애가 발생했을 때, 해당 복제본이 대신 마스터 역할을 하게 됩니다. 이를 통해 클러스터의 고가용성이 보장됩니다.

--cluster-replicas 옵션

  • --cluster-replicas 0: 복제본을 사용하지 않겠다는 의미입니다. 각 마스터 노드는 복제본 없이 동작하며, 장애가 발생하면 해당 마스터 노드의 데이터를 잃을 수 있습니다. 이렇게 설정하면 성능은 빠를 수 있지만, 장애 복구가 어렵고 데이터 손실 위험이 있습니다.
  • --cluster-replicas 1: 각 마스터 노드마다 하나의 복제본을 생성하겠다는 의미입니다. 이렇게 하면 클러스터 내에서 데이터의 가용성이 높아집니다. 예를 들어, 클러스터를 구성하는 3개의 마스터 노드가 있을 때, 각 마스터 노드는 하나의 복제본을 가지며, 마스터가 장애가 발생할 경우 복제본이 그 역할을 이어받습니다.

예시

예를 들어, EC2 인스턴스 3대를 가지고 --cluster-replicas 1을 설정하면, 다음과 같은 구조로 클러스터가 구성됩니다:

  • EC2 1: 마스터 1, 복제본 1
  • EC2 2: 마스터 2, 복제본 2
  • EC2 3: 마스터 3, 복제본 3

이때 각 인스턴스는 하나의 마스터 역할을 하면서 동시에 다른 마스터 노드의 복제본 역할도 수행하게 됩니다. 예를 들어, EC2 1의 마스터 노드가 장애가 발생하면, EC2 2에 있는 복제본 1이 마스터 역할을 이어받아 서비스를 중단 없이 유지할 수 있습니다.

결론

--cluster-replicas 값에 따라 클러스터의 구조와 안정성이 결정됩니다.

  • 0으로 설정하면 복제본이 없고 성능이 조금 더 빠를 수 있지만, 데이터 손실 위험이 있습니다.
  • 1로 설정하면 각 마스터 노드에 복제본이 생기고, 장애가 발생해도 데이터 복구가 가능해 안정성이 높아집니다.

따라서, 실무에서는 보통 --cluster-replicas 1 이상으로 설정해 고가용성을 확보하는 것이 일반적입니다.

반응형