코딩공작소
AWS EC2 <--> RDS 연결 본문
1.1 RDS 보안 그룹 설정
- AWS 콘솔에서 RDS > 보안 그룹으로 이동하여 수정을 클릭합니다.
- EC2 인스턴스의 보안 그룹이 RDS MySQL 인스턴스에 접근할 수 있도록 인바운드 규칙을 추가해야 합니다.
- 프로토콜: TCP
- 포트 범위: 3306 (MySQL 기본 포트)
- 소스: EC2 인스턴스가 속한 보안 그룹을 선택하거나, EC2의 IP를 허용 (만약 EC2가 여러개라면 전체 IP를 허용하는 방법도 있지만 보안에 주의).
+++++) 인텔리제이랑 RDS를 연결하려면 사용자지정의 IP의 인바운드규칙도 추가해주어야한다.
1.2 EC2 보안 그룹 설정
- EC2의 보안 그룹에서도 RDS의 포트(3306)에 접근 가능하도록 설정해야 합니다.
- AWS 콘솔에서 EC2 > 보안 그룹으로 이동하여, 해당 EC2 인스턴스의 보안 그룹을 선택한 후 인바운드 규칙을 편집합니다.
- 프로토콜: TCP
- 포트 범위: 3306
- 소스: RDS 인스턴스가 있는 보안 그룹을 허용
SSH, RDS(MYSQL), http, https, 8008포트 연결을 허용해주는 인바운드 규칙을 설정해준다.
--> 기본적으로 아웃바운드 규칙은 anywhere로 설정
2. RDS MySQL의 엔드포인트와 연결 정보 확인
- AWS 콘솔에서 RDS MySQL 인스턴스 세부 정보로 이동하여, **엔드포인트(Endpoint)**와 **포트(3306)**를 확인합니다.
- 이 정보는 EC2에서 Spring Boot 애플리케이션이 데이터베이스에 연결할 때 사용됩니다.
3. Spring Boot의 application.properties 또는 application.yml 설정
Spring Boot 애플리케이션에서 RDS MySQL을 사용하려면, 애플리케이션의 데이터베이스 연결 설정을 application.properties 또는 application.yml 파일에 추가해야 합니다.
3.1 application.properties 설정 예시
spring.datasource.url=jdbc:mysql://<RDS_ENDPOINT>:3306/<DB_NAME>?useSSL=false&serverTimezone=UTC
spring.datasource.username=<YOUR_DB_USERNAME>
spring.datasource.password=<YOUR_DB_PASSWORD>
spring.datasource.driver-class-name=http://com.mysql.cj.jdbc.Driver
spring.jpa.hibernate.ddl-auto=update
//<-- 설정 값에 따라서 애플리케이션 기동 시 데이터가 달라져 유의
3.2 application.yml 설정 예시
spring:
datasource:
url: jdbc:mysql://<RDS_ENDPOINT>:3306/<DB_NAME>?useSSL=false&serverTimezone=UTC
username: <YOUR_DB_USERNAME>
password: <YOUR_DB_PASSWORD>
driver-class-name: http://com.mysql.cj.jdbc.Driver
jpa:
hibernate:
ddl-auto: update
- <RDS_ENDPOINT>: RDS MySQL 엔드포인트 (예: yourdbinstance.abcdefg1234.us-west-1.rds.amazonaws.com)
- <DB_NAME>: 사용할 데이터베이스 이름
- <YOUR_DB_USERNAME>: RDS MySQL의 사용자 이름
- <YOUR_DB_PASSWORD>: RDS MySQL의 비밀번호
4. MySQL JDBC 드라이버 추가
Spring Boot 애플리케이션에서 MySQL과 통신하려면 MySQL JDBC 드라이버가 필요합니다. build.gradle 파일에 다음 의존성을 추가합니다. (--> 해당 의존성 추가 버전 mysql 8.0 이상 호환XXX , 아랫 부분 추가 설명)
dependencies {
implementation 'mysql:mysql-connector-java'
}
5. EC2에서 애플리케이션 실행
- EC2에 로그인하여 Spring Boot 애플리케이션을 실행합니다. MySQL에 연결된 애플리케이션을 실행하는 명령은 보통 다음과 같습니다:
<인텔리제이 rds 연결>
application.properties 파일에 계속 데이터베이스 연결 설정값을 넣어 주면서 하루 삽질을 하고 구글링을 한 끝에,,,,
build.gradle 내용을 아래와 같이 바꿔주니까 빌드 성공 ;;; ㅎ
implementation 'org.springframework.boot:spring-boot-starter'
runtimeOnly 'com.mysql:mysql-connector-j'
'어플리케이션개발 > 토이프로젝트(취미)' 카테고리의 다른 글
스프링부트 Service단에 대한 테스트코드 개발 (0) | 2024.10.24 |
---|---|
AWS EC2에서 mysql RDS 접속 (0) | 2024.10.23 |
AWS RDS (MySQL) 생성 및 설정 값 세팅 (0) | 2024.10.21 |
ToDo 관리 (연습용) -- (1) (1) | 2024.10.09 |
github 연동 및 AWS 서비스 올리기 (0) | 2024.10.06 |