• 카테고리

    질문 & 답변
  • 세부 분야

    데이터베이스

  • 해결 여부

    해결됨

ec2 내 Redis 잘못된 host 연결

24.04.18 00:18 작성 24.04.18 12:05 수정 조회수 65

0

문제는 이렇습니다.

prodRedisUrl = redis://:password@ec2프라이빗ip:6379/0로 url을 보냅니다.

스크린샷 2024-04-18 03.54.59.png

그리고 ec2 내 redis bind를 ec2 프라이빗 Ip로 설정하고, 리스닝 하고 있는 상태입니다.

리스닝 상태.png

그러면 정상적이라면, 서버가 배포 됐을 때 prodRedisUrl로 redis와의 연결이 성공적으로 연결 됩니다.

ping pong.png

근데 어이없는 문제가 발생합니다
요청하지도 않은 localhost로 redis서버에 연결하려고 하는 것입니다.
잘못된 로컬 호스트 연결.png

그래서 시나리오를 세워서 반대로 테스트를 해봤습니다 !!!!

prodRedisUrl = redis://:password@127.0.0.1:6379/0로 하고, 일부러 로컬호스트를 보내 봤습니다. 물론 ec2 내 redis.conf의 bind를 수정 했습니다. bind 127.0.0.1

테스트 해봤더니 127.0.0.1로 접속은 완료 됐지만

이제는 반대로 ec2 프라이빗 Ip로 연결을 요청해서 실패하네요 ㅋㅋㅋㅋㅋ


도대체 요청하지도 않은 ec2에서 그리고 알지도 못하는 프라이빗 ip로 redis서버에 접속하려는걸까요??????
----------------------------------------

즉, 정리하자면 요청하지도 않은 host로 Redis서버에 접속한다 !! 입니다.

로컬에서 테스트 할 때는 아무런 문제 없이 잘 작동하더니만 ec2에 배포하고 연결하려고 하니까 이 말썽입니다... 도저히 이해가 되지도 않고 원인 파악도 힘드네요,,

 

=====

추가적으로 redisurl 로그도 정상적으로 출력되고, 그리고 문자열로도 넣어봤지만 똑같은 증상이 발생했습니다.

 

답변 1

답변을 작성해보세요.

0

안녕하세요. 레디스 접속에 어려움을 겪고 계시는군요. 말씀 주신 상황이라면 url 설정이 잘못되어 있는 것 같은데, 삼항 연산자 조건문을 다시 확인해보시면 좋을 것 같습니다.

김정동님의 프로필

김정동

질문자

2024.04.18

배포 환경에서 로그 찍으면 정상적으로 1개의 값만 잘 출력 됩니다....

레디스 문제라기보다는 사용하고 계신 라이브러리나 환경변수 쪽을 확인해보시면 좋을 것 같습니다. 도움 드리지 못해 죄송합니다.