홍카나의 공부방

AWS RDS 설정 방법 + Troubleshooting 본문

Data Engineering

AWS RDS 설정 방법 + Troubleshooting

홍문관카페나무 2023. 5. 2. 13:20

목적

  • 팀 프로젝트에 사용할 데이터베이스 생성
    • 원격 DB로 AWS RDS 솔루션 사용
    • MySQL 기반 데이터베이스
    • 8.0.23 ver 사용 : RDS에서 지원하는 최소 지원 버전

 

Django와 AWS RDS 인스턴스 연결 방법

  1. mysqlclient 와 pymysql 설치
    • pymysql : 파이썬에서 구현된 mysql 드라이버
    • mysqlclient : 원격 mysql 서버 접속
    • Django project settings.py 에서 아래 코드 입력
    # {project_name}/setting.py
    
    ...
    
    import pymysql
    pymysql.install_as_MySQLdb()
    
    ...
    
  2. 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 클릭 후 배포한 패스워드 입력

 

발생한 트러블

  1. mysqlclient 라이브러리와 python 버전 호환 문제
    • 문제 상황 : conda install로 해당 라이브러리 설치 중 발생
    • 해당 버전에서만 설치 가능
    • 해결 방법 : pip 방법 설치로 해결 완료

 

2. 모든 configuration을 정말 알맞게 했는데 RDS 연결이 안돼요!

-> AWS VPC -> 보안그룹 -> 인바운드 설정에서 IP 접근을 허가했는지 다시 살펴보기.

-> RDS가 running 상태에 있는지 확인하기.

-> DB이름을 RDS 인스턴스 이름이 아닌, 데이터베이스 이름으로 설정했는지 확인하기 ( 아래 사진에서 db_name은 sys )

 

반응형