본문 바로가기
Infra & Tools/AWS

[AWS RDS/ mariaDB] AWS RDS 환경 구축하기

by 깐니 2020. 8. 5.

이번 포스팅에서는 AWS RDS 인스턴스를 생성하여, IntelliJ 내 프로젝트와 연동하는 과정에 대해 알아보자.
사용할 DB는 mariaDB입니다.
DB 선택 이유는 이전 포스팅에서 확인해주세요~
(이번 포스팅에서 RDS를 EC2 서버와 연결하는 것은 다루지 않습니다!)

1. AWS RDS에 접속하기

AWS 링크 👉🏻 https://ap-northeast-2.console.aws.amazon.com/

 

2. RDS 인스턴스 생성하기

(1) 데이터베이스 생성 버튼을 클릭한다.



(2) 데이터 생성 방식 선택 - [표준 생성] 선택
(3) 엔진 옵션 - [MariaDB] 선택
(4) 템플릿 - [프리티어] 선택


(5) 상세설정
     - DM 인스턴스 클래스 : db.t2.micro -1 vCPU, 1 GIB RAM
     - 할당된 스토리지 : 20


(6) 상세설정
     - DB 인스턴스 식별자 : 본인의 DB 인스턴스 이름 등록
     - 자격 증명 설정 : 이 정보로 실제 데이터베이스에 접근함 🙃


(7) 네트워크
    - 퍼블릭 엑세스 [예]로 변경 : 보안 그룹에서 지정된 IP만 접근가능하도록 설정


(8) 데이터베이스 옵션
     - 초기 데이터베이스 이름 설정 
     - 이외 기본값으로 설정 -> 생성 이후, 파라미터 그룹 변경을 진행할 예정입니다.


(9) 인스턴스 생성 후, 세부정보 화면 일부

 

3. RDS 운영환경에 맞는 파라미터 설정하기

RDS 처음 생성 시, 필수로 해야하는 설정들에 대해 알아보겠습니다.
 - 타임존
 - Charater Set
 - Max Connection


(1) 파라미터 그룹 생성하기


(2) 파라미터 그룹 세부 정보 설정
   - 파라미터 그룹 패밀리 : 위에서 생성한 Maria DB와 같은 버전으로 설정해야합니다.


(3) 파라미터 편집 
   - 검색을 통해 아래와 같이 변경합니다.
   - 참고
      utf8mb4 : utf8과 달리, 이모지 저장 가능하므로 보편적으로 많이 사용합니다.

  - Max Connection을 수정합니다.
    RDS 의 Max Connection은 인스턴스 사양에 따라 자동으로 정해집니다.
    현재 프리티어 사양으로는 약 60개의 커넥션이 가능하기때문에 더 큰 값으로 지정해놓고, 이 후 사양을 높이면 다시 지정합니다.

\

(3) 생성한 파라미터 그룹을 데이터베이스에 연결합니다.
   - 데이터베이스에서 수정버튼을 클릭합니다.

  - 데이터베이스 옵션의 DB 파라미터 그룹을 기본값에서 변경합니다.


(4) 재부팅을 진행합니다.

 

4. 내 PC에서 RDS에 접속하기

RDS의 보안 그룹에 내 PC의 IP를 추가합니다.

(1) 인스턴스 상세 페이지에서 보안 그룹을 선택합니다.


(2) 보안 그룹을 생성합니다.
  - 보안 그룹 이름을 설정합니다.
  - 인바인드 규칙 : 접근하고자 하는 내 IP를 등록하고, 포트는 3306을 등록합니다. (MariaDB의 기본포트가 3306이기 때문입니다.)

 

5. IntelliJ에 Database 플러그인 설치하기

MySQL의 GUI 클라이언트로 많이 사용하는 Workbench,, 를 사용해도 상관없습니다.
여기서는 IntelliJ에 Database 플러그인을 설치해서 진행합니다.

(1) IntelliJ에서 Command+Shift+A를 통한 Action 검색에서 plugins를 검색합니다.
    - Database Navigator를 검색해서 install합니다.  


(2) IntelliJ 재시작을 한 뒤, Action 검색으로 Database Browser를 실행합니다.

(3) 왼쪽 사이드바에 노출된 DB Browser를 클릭합니다.

(4) + 버튼에서 MySQL을 선택합니다 : MariaDB는 MySQL 기반이기 때문입니다.


(5) RDS 접속 정보 등록하기
 Host : RDS 상세정보페이지에서 엔드포인트 정보를 복사하여 사용합니다.
 Port : 3306을 입력합니다. (기본값)
 User/Password : RDS의 상세설정에서 입력했던 자격 증명 정보를 입력합니다. 

RDS 상세정보 페이지의 엔드포인트 정보
접속 성공 시, 출력 화면

 

6. 새로운 콘솔창을 만들어서 쿼리가 정상적으로 수행되는지 테스트해보자.

(1) New SQL console .. 에서 sea2 콘솔 생성

(2) use [AWS RDS 데이터베이스명];

쿼리 실행 성공 시, succefully 메시지가 뜹니다.

 

7. 데이터베이스가 선택된 상태에서 현재의 설정을 확인 후, 변경사항 적용하기.

-RDS 파라미터 그룹으로는 변경이 안되는 값들이 있습니다.
 MariaDB에서 character_set_database, collation_connection 항목의 기본값이 latin1로 설정됩니다.
 그래서 직접 변경해주는 쿼리를 작성합니다.

// 데이터베이스 선택
use [AWS RDS 데이터베이스명];

// 현재 character_set, collation 설정 확인
show variables like 'c%';

// 변경 사항 적용
alter database [AWS RDS 데이터베이스명]
character set = 'utf8mb4'
collate = 'utf8mb4_general_ci';

// 타임존 확인
select @@time_zone, now();

character_set, collation 확인 후 변경
타임존 확인

 

8. 인코딩 설정 내용 테스트하기

  - 한글 설정이 잘 되었는지 확인합니다.
  - 테이블 생성은 인코딩 설정 변경 전에 생성되면 안됩니다.
    만약, 변경 전에 테이블이 생성되면, 만들어질 당시의 설정값을 그대로 유지하고 있기 때문에, 강제로 변경해야하기 때문입니다.

 

이번 포스팅에서는 내 PC 에서 RDS 접속하는 상세설정에 대한 부분을 알아보았습니다.

 

 

Reference
📘 스프링부트와 AWS로 혼자 구현하는 웹 서비스