Azure VM에서, redis 연결 하기

Lee Dong Uk·2023년 9월 23일
0

이번에 일하게된 회사에서는 Azure를 쓴다.

AWS 밖에 안써봐서 생소했지만, 서비스가 다 거기서 거기지 뭐....

프로젝트 구성을 위해, 간단하게 서버를 만들고, 해당 서버에 mysql, redis 를 연결해야했다.


db Connection Pool 구성

redis 구성

로컬에서 테스트할땐 HOST는 localhost, PORT는 각각 기본 포트인 3306, 6379로 사용했고, 연결 완료 후 테스트까지 잘 완료했다.


이후 배포환경에 azure mysql, redis에서 설정된 host와 port로 바꿔주고 실행을 시켰다

이런 에러가 발생했다.....

에러 발생지점도 나오지 않고 덜렁 저렇게 코드만...

구글링 결과 tcp 연결 에러로 나온다(타임 아웃과 유사한건가??)


예상 원인

  1. mysql 연결 에러.
    구글링 했을때 tcp 연결 실패 에러 케이스가 대부분 mysql이었다.
    로컬 mysql workbench 에서 ssh연결로 연결했을 때 정상적으로 접속이 되었었고. vm 상에서 mysql -h blahblah -P 3306 -p로 연결했을 떄도 정상적으로 접속이 가능했다.

  2. redis 연결 에러.(범인)
    `redis-cli -h blahblah -p 6379 명령어로 로컬 환경에서도 연결이 안됐었고, vm에서도 연결이 안됐었다.

azure cache for redis 서비스에서 확인해보니

이런 옵션이.......켜져있었다.....

https://learn.microsoft.com/ko-kr/azure/azure-cache-for-redis/cache-nodejs-get-started

azure 공식 문서에서 알아보니 redis 접속 시, password 옵션으로 access_key가 필요하다는걸 알았다.

access_key를 REDIS_PASSWORD라는 환경 변수에 할당해주고 vm에서 실행을 시켰다!!


동작하지 않는다.......
30분 가량 삽질하다가.... azure 공식 문서에서 답을 찾았다

프로토콜이.... redis가 아닌.... rediss로 되어야했다......... s......


개발 환경에 맞춰 실행할 수 있도록 REDIS_PROTOCOL이라는 환경 변수를 만들어주었고 실행시켰더니.. 정상 작동 된다...

결론 : 공식 문서를 잘 읽자.

0개의 댓글