Nam's

[Flask] Local 서버 AWS RDS 연결 에러: (2003, "Can't connect to MySQL server on 'db-name') 본문

개발/Back-end

[Flask] Local 서버 AWS RDS 연결 에러: (2003, "Can't connect to MySQL server on 'db-name')

namespace 2021. 5. 2. 01:19

분명 EC2 Server랑 Local Workbench에서는 RDS에 연결이 되는데,, 이상하게 Local Flask Server에서만 AWS RDS에 연결이 안됐었다.

sqlalchemy.exc.OperationalError: (MySQLdb._exceptions.OperationalError) (2003, "Can't connect to MySQL server on '

 

구글링 해봐도 보안그룹 문제라고 3306 port를 개방해야된다는 이야기 밖에 안한다...
하지만 3306 port는 RDS 만들자마자 제일 먼저 개방해줬었다.

해결 방법은 DB 인스턴스 수정 -> 추가 연결 구성 에서 찾을 수 있었다.
퍼블릭 엑세스 가능 "예"를 선택해주면 된다. (글 끝까지 읽기)

기본으로 "아니요"가 선택되어 있는데, 이 경우 "EC2 instances and devices outside the VPC can't connect"라고 한다.

그럼에도 EC2 Server와 Workbench에서 연결이 됐었던 이유는 EC2 instance가 RDS와 VPC를 사용하기 때문이다. 그리고 Workbench에서는 RDS만 연결하는게 아니라 EC2와 같이 연결하기 때문에 접속이 가능했다.

주의사항 - 변경사항이 반영되는데 2~3분이 걸린다.

이 문제 때문에 하루 정도 시간을 날렸는데, 사실 이미 퍼블릭 엑세스를 수정해봤었다. 그런데 RDS 모니터링 창에는 변경사항이 반영되었다고 되어있었고, 바로 Local Server를 확인했을 때 여전히 RDS에 연결할 수 없었다.

오늘 다시 확인해 보니 RDS 수정후 모니터링 창을 새로고침해줘야 RDS 인스턴스가 수정중이라고 표시된다.....;;;
2~3분 정도 기다리고 Local Server에서 다시 확인해보면 정상적으로 연결된다.

Comments