AWS

[AWS] AWS RDS(MySQL)와 Spring Boot 연동하기 - 1. 데이터베이스 생성

suoop 2024. 6. 22. 20:00

MySQL을 Spring Boot와 연동하는 방법을 알아보자. 단계는 크게 두 가지로 나뉜다.

 

1. AWS RDS를 통해 데이터베이스를 생성

2. Spring Boot에 연동 (다음 글)

 

먼저 데이터베이스를 생성하는 방법부터 알아보자.

 


1. 지역 확인

데이터베이스를 생성하기 전에, 먼저 아래 이미지처럼 '서울'이 써져있는 곳에 다른 지역이 쓰여있지는 않은지 확인한다.

지역대별로 시간대가 달라 서버 시간이 따로 관리되기 때문에, 한국에서 하는 것이라면 서울로 옮겨주어야 한다.

 

 

2. 데이터베이스 생성 방식 선택

  • 표준 생성: 내가 모든 구성 옵션을 설정하는 것
  • 손쉬운 생성: 권장 옵션으로 자동 설정되는 것

나는 무과금 조건에 맞춰서 구성 옵션을 설정할 것이기 때문에, 표준 생성을 선택했다. 

 

 

3. 엔진 옵션

 

엔진은 MySQL으로, 버전은 8.0.35를 선택해주었다.

 

 

4. 템플릿 / 가용성 및 내구성

 

템플릿은 프리 티어로 설정해주었다.

프리 티어에서는 단일 AZ만 지원하기 때문에, 배포 옵션은 단일 DB 인스턴스로 자동 고정된다.

 

 

⬇️ 프리 티어 기능에 대해 궁금하다면 아래 링크(Amazon RDS 프리 티어-공식 문서)에서 확인할 수 있다.

https://aws.amazon.com/ko/rds/free/

 

Amazon RDS 프리 티어 | 클라우드 관계형 데이터베이스 | Amazon Web Services

매월 MySQL, MariaDB, PostgreSQL 데이터베이스를 실행하는 Amazon RDS 단일 AZ db.t2.micro, db.t3.micro 및 db.t4g.micro 인스턴스 사용량 750시간. 2개 이상의 인스턴스를 실행하는 경우 인스턴스 클래스 전체의 사용

aws.amazon.com

 

 

 

 

 

5. 설정

 

  • DB 인스턴스 식별자: Spring Boot에서 Data Source를 추가할 때, 아래 이미지와 같이 Data Source 간 식별할 수 있게 해주는 이름이다.

 

  • 마스터 사용자 이름
  • 자격 증명 관리: '자체 증명'을 선택하여 자체적으로 암호를 생성하여 관리하게끔 만들어 주었다.
  • 마스터 암호

'마스터 사용자 이름 / 마스터 암호'는 Data Source 생성할 때 필요하므로 기억해두어야 한다.

 

 

 

 

6. 인스턴스 구성

 

템플릿이 프리 티어라서 버스터블 클래스로 자동 고정되고, db.t3.micro 또는 db.t4.micro만 사용 가능하다. 나는 default 값인 db.t3.micro를 선택하였다. 

 

 

 

 

7. 스토리지

 

 

프리 티어 설정에 맞게, 범용 SSD(gp2) 스토리지는 20으로 설정한다.

 

❗스토리지 자동 조정 활성화는 체크 해제한다.  

 

자동 조정되어 20을 넘기면 과금될 수 있기 때문이다.

 

 

 

8. 연결

 

'EC2 컴퓨팅 리소스에 연결 안 함' 을 선택한다.

더보기

이유는 모르겠지만 이걸 선택하면 퍼블릭 액세스가 허용되지 않는다.. 나중에 개념을 찾아봐야겠다.

1. 퍼블릭 액세스는 ''로 선택한다.

내 로컬 컴퓨터에서도 RDS 데이터베이스를 사용하고 싶다면 퍼블릭 액세스 여부를 '예'로 체크해야 한다.

 

2. VPC 보안 그룹을 선택한다. 나는 새로 생성해주었다.

더보기

처음에 기존 항목 선택에서 default로 설정했다가 아래와 같이 워크벤치에서 localhost에 연결이 안 되는 오류가 났었다.

아마 기존 항목 선택이나 새로 생성 뭘 선택하던 상관없는데,

default로 했을 때 오류가 났던 이유는 인바운드 규칙 추가를 안 해서 그랬던 거 같다. => 찾아보기.

 

3. 새 VPC 보안 그룹 이름을 입력한다.

 

4. 가용 영역도 아무거나 하나 지정해주는 게 좋다.

 

 

 

9. 추가 구성

 

1. 초기 데이터베이스 이름을 입력하면 자동으로 해당 이름의 Database를 생성해준다. 빈칸이면 스스로 Database를 생성하면 된다.

 

2. 자동 백업은 과금 요소가 될 수 있다고 하여 체크 해제했다.

 

 

 

 

10. 데이터베이스 생성

 

이제 데이터베이스 생성 버튼을 누르면, 아래 이미지와 같이 데이터베이스가 생성된다!

엔드포인트는 Spring Boot와 연동할 때 필요하니 복사해두자.

더보기

근데 분명 프리 티어에 맞게 설정했는데 왜 청구 예상 비용이 21.60 달러가 나오는 것일까...?

청구 비용 주기적으로 확인해봐야겠다

 

 

여기까지가 AWS에서 MySQL 데이터베이스를 생성하는 과정이고, 이제 Spring Boot에 연동시키는 작업을 하면 된다.


Reference