아래는 Google CoLab에서 AWS RDS MySQL DB에 접속하려고 할때 작성한 코드와 발생 에러 메세지입니다.
---------------------------------------------------------------------------
TimeoutError Traceback (most recent call last)
/usr/local/lib/python3.10/dist-packages/pymysql/connections.py in connect(self, sock)
612 try:
--> 613 sock = socket.create_connection(
614 (self.host, self.port), self.connect_timeout, **kwargs
44 frames
TimeoutError: timed out
During handling of the above exception, another exception occurred:
OperationalError Traceback (most recent call last)
OperationalError: (2003, "Can't connect to MySQL server on 'dev.cluster-czafliq9kcwp.ap-northeast-2.rds.amazonaws.com' (timed out)")
The above exception was the direct cause of the following exception:
OperationalError Traceback (most recent call last)
/usr/local/lib/python3.10/dist-packages/pymysql/connections.py in connect(self, sock)
662 if DEBUG:
663 print(exc.traceback)
--> 664 raise exc
665
666 # If e is neither DatabaseError or IOError, It's a bug.
OperationalError: (pymysql.err.OperationalError) (2003, "Can't connect to MySQL server on 'dev.cluster-czafliq9kcwp.ap-northeast-2.rds.amazonaws.com' (timed out)")
(Background on this error at: https://sqlalche.me/e/14/e3q8)
아무리 찾아봐도 연결이 안될 이유가 없었습니다.
먼저 AWS Sagemaker Jupyter Notebook에서 연결을 확인해보니 잘 되었습니다.
이로 확실한 것은 Sagemaker에서는 접속이되니 DB 문제는 아니라는 것,
그래서 가능한 원인은 두가지 중 하나 입니다.
1. 네트워크 문제 또는 2. 롤(권한)의 문제
1. 네크워크 문제는 Colab에서 IP를 확인하여 AWS VPC에서 Colab의 IP가 연결 오픈 되어있는지 확인하면 됩니다. 안되어있으면 추가해주어야 겠지요.
2. 롤문제는 접속시 AWS CLI를 통해 임시 권한을 받고 이를 통해 접속해 보면 확인 됩니다. 이역시 안되어있을 경우 IAM Role을 만들어서 해결 가능 합니다.
'AWS' 카테고리의 다른 글
AWS Partner Tech Grue Community (1) | 2024.04.19 |
---|---|
AWS Sagemaker Killed error message (2) | 2023.05.09 |
[비용절감] AWS EIP(탄력적IP) 삭제 안될때 삭제 방법 (0) | 2022.12.10 |
[초간단] AWS 서비스 모니터링 및 알림을 위한 Slack 연결 방법 (2) | 2022.11.27 |
AWS Certified Machine Learning Specialty (0) | 2022.11.22 |