아래 포스팅에서 이어지는 글입니다.
https://jjung0326.tistory.com/85
RDS 란?
AWS RDS는 서버에 직접 데이터베이스를 설치하고 관리하는 대신 AWS에서 관리해주는 관계형 데이터베이스이다.
인스턴스가 위치할 AZ(Availability Zone), Autoscaling 여부, read replica 생성, backup 생성, 버전 관리 등 번거로운 작업들을 AWS에서 모두 관리해주기 때문에 개발자는 DB 그 자체에만 집중할 수 있다.
그렇다면 AWS RDS 서비스로 개발환경의 DB를 migrate 해보자.
RDS Subnet group 생성
AWS RDS서비스를 이용하기 위해서는 DB subnet group을 생성해야한다.
DB subnet group은 두 개 이상의 AZ에 생성된 private subnet을 선택한다.
이때 RDS의 Subnet Group과 VPC의 Subnet Group의 차이는 뭘까?
VPC Subnet Group VS. RDS Subnet Group
VPC의 subnet group은 AZ(가용영역)마다의 논리적인 네트워크 섹션을 나누어준다. 이렇게 서브넷 그룹을 정의함으로써 그룹 내에서 리소스를 관리하고 보안 및 라우팅 설정을 구성하도록 한다.
RDS의 subnet group은 RDS 인스턴스가 생성될 때 해당 인스턴스가 속할 AZ(가용영역)을 선택하는 기준이다. RDS subnet group에 따라 마스터 RDS 인스턴스와 복제본을 서로 다른 AZ에 배치하는 등 가용성을 향상시키는데 사용된다.
VPC에서 설정해둔 DB용 private subnet을 묶어 RDS subnet으로 생성해준다.
RDS 생성
RDS 인스턴스는 다음과 같은 스펙으로 생성해주었다.
DB Engine: MySQL
DB 사이즈: t2.micro DB (free-tier을 사용하였다)
이름: database-2
master 이름: admin
password: 설정할 비밀번호
subnet group: 위에서 생성한 subnet group
Django settings.py 설정
DB를 RDS와 연결하여 migrate해주기 위해 Django의 settings.py의 설정을 일부 변경해주었다.
- ENGINE: 사용 할 DB 엔진
- HOST: AWS RDS를 생성하면 제공되는 엔드포인트 항목
- PORT: 포트 넘버
- NAME: DB이름
- USER: 사용자 이름
- PASSWORD: DB 설정 비밀번호
- OPTIONS: NULL값이 들어오는 경우, 에러 처리하도록 추가해주었다.
runserver 명령어로 DB 연결이 제대로 되는지 확인한다.
DB 마이그레이션
makemigration 해둔 마이그레이션 정보를 연결한 DB(RDS)로 migrate 해준다.
python manage.py migrate
migrate가 완료된 후 SQLelectron으로 DB를 확인해보면 migration이 성공적으로 된 것을 확인할 수 있다!
'AWS' 카테고리의 다른 글
[AWS] 서버리스로 서버없이 간단한 웹 애플리케이션 만들기 (0) | 2023.06.26 |
---|---|
[AWS] 3-Tier-Architecture 구축 #4 - Bastion Host와 WEB 계층 (0) | 2023.06.15 |
[AWS] 3-Tier-Architecture 구축 #3 - NAT Gateway 대신 NAT Instance를 사용해 비용 절약하기 (0) | 2023.06.15 |
[AWS] 3-Tier-Architecture 구축 #2 - VPC (0) | 2023.06.14 |
[AWS] 3-Tier-Architecture 구축 #1 - 설계 (0) | 2023.06.14 |