AWS RDS 구축하기
AWS RDS를 구축하는 이유
RDS란 Relational Database Servic의 줄임말이다.
AWS 클라우드에서 관계형 데이터베이스를 더 쉽게 설치, 운영 및 확장할 수 있는 웹 서비스이다.
앞선 글에서 효율적인 서버 관리를 위해서 웹 서버와 데이터베이스 서버를 나누는 이유에 대해서 적어보았다.
RDS를 구축하는 이유에 대해서 적어보자면,
EC2의 서버에 데이터베이스를 구축해도 되지만, EC2 서버를 운영하다 보면 여러 문제가 발생할 수 있다.
예를 들어 EC2 서버에 접근을 할 수 없게되면 데이터베이스에도 접근이 불가능해진다.
또는 EC2 서버의 용량이 가득차서 데이터베이스에 데이터를 추가하지 못하는 상황도 일어날 수 있다.
따라서 RDS를 구축하여보자
RDS 인스턴스 생성하기
AWS의 RDS에서 데이터 베이스를 생성한다.
MySQL 8.0.23 선택
프리티어 선택
마스터 사용자 설정
프리티어의 한계 .. 다른 선택사항은 선택하지 못한다.
프리티어의 스토리지는 최대 20GB이다.
연결 설정
VPC(Virtual Private Cloud)는 EC2의 가상 네트워크 계층이다.
자세한 내용은 아래의 링크에서 확인할 수 있다.
https://docs.aws.amazon.com/ko_kr/vpc/latest/userguide/what-is-amazon-vpc.html
데이터베이스 인증을 암호 인증으로 선택하고 초기 데이터베이스 이름을 설정하였다.
설정을 마치고 데이터베이스를 생성하였다.
EC2 인스턴스와 연결하기
skrrPC라는 VPC 보안 그룹을 만들었으니 이 보안 그룹의 포트를 열어 EC2가 접근할 수 있도록 한다.
VPC 보안 그룹의 인바운드 규칙을 설정한다.
EC2에서 RDS의 MySQL에 접근할 수 있도록 소스 부분에 EC2의 보안 그룹 코드를 설정해준다.
로컬에서 RDS 접속 테스트
이전에 실행해보았던 Datagrip을 통해서 접속을 테스트해보았다.
Host에는 RDS의 엔드포인트, User와 Password에는 위에서 설정한 마스터 사용자의 계정, 비밀번호를 넣으면 된다.
타임존 설정
RDS->파라미터 그룹 -> 파라미터 그룹 생성에서 다음과 같이 설정했다.
RDS ->파라미터 그룹-> 파라미터 그룹 수정에서 time_zone에 Asia/Seoul이라고 설정했다.
characater_set utf-8 설정
RDS-.파라미터 그룹->파라미터 그룹 수정에서 character_set을 검색하고 모두 utf8mb4로 설정한다.
collation 설정
마찬가지로 collation을 검색하여 utf8mb4_general_ci로 설정한다.
데이터베이스 인스턴스를 수정
데이터 베이스 옵션의 DB 파라미터 그룹을 default에서 설정한 파라미터로 바꾼다.
수정 후 데이터베이스를 재부팅하여 수정사항을 적용시킨다.
Datagrip을 통하여 확인하기
설정값 그대로 잘 바뀐 것을 확인할 수 있다.
이제 최종적으로 테스트를 진행한다.
다음과 같이 데이터베이스, 테이블을 생성하고 테스트를 진행한다.
EC2 서버에서도 접속하여 다음 데이터베이스 테이블에 접근해본다.
mysql -u 유저이름 -p -h RDS엔드포인트
use rds_test;
select * from rds_test;
Reference :
https://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/Welcome.html
https://docs.aws.amazon.com/ko_kr/vpc/latest/userguide/what-is-amazon-vpc.html
https://luminitworld.tistory.com/94