[AWS에 Spring 초간단 배포하기] RDS 설정
안녕하세요? 제이온입니다.
초보자를 대상으로 하는 [AWS에 Spring 초간단 배포하기]의 두 번째 시간은 RDS 설정입니다. 이전 포스팅을 통해 EC2 세팅은 완료되었다고 가정하겠습니다.
RDS 세팅
RDS 세팅
좌측 상단의 [서비스] - [데이터베이스] - [RDS]에 들어갑니다.
위 화면에서 빨간 네모의 [데이터베이스 생성] 버튼을 클릭합니다.
저는 엔진 옵션을 MariaDB로 선택하였고, 템플릿은 반드시 프리 티어로 선택해야 합니다. 또한, Amazon Aurora는 프리 티어에서 지원하지 않으니 주의하시길 바랍니다.
식별자 및 마스터 사용자 이름, 마스터 암호는 자유롭게 설정하시면 됩니다.
인스턴스 구성은 반드시 db.t2.micro로 설정해야 합니다. 그 외에는 추가 요금이 부과됩니다.
스토리지, 가용성 및 내구성은 기본 값으로 설정합니다.
연결에서 퍼블릭 액세스는 [예]를 선택하고, 기존 VPC 보안 그룹 및 가용 영역은 처음 생성한 EC2와 동일한 설정하게 세팅합니다.
위 사진과 같이 EC2 인스턴스 정보 창에서 보안 그룹 및 가용 영역을 확인하실 수 있습니다.
나머지는 그대로 두고 [데이터베이스 생성]을 누릅니다.
5 ~ 10분 정도 기다리면 상태가 사용 가능으로 변경됩니다. 이제 DB 식별자를 클릭하여 DB 상세 정보를 확인해 봅시다.
여기서 우리는 엔드포인트를 이용하여 DB와 통신할 수 있습니다.
DB 접속
MySQL 워크벤치 혹은 DBeaver를 사용하여 RDS에 접속해 봅시다. 저는 DBeaver를 사용하여 진행하겠습니다.
DBeaver를 실행하여, Database Navigator에서 우클릭 - [Create] - [Connection] 버튼을 클릭합니다.
이후 MariaDB를 선택한 후 [다음] 버튼을 누릅니다.
RDS의 엔드포인트를 Server Host에 입력하고, 마스터 유저 정보를 기입한 후 [Test Connection] 버튼을 클릭합니다.
아마 연결이 정상적으로 되지 않을 겁니다. 이유는 바로 보안 그룹에 있습니다.
AWS EC2의 보안 그룹에 들어갑니다.
EC2 만들 때 설정했던 보안 그룹에 들어갑니다.
인바운드 규칙을 보면 22번과 8080번 포트만 열려 있습니다. [인바운드 규칙 편집]에 들어가서 RDS 포트인 3306번을 열어야 합니다.
[규칙 추가]를 눌러서 포트 범위는 3306, 소스는 Anywhere-IPv4로 설정한 뒤 하단에 [규칙 저장] 버튼을 누릅니다.
그리고 다시 아까 위에서 시도했던 [Test Connection]을 클릭하면 RDS 연결에 성공했다는 메시지가 뜹니다.
확인을 누르고 Database Navigator를 보면, 방금 연결한 RDS 정보가 나오는 것을 확인하실 수 있습니다.
Spring DataSource와 연동
제가 테스트용으로 만든 초미니 Repository를 예제로 사용해 보겠습니다. DB를 사용하는 어떤 Spring 프로젝트든 무방합니다. 저는 JPA를 사용해서 RDS와 연동해 보려고 합니다.
spring:
datasource:
url: jdbc:mariadb://[RDS 엔드포인트 주소]:3306/aws
username: [RDS 마스터 유저 아이디]
password: [RDS 마스터 유저 비밀 번호]
jpa:
hibernate:
ddl-auto: create
properties:
hibernate:
format_sql: true
show-sql: true
방법은 간단합니다. application.yml의 datasource url에 RDS 엔드포인트 주소를 기입하는 것이죠.
단, 이렇게 작성한 application.yml은 민감한 정보가 들어 있으므로 private Repository가 아닌 이상 Github에 push하시면 안 됩니다. Git Submodule을 통해 설정 파일을 관리하는 방법이 있지만, 이번 포스팅에서 다룰 내용은 아니므로 application.yml을 빼고 push 하시면 됩니다.
정리
RDS를 통해 데이터베이스 세팅 및 Spring DataSource 설정 연동도 완료되었습니다. 원격으로 EC2 서버에 어떻게 접근하고, 스프링 애플리케이션을 배포하는 일만 남았습니다.
다음 시간에는 원격 접속 프로토콜인 SSH를 사용하여 EC2 서버에 접속하고, 스프링 애플리케이션을 배포해 보겠습니다.