RDS는 Relational Database System의 약자로, 클라우드에서 관계형 데이터베이스를 간편하게 설정, 운영 및 확장할 수 있는 것을 뜻한다. 하드웨어 프로비저닝, 데이터베이스 설정, 패치 및 백업과 같은 시간 소모적인 관리 작업을 자동화
하고, 사용자가 애플리케이션에 집중하여 애플리케이션에 필요한 빠른 성능, 고가용성, 보안 및 호환성을 제공할 수 있도록 지원
해주는 서비스이다.
가장 먼저 AWS RDS 콘솔에 들어가서 데이터베이스를 생성한다.
좌측 상단의 데이터베이스 생성 버튼을 누르면
이런 창이 뜨는데, MySQL을 사용할 예정이므로 엔진 유형은 MySQL을 설정했다.
버전은 기본 버전으로 해주고, 과금이 되지 않게 해야하므로 템플릿은 프리티어를 사용하였다.
그리고 데이터베이스의 마스터 계정도 생성해준다.
나머지는 초기 구성으로 해주고,
추가 구성을 추가하여 데이터베이스 명을 지정한다.
그리고 데이터베이스를 생성한다. 데이터베이스 생성하는데 시간이 약간 걸린다.
5분 정도 기다리면 데이터베이스 생성에 성공했고, 사용 가능 상태가 된다.
DB가 생성이 완료되면, 보안 규정을 변경해야한다. EC2에서 RDS로 접근 가능하게 해야하기 때문이다. 따라서 인바운드 규칙을 변경해주어야 한다.
MySQL에 접근해야하므로 유형은 MySQL/Aurora이고, 소스는 EC2의 보안그룹 코드이다. 이렇게 지정함으로써 EC2가 RDS에 접근할 수 있도록 설정되었다.
외부에서 접근 가능한지 여부를 확인하기 위해 Datagrip으로 접근하였다.
이때, Host명은 RDS의 엔드포인트로 설정해주어야 한다. 그리고, User는 RDS 데이터베이스 생성할때 만들었던 마스터 계정을 사용한다.
SELECT VERSION();
을 통해 RDS 생성할 때 설정했던 버전이 맞는 지 확인한다.
잘 나오는 걸 보니 연결이 잘 된걸 알 수 있다.
좌측 탭에서 파라미터 그룹
을 설정하고, 우측 상단의 파라미터 그룹 생성
버튼을 클릭한다.
이렇게 데이터 그룹을 설정하고
생성한 파라미터 그룹에 들어가여 time_zone
을 검색한다. 그리고 우측 상단의 파라미터 편집
버튼을 눌러 Asia/Seoul로 변경한다.
character_set을 utf8mb4
로 변경하여 한글 데이터가 깨지지 않게 한다. character_set 결과는 모두 utf8mb4로 바꾼다.
collation
을 검색하여 collation_server와 collation_connection을 모두 utf8_general_ci
로 변경한다.
데이터베이스에서 수정을 누른다.
수정 버튼을 누르고,
데이터베이스 옵션
을 위에서 설정한 데이터베이스 그룹으로 바꾼다. 그리고 하단에서 계속을 누르고
즉시 적용을 클릭한다.
수정 완료되었으면 작업
에서 재부팅
을 해준다.
Datagrip을 통해 제대로 업데이트 되었는지 확인하였다.
SELECT @@TIME_ZONE, NOW();
를 통해 설정한 타임존과 현재 시각을 출력하도록 했다.
SHOW VARIABLES LIKE '%character_set%';
이라는 쿼리문을 통해 변경이 어떻게 되었는지 확인한다.
전부 잘 변경되어 있는 것을 확인할 수 있다.
SHOW VARIABLES LIKE '%COLLATION%';
쿼리문을 통해 변경된 Collation들을 확인하였다.
잘 변경된 것을 확인할 수 있다.
utf8이 제대로 돌아가는지 확인하기 위하여 Datagrip을 통해 한글 데이터를 삽입할 예정이다.
CREATE TABLE TEST
(
USERID VARCHAR(10) PRIMARY KEY,
NAME VARCHAR(20)
);
INSERT INTO TEST VALUES ('데이지', '이소명');
INSERT INTO TEST VALUES ('테스트', '테스트');
SELECT * FROM TEST;
을 입력하여 한글 데이터를 입력해도
깨지지 않는 것을 확인할 수 있다.
PuTTY 창을 열고
sudo mysql -u 마스터계정 -p -h (RDS 엔드포인트)
를 입력하면 RDS로 접속이 가능하다.
show databases;
를 입력하면
우리가 RDS에서 설정했던 데이터베이스명인 RC_6th_Server_A
가 뜨는 것을 확인할 수 있다.