훈훈훈
Amazon AWS :: EC2 인스턴스에 Django와 RDS 연동 본문
1. EC2 인스턴스에 mysqlclient 모듈 설치
Django에서 mysql을 연동하기 위해서는 mysqlcinent 모듈이 필요하다.
로컬환경에서는 pip 로 바로 설치가 가능하지만, EC2 인스턴스에서는 gcc 및 libmysqlclient-dev 설치가 선행되어야한다.
이 두개가 설치 되었다면, git에서 받은 파일에 첨부된 requirement.txt 파일에 있는 리스트들을 그대로 설치하거나, pip install mysqlclient를 진행해주면 된다.
sudo apt install gcc
sudo apt install libmysqlclient-dev
/*conda 가상환경에서 */
pip install -r requirement.txt
2. my_settings 생성 및 설정
보통 git에서는 my_settings 파일은 push하지 않기 때문에 EC2 인스턴스에서 다음과 같이 생성하거나 local에서 생성한 my_settings 파일을 그대로 복사하여 다음과 같이 DATABASES 부분만 수정한다.
DATABASES = {
'default' : {
'ENGINE': 'django.db.backends.mysql',
'NAME': [YOUR_RDS_MYSQL_DATABASE_SCHEME],
'USER': '[YOUR_RDS_HOST_USER_NAME],
'PASSWORD': [YOUR_RDS_HOST_PASSWORD],
'HOST': [YOUR_RDS_HOST],
'PORT': [DEFAULT_PORT_3306],
'OPTIONS': {
'init_command': "SET sql_mode='STRICT_TRANS_TABLES'",
'charset': 'utf8mb4',
'use_unicode': True,
},
}
}
SECRET_KEY = {
'secret':[Your_SECRET_KEY],
'algorithm':[YOUR_ALGORITHM]
}
3. RDS에 Database Sheme 생성
Django와 연동될 Scheme를 생성한다. create database만 진행해도 되지만 추후 이모지(Emoji)저장을 위해 utf8mb4로 설정하였다.
mysql> create database test character set utf8mb4 collate utf8mb4_general_ci;
Query OK, 1 row affected (0.00 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
| test |
+--------------------+
5 rows in set (0.01 sec)
4. MySQL DUMP 및 RDS로 이관
로컬에 저장된 MySQL Scheme 를 덤프 후, RDS에 있는 MySQL Server로 이관시킨다.
// Local에서 진행 mysql sheme dump*/
mysqldump -u root -p [스키마네임] > [파일명].sql
// RDS 서버로 덤프 파일 이관
mysql -h [END_POINT] -u root -p [스키마네임] < [파일명].sql
// RDS에 접속하여 정상적으로 이관되었는지 확인
mysql -h [END_POINT] -u root -p
최종적으로 EC2에서 Django runserver 실행 시 RDS에 있는 DB와 연동이 되는 것을 확인할 수 있다.
'인프라 > Amazon AWS' 카테고리의 다른 글
Amazon AWS :: EC2 인스턴스에서 Django 배포 (0) | 2020.03.07 |
---|---|
Amazon AWS :: Django 사용 시 RDS 보안 설정 (0) | 2020.03.07 |
Amazon AWS :: EC2 인스턴스에 Django 설치 (0) | 2020.03.07 |
Amazon AWS :: EC2 인스턴스 생성 과정 (0) | 2020.03.07 |
AWS 계정 만들기 (0) | 2019.10.13 |
Comments