[ElastiCache Redis] ElastiCache Host 연결 문제 (RedisConnectionFailureException)

프로젝트의 서버로 EC2를 사용하면서 기존에서 로컬에서 사용하던 redis를 AWS의 ElastiCache를 사용하는 방법으로 변경했다.

 

그런데 호스트의 주소를 잘못 적었는지 계속 위와 같은 연결 문제가 있었다.

ElastiCache Redis를 생성하면 다음과 같이 마스터 노드와 내구성을 위해 읽기 전용인 노드가 2개가 기본으로 생긴다.

 

처음에는 읽기전용인 마스터 노드의 엔드포인트를 호스트로 작성해줘야하는 줄 알고 "리더 엔트포인트"를 호스트로 작성했다가 연결오류가 발생했다.

이렇게 지정하니 Read Only ~ 에러가 발생하면서 읽기 전용 노드에 접근하려고 하고 있었다.

 

그래서 이번에는 노드 중 primary를 지정해서 호스트 엔드포인트를 작성했다.

이제는 ReadOnly는 발생하지 않지만 RedisConnectionFailureException와 RedisConnectionException이 발생하고 있었다.

 

해결 방법

ElastiCache Redis 클러스터는 기본 엔드포인트를 통해 액세스된다고 한다.

host를 기본 엔드포인트 주소로 지정해주면 이 문제는 해결된다.

spring.redis.host=ElastiCache 기본 엔드포인트
spring.redis.port=6379