기존에 로컬에서 작업할 때는 로컬에서 redis를 설치하여 localhost로 백엔드 프로젝트와 연결을 하고있었다

 

하지만 docker를 사용하면서 redis를 직접 설치하는 것이 아닌, 이미지를 불러오는 방식을 채택했는데 연결이 안되는 현상이 발생했다

현재 프론트엔드 이미지 + 백엔드 이미지 + redis 이미지 모두 localhost를 통해 연결을 시키고 있었고, 실제로 프론트엔드 <-> 백엔드는 연결이 잘되고 있었다

redis만 연결이 안되고 있었다

 

찾아보니 docker에서 컨테이너를 띄우면 각 컨테이너와 localhost는 독립적이게 된다고 한다

docker를 실행 시킨 후 ip를 확인해보니, 백엔드와 redis의 주소가 달랐다

서로 연결이 안되었던 것이다

왜 프론트랑 백엔드는 연결이 된거지?

해결 방법으로는 application.properties에 이 부분을 localhost가 아닌 이 방식으로 수정하는 것이다

spring.redis.host=host.docker.internal

 


ec2에 올리고 나서도 됐었는데, 그로부터 일주일 후.....

다시 안된다........

 

그래서 하나의 방법을 생각해 내었는데..

ec2로 올렸으면 ip가 할당되었으니 더이상 localhost가 아니라 ec2의 ip를 등록해보자! 였다

된다!!!!!

 

=> localhost대신 ec2 ip를 썼더니 해결이 되었다

 

(여담으로 프론트엔드와 백엔드 연결도 원래 localhost로 되었었는데, ec2 ip로 바꾸어주었다)

 

 

복사했습니다!