본문 바로가기
개발/스프링

[혼자 구현하는 웹서비스] 7-1. AWS에 데이터베이스 환경을 만들어보자 - AWS RDS (MariaDB)

by 카펀 2022. 1. 31.

기존 글: [Spring Boot] 7. AWS에 데이터베이스 환경을 만들어보자 - AWS RDS

 

기존 글에서는 책에서 소개한 MariaDB 대신 PostgreSQL을 이용하여 진행해 보고자 했으나,

책에서 안내하는 진행 방법과는 차이가 나는 부분이 몇몇 존재하였고,그 중 EC2와 RDS를 연결하는 과정에서 해결법을 도저히 못 찾겠어서 (나중에 글로 따로 정리해서 올릴 예정)...

 

그래서 일단은 MariaDB로 다시 진행하기로 했다.MariaDB는 MySQL에서 갈라져 나온 오픈소스 DB로, 기존에 MySQL을 사용해 본 경험이 있는 나에게 크게 생소한 DB가 아니다.현재로써는 특정 DB를 이용해 환경을 구축하는 것보다는, 전체적인 웹 개발의 흐름을 따라가며 익숙해지는 것이 더 중요하다고 생각하여 MariaDB로 다시 진행하게 되었다.추후에 개인 프로젝트를 할 땐 꼭 PostgreSQL로 진행해 보고 싶다.

 

 

했던 과정을 MariaDB로 다시 진행하였다.

책과 차이나는 점이 있다면 MariaDB의 버전이다. 원래는 버전도 똑같이 맞추려고 했으나, 책에서의 버전 (10.2.21)이 더 이상 지원되지 않아서 그냥 내 맘대로 골랐다.

고른 기준은 저번처럼... 상대적 최신이지만 너무 최신은 아닌 버전으로 골랐다.

 

책에 보면 포트 번호를 따로 설정하도록 되어 있는데, PostgreSQL을 설정할 때도 그렇고 포트 번호를 따로 지정하는 옵션이 보이지 않았다.

AWS RDS에서 알아서 기본 포트 번호로 지정해 주나 보다.

 

 

설정을 마치고 생성을 시작하였다.

앞서 해본 과정이라, 그리고 캡쳐를 상대적으로 널널하게 하고 있는 중이라 그런지 훨씬 쉽고 빠르게 진행할 수 있었다.

DB 식별자 이름은 이전과 동일하게 했다. 일단 이번에는 더 이상 PostgreSQL을 사용하지 않을 예정이라 깔끔하게 삭제해 버렸다.

 

 

MariaDB를 위한 파라미터 그룹 'kchung-springboot2-webservice'를 생성하고, 관련된 파라미터 편집을 해 주었다.

 

 

변경된 내용을 DB에 적용시키는 것도 잊지 않았다.

 

 

인바운드 규칙 편집에 EC2와 현재 PC의 정보를 각각 입력하였다.

 

 

생성된 Database에 DBeaver를 통해 접속해 보았다.

역시 한 번 해 봤던 과정이라 그런지 쉽게쉽게 성공한다.

 

몇몇 쿼리를 실행해 본다.

 

show variables like 'c%';

 

AWS 상에서는 잘 반영이 되었는데, 여기서는 아직 utf8mb4로 반영이 덜 된 모습이다.

AWS RDS 대시보드에서 재부팅을 해 주었더니 잘 된다.

 

 

그럼에도 아직 character_set_database, collation_database 두 가지는 latin으로 되어 있다.

이 두 항목은 MariaDB에서 RDS 파라미터 그룹으로는 변경이 안 된다고 한다.

직접 바꿔주도록 하자.

 

ALTER DATABASE '데이터베이스명'
CHARACTER SET = 'utf8mb4'
COLLATE = 'utf8mb4_general_ci'

 

 

바뀐 결과를 확인한다.

 

이어서 몇몇 항목을 확인해 보자.

 

select @@time_zone, now();

 

create table test (
	id bigint(20) NOT NULL AUTO_INCREMENT,
    content varchar(255) DEFAULT NULL,
    PRIMARY KEY (id)
) ENGINE=InnoDB;

insert into test(content) values ('테스트');

select * from test;

 

 

각각 DB 서버의 현재 시간/타임존 조회, 한글 저장/출력이 잘 되는지 확인을 위한 쿼리이다.

모두 성공적이다.

 

마지막으로 EC2 Linux2 환경에서 RDS 접속을 테스트해 보자.

우선 EC2 환경에 mysql을 설치해야 한다.

 

sudo yum install mysql

 

 

설치가 완료되었으면 바로 DB에 접속해 보자.

 

mysql -u '계정' -p -h 'Host 주소'

 

나의 경우에는 아래와 같이 입력하면 된다.

 

mysql -u kchung1995 -p -h springboot-webservice.cf3n2liujxie.ap-northeast-2.rds.amazonaws.com

 

이어서 비밀번호까지 입력하고 나면 성공적으로 접속할 수 있다.

 

접속이 잘 되었는지 확인해 보자.

 

show databases;

 

 

kchung_spring2_webservice 가 잘 보인다.

댓글