목표
- amazon RDS를 사용하는 방법에 대해 알아보자.
- Spring Boot와 RDS를 연결해 사용하는 방법에 대해 알아보자.
amazon RDS에 DB 생성하기
amazon RDS(amazon Relational Database Service)
amazon에서 제공하는 DB호스팅 서비스이다.
RDS 생성
- AWS 로그인
- AWS management console -> service -> database -> rds 접속
- 카테고리에서 database 선택
- create database 선택 후 DB생성
Amazon RDS DB 인스턴스 생성
https://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/USER_CreateDBInstance.html
DB를 생성하였고 사용가능상태가 되었다면 DB식별자 링크를 클릭 후 앤드포인트를 확인하자. 127.0.0.1(localhost)대신 앤드포인트를 집어넣어주면 된다.
퍼블릭 액세스 설정
추가로, 퍼블릭 액세스를 위해서는 VPC보안 그룹으로 들어가 인바운드를 설정해줘야 한다.
- VPC 보안 그룹 선택
- 인바운드 규칙 -> 인바운드 규칙 편집
- 소스 설정 -> 내 IP(단체로 사용할거라면 Anywhere)
- 규칙 저장
* 2023.10.02 추가
처음 RDS 인스턴스를 만들면 VPC보안그룹이 default으로 설정되어있을 것이다. AWS를 이용하다보니 default 보안그룹을 사용하기보다는 새로운 보안그룹을 생성해서 서비스에 맞게 설정해 사용하는것이 더 좋다고 느껴집니다.
파라미터그룹 설정
MySQL, MariaDB 등 MySQL Engine을 사용하는 RDS를 생성할 경우 기본 언어 설정이 utf8이 아닌 latin1으로 설정되어있어서 한글을 저장할 경우 에러가 발생하거나 제대로 저장되지 않는 문제가 발생합니다. RDS의 파라미터 그룹을 설정해서 문제를 해결할 수 있습니다.
RDS 파라미터 그룹으로 들어가 DB 인스턴스 엔진 버전에 맞는 파라미터 그룹 패밀리를 선택한 후 생성합니다. 이 후, 생성한 파라미터 그룹으로 들어가 편집을 선택한 후 아래와 같이 설정합니다.
이 후, DB 인스턴스를 재시작하면 성공적으로 기본 character_set이 utf8로 변경되었음을 확인할 수 있습니다. 만약, 파라미터 그룹 설정 전에 schema를 생성했다면 파라미터 그룹 설정이 적용이 안되기때문에 새로 schema를 만들어 사용해야 합니다.
Spring Boot에 RDS 연결하기
사용하는 DB의 gradle dependency를 추가하고 application파일에 설정 코드를 추가합니다.