개발 이야기/인프라

[AWS에 Spring 초간단 배포하기] RDS 설정

제이온 (Jayon) 2022. 4. 30.

 

안녕하세요? 제이온입니다.

 

초보자를 대상으로 하는 [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 서버에 접속하고, 스프링 애플리케이션을 배포해 보겠습니다.

댓글

추천 글