[AWS] RDS 인스턴스 생성 및 외부 접속
AWS

[AWS] RDS 인스턴스 생성 및 외부 접속

728x90

 

 

RDS란?

RDS(Relational Database Service)는 AWS에서 지원하는 클라우드 기반 관계형 데이터베이스이다. 하드웨어 프로비저닝, 데이터베이스 설정, 패치 및 백업과 같이 잦은 운영 작업을 자동화하여 개발자가 개발에 집중할 수 있게 지원하는 서비스이다. 

 

RDS 인스턴스 생성하기

RDS 인스턴스를 생성하기 위해 검색창에 RDS를 입력해서 선택한다.

 

[데이터베이스 생성] 버튼을 누른다.

 

데이터베이스는 MariaDB를 선택한다. MariaDB는 MySQL을 기반으로 만들어졌기 때문에 쿼리를 비롯한 전반적인 사용법이 MySQL과 유사하다.

 

현재는 프리 티어를 이용중이니 프리 티어를 선택해준다.

 

다음은 DB 인스턴스와 마스터 사용자 정보 등록 화면이다. 식별자와 이름 및 암호를 적어준다.

 

DB 인스턴스 크기와 스토리지는 변경사항이 없으니 그냥 넘어간다.

 

 

연결 부분에서는 [추가 연결 구성] 버튼을 누른 후, 퍼블릭 엑세스를 [예]로 변경한다. 이후 보안 그룹에서 지정된 IP만 접근하도록 막을 예정이다. 또한 VPC 보안 그룹에서 [새로 생성] 버튼을 누르고 이름을 적어준다.

 

[추가 구성] 버튼을 누른 후 데이터베이스 옵션에서 이름을 작성해주자. RDS내의 데이터베이스 이름이다.

 

데이터베이스 대시보드에서 [생성 중]이라고 표시되면 정상적으로 생성이 된 것이다.

 

 

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

RDS를 처음 생성하면 몇 가지 설정을 필수로 해야 한다. 

   1. 타임존

   2. Character Set

   3. Max Connection

설정을 하기 위해 왼쪽 카테고리에서 [파라미터 그룹]을 클릭해서 이동한 후, [파라미터 그룹 생성] 버튼을 누른다.

 

파라미터 그룹 패밀리는 생성한 데이터베이스의 버전과 맞춰주면 된다. 아까 생성할 때 MariaDB 10.2.21으로 생성했으니 변경하지 않아도 된다. 아래 그룹 이름과 설명을 적고 다음으로 넘어간다.

 

생성한 파라미터 그룹을 클릭해준다. 위에 초록색 알림창으로 인스턴스 생성에 성공했다는 알림이 뜬다.

 

우측 상단에 [파라미터 편집] 버튼을 누른다.

 

검색창에 time_zone을 검색하여 time_zone 파라미터를 Asia/Seoul로 변경해준다.

 

다음은 Character Set을 변경한다. char으로 검색하여 나오는 항목의 값을 6개를 모두 utf8mb4로 변경한다. utf8mb4는 이모지를 저장하게 해 준다.

 

또 collation으로 검색하여 collation_connection, collation_server의 값을 utf8mb4_general_ci로 변경한다.

 

마지막으로 Max Connection 값을 변경한다. RDS의 Max Connection은 인스턴스 사양에 따라 자동으로 정해진다. 현재 프리티어 사양으로는 약 60개의 커넥션만 가능해서 좀 더 넉넉한 값으로 지정해준다.

 

설정이 다 되었다면 우측 상단에 있는 [변경 사항 저장] 버튼을 눌러 저장해준다. 

이제 생성된 파라미터 그룹을 데이터베이스에 연결해준다. 왼쪽 카테고리에서 데이터베이스를 클릭한 후, 아까 생성했던 인스턴스의 [수정] 버튼을 눌러준다.

 

[데이터베이스 옵션] 화면에서 DB 파라미터 그룹을 방금 생성한 신규 파라미터 그룹으로 변경한다.

 

최하단의 [계속] 버튼을 누르면 다음과 같이 수정 사항이 요약된 것을 볼 수 있다. 여기서 반영 시점을 [즉시 적용]으로 한다. 예약된 다음 유지 시간으로 하면 지금 하지 않고, 새벽 시간대에 진행하게 된다. 이 수정사항이 반영되는 동안 데이터베이스가 작동하지 않을 수 있으므로 예약 시간을 걸어두라는 의미지만, 지금은 서비스가 오픈되지 않았기 때문에 즉시 적용을 해준다.

 

다음과 같이 '수정 중' 상태가 나오게 된다. 상태가 '수정 중'에서 '사용 가능'으로 변하게 되면 이제 데이터베이스를 사용할 수 있다.

 

 

내 PC에서 RDS에 접속해 보기

로컬 PC에서 RDS로 접근하기 위해선 RDS의 보안 그룹에 본인 PC이 IP를 추가해야 한다. RDS의 세부 정보 페이지에서 [보안 그룹] 항목을 클릭한다.

 

이전에 생성했던 EC2의 보안 그룹 ID를 RDS 보안 그룹에 추가해주기 위해 우선 아래 사진과 같이 필터를 제거해준다.

 

이전에 만들었던 EC2 보안 그룹의 그룹 ID를 복사해준다.

 

RDS 보안 그룹의 [인바운드]를 눌러 [편집] 버튼을 눌러준다.

 

인바운드 규칙 편집에서 EC2 보안 그룹 ID와 본인 IP를 추가해준다.

 

이제 로컬에서 데이터베이스를 사용하기 위해 Workbench를 사용해보자. MySQL의 대표적인 클라이언트로는 Workbench, SQLyog, Sequel Pro, DataGrip 등이 있다. 참고로 인텔리제이에서 Database 플로그인을 설치해서 사용하는 방법도 있다.

Workbench를 열어서 [Setup New Connection]을 눌러준다. 여기서 Hostname은 두 번째 사진에 있는 RDS의 엔드포인트이다. Username과 Password까지 입력해준 뒤 OK 버튼을 누른다.

 

정상적으로 RDS에 접속된 상태이다. 좌측 카테고리에 RDS 인스턴스를 생성할 때 만들었던 데이터베이스 이름이 보인다.

 

이제 접속에 성공했으니 간단한 테이블을 만들고 데이터를 삽입해본다. 간단하게 id와 content만 컬럼으로 갖는 test 테이블을 생성한다.

 

테스트 데이터를 insert 해준다.

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

 

정상적으로 데이터가 들어간 모습을 볼 수 있다.

 

 

EC2에서 RDS에 접근 및 확인

우선 EC2에 ssh 접속을 한다. 접속이 되었다면 MySQL 접근 테스트를 위해 MySQL CLI를 설치해준다.

sudo yum install mysql

 

설치가 다 되었다면 로컬에서 접근하듯이 계정, 비밀번호, 호스트 주소를 사용해 RDS에 접속한다. 패스워드를 입력하라는 메시지가 나오면 패스워드까지 입력한다.

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

 

접속이 정상적으로 되었다면, 앞서 삽입한 테스트 데이터를 확인해본다.

show databases;

use spring_boot

show tables;

select * from test;

728x90