Redis 클러스터 환경에서 CLUSTERDOWN 오류 해결 방법

문제 상황

애플리케이션에서 Redis 클러스터를 사용 중인 환경에서 CLUSTERDOWN The cluster is down라는 오류가 주기적으로 발생합니다. 스택 트레이스는 다음과 같습니다.

org.springframework.data.redis.RedisSystemException: 실행 중 오류 발생; 원인: io.lettuce.core.RedisCommandExecutionException: CLUSTERDOWN The cluster is down
    at org.springframework.data.redis.connection.lettuce.LettuceExceptionConverter.convert(LettuceExceptionConverter.java:54)
    at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:224)
    at org.springframework.data.redis.core.AbstractOperations.execute(AbstractOperations.java:95)
    at org.springframework.data.redis.core.DefaultValueOperations.setIfAbsent(DefaultValueOperations.java:310)

이 오류는 클라이언트가 Redis 클러스터에 명령을 전달할 수 없음을 나타내며, 클러스터 상태가 비정상임을 의미합니다. 문제의 근본 원인과 해결 방안을 분석해보겠습니다.

환경 정보

소프트웨어 버전
Redis 5.x

원인 분석

서버 로그를 확인한 결과, 특정 슬레이브 노드가 마스터와 복제(replication) 과정에서 인증 실패를 반복하고 있었습니다. 관련 로그 항목은 아래와 같습니다.

207636:S 04 Mar 2021 21:31:19.986 * Connecting to MASTER test:6379
207636:S 04 Mar 2021 21:31:19.986 * MASTER <-> REPLICA sync started
207636:S 04 Mar 2021 21:31:19.986 * Master replied to PING, replication can continue...
207636:S 04 Mar 2021 21:31:19.987 # Unexpected reply to PSYNC from master: -NOAUTH Authentication required.
207636:S 04 Mar 2021 21:31:19.987 # MASTER aborted replication with an error: NOAUTH Authentication required.

핵심 메시지 -NOAUTH Authentication required는 마스터 노드에 접근할 때 인증 정보가 누락되었음을 나타냅니다. Redis 클러스터에서 슬레이브 노드가 마스터로부터 데이터를 동기화하려면, masterauth 설정을 통해 암호를 명시해야 합니다. 이 값이 누락되면 복제 연결이 실패하고, 클러스터 전체의 상태가 fail로 전환될 수 있습니다.

해결 방안

문제를 해결하기 위해 각 슬레이브 노드의 redis.conf 설정 파일에 다음 항목을 추가합니다.

masterauth your_redis_password

여기서 your_redis_password는 실제 Redis 인스턴스에 설정된 비밀번호로 대체되어야 합니다. 또한, 마스터 노드에도 아래 설정이 포함되어 있는지 확인합니다.

requirepass your_redis_password

설정 완료 후 모든 Redis 인스턴스를 재시작하여 구성이 적용되도록 합니다. 클러스터 노드 간의 복제 연결이 정상화되면, CLUSTERDOWN 상태는 자동으로 해제됩니다.

검증 결과

설정 반영 후 슬레이브 노드 로그에서 복제 성공 메시지가 출력되었으며, 애플리케이션 측에서도 더 이상 CLUSTERDOWN 오류가 발생하지 않았습니다. redis-cli --cluster check 명령어를 통해 클러스터 상태를 점검한 결과, 모든 노드가 정상(ok) 상태임을 확인했습니다.

요약

Redis 클러스터 운영 시, 보안 설정은 단일 노드뿐만 아니라 노드 간 통신에도 영향을 미칩니다. 특히 인증이 활성화된 환경에서는 슬레이브가 마스터에 접속할 수 있도록 masterauth 값을 반드시 설정해야 하며, 이는 안정적인 복제와 클러스터 가용성을 확보하는 데 핵심적입니다.

태그: Redis CLUSTERDOWN Redis 클러스터 masterauth requirepass

7월 28일 09:35에 게시됨