Data Engineering
AWS RDS 설정 방법 + Troubleshooting
홍문관카페나무
2023. 5. 2. 13:20
목적
- 팀 프로젝트에 사용할 데이터베이스 생성
- 원격 DB로 AWS RDS 솔루션 사용
- MySQL 기반 데이터베이스
- 8.0.23 ver 사용 : RDS에서 지원하는 최소 지원 버전
Django와 AWS RDS 인스턴스 연결 방법
- mysqlclient 와 pymysql 설치
- pymysql : 파이썬에서 구현된 mysql 드라이버
- mysqlclient : 원격 mysql 서버 접속
- Django project settings.py 에서 아래 코드 입력
# {project_name}/setting.py ... import pymysql pymysql.install_as_MySQLdb() ...
- Django 프로젝트의 settings.py 에서 DATABASES 인자 설정
- 딕셔너리 형태로 DB 접속 인자 관리
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', # engine: mysql 'NAME' : 'sys', 'USER' : 'admin', # DB User 'PASSWORD' : DB_PASSWORD, 'HOST': 'goldsilverprice-db.c4ca5hhwyuky.ap-northeast-2.rds.amazonaws.com', 'PORT': '3306', # 데이터베이스 포트 'OPTIONS':{ 'init_command' : "SET sql_mode='STRICT_TRANS_TABLES'" } } }
Mysql Workbench로 외부 DB 연결 방법
- MySQL Connections 의 + 버튼 눌러 새로운 연결 생성
- HostName : 엔드포인트 주소
- Port : 3306 고정
- Username : admin
- Password : Store in Vault 클릭 후 배포한 패스워드 입력
발생한 트러블
- mysqlclient 라이브러리와 python 버전 호환 문제
- 문제 상황 : conda install로 해당 라이브러리 설치 중 발생
- 해당 버전에서만 설치 가능
- 해결 방법 : pip 방법 설치로 해결 완료
2. 모든 configuration을 정말 알맞게 했는데 RDS 연결이 안돼요!
-> AWS VPC -> 보안그룹 -> 인바운드 설정에서 IP 접근을 허가했는지 다시 살펴보기.
-> RDS가 running 상태에 있는지 확인하기.
-> DB이름을 RDS 인스턴스 이름이 아닌, 데이터베이스 이름으로 설정했는지 확인하기 ( 아래 사진에서 db_name은 sys )
반응형