Spring Boot + AWS RDS (MySQL) 연동하기
사용한 개발환경
MySQL 8.0.28
Spring Boot 2.6.5
java 11.0.9
IDE Intellij
Windows
AWS RDS (MySQL)
1. RDS 데이터베이스 생성하기
(1) 데이터베이스 생성 방식 : 표준 생성
(2) 엔진 옵션 : MySQL
(3) 템플릿 : 프리 티어
(4) 설정 : 식별자, 사용자 이름, 암호를 적절히 설정해줍니다.
(5) DB 인스턴스 클래스는 프리 티어 선택 시, 자동으로 버스터블 클래스로 설정됩니다.
(6) 스토리지 자동 조정은 임계값 초과시 요금이 부과되니 주의하세요!
(7) 퍼블릭 액세스 : 예
=> 협업할 때, 다른 개발자의 접근을 위해 허용으로 선택해주었습니다.
=> "아니요"로 선택해도 VPC 내부의 EC2 인스턴스는 데이터베이스에 접근할 수 있습니다.
(8) 보안 그룹 : 새로 생성
=> default로 설정돼도 나중에 변경 가능합니다.
(9) 데이터베이스 옵션 - 초기 데이터베이스 이름 : demo
2. 보안 그룹 생성
(1) 생성한 데이터베이스를 클릭해, 상세 화면으로 이동합니다.
(2) VPC 보안 그룹을 클릭해, 보안 그룹페이지로 이동합니다.
- ec2-security : (기존에 만들어둔) EC2 인스턴스의 보안 그룹의 이름
(3) "보안 그룹 생성"을 클릭합니다.
(4) 보안 그룹의 이름과 설명을 적절히 설정합니다.
(5) 인바운드 규칙의 유형을 'MYSQL/Aurora'로 설정합니다.
(6) (기존 EC2 인스턴스가 있다면,) DB에 접근할 수 있도록 'ec2-security'의 보안 그룹을 선택합니다.
(7) 내 로컬 PC에서도 접근할 수 있도록 '내 IP'를 추가합니다.
=> 만약 접근이 필요한 다른 개발자가 있다면, IP 주소를 추가해주면 됩니다.
(8) "보안 그룹 생성" 버튼을 클릭합니다.
(9) 이제 다시, 생성한 데이터베이스의 상세 화면으로 이동해 "수정" 버튼을 클릭합니다.
(10) 기존 보안 그룹을 삭제하고, 새로 생성한 보안 그룹의 이름으로 변경해줍니다.
(11) 수정을 완료합니다.
3. Workbench에서 DB 연동하기
GUI 인터페이스인 Workbench를 설치해 DB를 연동해보겠습니다.
(1) MySQL Workbench 설치
(2) 추가 버튼을 클릭합니다.
(3) 데이터베이스 상세 화면의 '엔드포인트'와 '포트 번호'를 확인합니다. 포트는 기본값으로 3306입니다.
(4) 값을 채웁니다
Connection Name : Workbench에서 보여지는 DB 이름
Hostname : 데이터베이스 엔드포인트
Port : 데이터베이스 포트 번호
Username : 데이터베이스 생성시 설정했던 마스터 사용자 이름
Password : 데이터베이스 생성시 설정했던 마스터 암호
(5) 하단 "Test Connection" 버튼을 클릭해 '마스터 암호'를 넣은 후 성공적으로 연결했다는 알림창이 뜨면 "OK" 버튼을 누릅니다.
(6) 생성한 DB에 들어가면 'demo'라는 스키마가 보입니다. 생성할 때 설정해뒀던 '초기 데이터베이스'입니다.
Spring Boot 프로젝트에서 연동하기
1. build.gradle 설정
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
runtimeOnly 'mysql:mysql-connector-java'
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
runtimeOnly 'mysql:mysql-connector-java'
의존성에 위 코드를 추가해줍니다.
2. application.yml 설정
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://{엔드포인트}:{포트번호}/{(초기)데이터베이스}?serverTimezone=Asia/Seoul&characterEncoding=UTF-8
username: {마스터 사용자 이름}
password: {마스터 암호}
제 경우에는 'demo'가 {(초기)데이터베이스}에 들어가게 됩니다!
github 레포지토리에 AWS 정보가 올라가지 않게 주의하세요!
3. 프로젝트 빌드 후 실행
Run(실행)했을 때 잘 돌아가면 연동은 끝입니다!
4. 추가 설정 - 시간 및 UTF8 지원
(1) "파라미터 그룹" 메뉴로 이동합니다.
(2) "파라미터 그룹 생성"을 클릭합니다. (기존 default는 수정이 불가능합니다.)
(3) 정보를 입력하고 "생성" 버튼을 누릅니다.
(4) 생성한 파라미터를 클릭해 상세 페이지로 들어간 후, "파라미터 편집"을 클릭합니다.
시간 설정
time_zone : Asia/Seoul로 변경
한글 설정
1. utf8로 변경
character_set_client
character_set_connection
character_set_database
character_set_filesystem
character_set_results
character_set_server2. utf8_general_ci로 변경
collation_connection
collation_server
(5) 파라미터를 수정한 후에, "변경 사항 저장"을 클릭합니다.
(6) 데이터베이스 인스턴스 상세 페이지로 돌아가, "수정" 버튼을 클릭합니다.
(7) '추가 구성 - 데이터베이스 옵션 - DB 파라미터 그룹'을 생성한 파라미터로 변경한 후, 수정을 완료합니다.
(8) 데이터베이스 인스턴스를 "재부팅"한 후에, Workbench에서
SELECT NOW();
를 실행해 컴퓨터 시간과 비교해보면 옵션이 정상적으로 변경된 것을 확인할 수 있습니다.
Author And Source
이 문제에 관하여(Spring Boot + AWS RDS (MySQL) 연동하기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@u-nij/Spring-Boot-AWS-RDS-MySQL-연동하기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)