프로젝트하는중 배포를 하기위해 RDS를 만들어야했다.
아마존 RDS(Amazon Relational Database Service)는 클라우드에서 간편하게 데이터베이스를 설치, 운영 및 확장할 수 있는 관리형 서비스 모음이다.
서비스를 배포할 때 관계형데이터 베이스를 배포 서버 내부에 두는 것이 아닌, 클라우드 형태로 만들어 관리를 할 수 있다.
만들어보자.
우선 RDS 를 만들기 위해 RDS를 만들 리전을 선택했다. 나는 Asia Pacific(서울) 리전에 만들 것이다.
데이터베이스 생성 버튼을 누르면 다음과 같은 페이지가 나온다.
기존에 사용하기로 정했던 데이터베이스를 사용해야했기 때문에, mysql 를 골랐고 버전을 선택해주었다.
나는 8.0.31 버전을 선택했다.
이후 프리티어로 RDS를 생성하기로 했다.
추가적으로 추가 구성
탭에서는 데이터베이스의 옵션을 미리 세팅할 수 있다.
나는 데이터베이스 이름을 미리 지정해주는게 간편하다고 생각했기 때문에 초기 데이터베이스 이름을 지정해주었다.
그외에는 기본 설정을 따랐다.
설정이 끝났다면
데이터 베이스 생성 버튼을 누르면 생성이 된다. 시간이 조금 (5분 이상)걸린다.
이제 세부적인 세팅을 더 해보자.
파라미터 그룹은 RDS의 옵션을 설정하기 위해 AWS 에서 제공하는 기능이다. 파라미터 그룹을 생성하면 그룹 DB 버전에 맞는 프로퍼티 값들을 제공한다.
내게 우선 필요했던 DB 설정은 DB의 시간 관련 설정(Time zone) 과 인코딩 관련설정(character set)이다.
프로젝트 시 이모지 값들도 DB에 저장하기로 했기 때문에 utf8mb4형식으로 저장을 할 수 있도록 세팅을 해줘야 했다.
Amazon RDS - 파라미터 그룹 - 파라미터 그룹 생성
을하면 다음과 같은 창이 나온다.
적용될 DB 버전에 맞는 파라미터 그룹 패밀리를 지정하고, 그룹 이름과 설명을 적어준다.
여기서는 인코딩과 타임존 설정만 할 것이기 때문에 위와 같이 적었다.
파라미터 생성을 완료하면 다음과 같이 설정 할 수 있는 창이 나온다.
타임존 설정을 먼저하자.
파라미터에 time_zone 을 검색하고, 값에 Aisa/Seoul 을 넣어주고 변경 사항을 저장하자.
char이라고 검색을하면
character_set_client, character_set_connection, character_set_database, character_set_filesystem, character_set_results, character_set_server 이 나온다. 모든 설정을 utf8mb4로 바꾸자.
이제 기본적인 설정은 마쳤다.
만들어둔 RDS에 방금 만든 파라미터 그룹을 적용해보자.
RDS의 세부 정보에 수정
을 누르자
추가 구성 탭에서 만들어둔 DB 파라미터 그룹을 적용하자.
즉시 적용을 선택하고 설정을 마치자.
EC2 → 보안 그룹 → 보안 그룹 생성
인바운드 규칙은 연결하려는 EC2 에서 사용하는 보안 그룹을 지정하면 된다.
ec2 보안그룹 확인
확인한 보안 그룹에 해당하는 규칙 생성
RDS → 데이터베이스 → RDS 선택 → [수정]
연결
탭에서 보안 그룹 변경
수정 내역 즉시 적용
적용이 완료되었다면 이제 ec2에서 RDS 를 사용 할 수 있다.
확인 해보자.
우선 ec2에 ssh 로 접속하자.
이후 mysql 관련 명령어를 사용하기 위해서 mysql을 설치한다.
sudo apt install mysql-server
설치 이후 접속을 해준다.
mysql -u [db-user] -p -h [db-host 엔트포인트] -P 3306
-u : 유저 네임, 디폴트는 admin
-p : 패스워드 입력
-h : host 명 입력
-P : 접속 포트 번호, 디폴트는 3306
접속 확인
접속이 잘 되었는지 확인하기 위해, RDS 생성 시 초기 데이터베이스로 지정한 mydb가 있는지 확인.
잘 생성되었다.