Computer Engineering/Server

EC2에 Springboot 배포시 RDS연결 불가 문제

말하는호구마 2021. 3. 28. 01:10

이전에는 잘 되던 배포가 갑자기 안되기 시작했다....

갑자기라는건 없지만... 나한테는 갑작스러운 문제였다.

15:47:09.707 ERROR [File:HikariPool.java] [Func:throwPoolInitializationException] [Line:593] - HikariPool-1 - Exception during pool initialization. com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.

오류를 살펴보니 MySQL connection문제임을 알 수 있다.

RDS의 MySQL을 연결해둔 상태였는데 갑자기 안됐다. 

 

해당 문제에 대해서는 여러가지 원인이 있겠지만 나같은 경우 EC2에 올라와있는 jar파일이 RDS로 접근할 수 없었던게 이유였다.

생각해보니 전에 RDS인바운드 보안 규칙을 팀원들의 ip로 한정지었던게 생각이 났다...!

 

같은 VPC를 사용중이라 당연히 될 줄 알았지만 크나큰 오해였다...!

 

EC2의 private IP를 RDS의 인바운드규칙 소스에 추가해주면 해결이 된다..!

여기서 중요한 점은 publicIP가 아닌 privateIP를 추가해줘야 한다는 것이다. 

같은 VPC를 사용하니 당연한 얘기겠지만 이를 간과하고 문제를 해결하려다가 시간낭비를 했다 😭

 

 

지금까지 보안이 크게 중요하다고 생각하지 못했어서 계속 모든 IP들을 열어놨었다.

새로운....삽질....