Spring Boot 를 AWS 로 배포해보자.
PRJ : Spring Boot (java17)
배포 : Elastic Beanstalk
DB : RDS (MySQL) Elastic Cache Redis
CI/CD : GithubAcations
이전 포스팅에서
Elastic Beanstalk 환경을 구성하고 샘플 애플리케이션 페이지 접속까지 성공적으로 마쳤다.이제 데이터 베이스를 설정해보자.
💡 RDS
Elastic Beanstalk -> 환경 -> 구성 에서 네트워킹 및 데이터베이스 에 구성된 옵션이 없다.편집 을 클릭해준다.스크롤을 조금 아래로 내려서 위와 같이(혹은 프로젝트 환경과 같이) 세팅을 해준다.
데이터베이스 활성화를 시킨다.
엔진,엔진 버전,인스턴스 클래스를 설정한다.
db.t2.micro는 프리티어다.
사용자 이름,암호는 추후 프로젝트와 디비를 연결할 때 사용한다.
다른 설정은 해주지 않았다.
위와 같이 설정 후
적용설정이 완료되는데까지 시간이 꽤 걸린다.
다시
Elastic Beanstalk -> 환경 -> 구성 -> 네트워킹 및 데이터베이스 -> 편집 으로 들어가면 엔드포인트가 생긴 것을 확인할 수 있다.엔드포인트가 위보다 길다면 설정이 더 빨리 끝났다는 것이다.
끝에
~com:3306 으로 되어있을텐데,: 을 기준으로 앞이 host, 뒤가 port 다.엔드포인트
링크를 클릭해 이동한다.DB 인스턴스 (1/40) 클릭연결 및 보안에서 엔드포인트를 확인할 수 있다.
~xxx.northeast-2.rds.amazonaws.com는host
포트는port가 된다. (3306)
다시
Elastic Beanstalk -> 환경 -> 구성 으로 이동 후스크롤을 내리면
업데이트, 모니터링 및 로깅 이 있다.편집 클릭위와 같이
환경 속성 을 설정해준다.RDS_HOSTNAME: 위의 엔드포인트 (~xxx.rds.amazonaws.com까지)
RDS_PORT: 3306 (엔드포인트 맨 뒤에 숫자 4개3306)
RDS_USERNAME: 연결할 아이디 작성
RDS_PASSWORD: 연결할 패스워드 작성
RDS_DB_NAME: ebdb (ebdb고정)
오탈자를 잘 확인하자, 다 작성했다면
적용 클릭데이터 베이스로 이동하자.
RDS -> 데이터 베이스 -> DB 식별자 에서 아까 생성한 DB를 클릭보안을 설정해줘야한다.
VPC 보안 그룹 아래 그룹 링크 클릭보안 그룹에서
Security group ID 탭을 클릭하면 인바운드 규칙을 설정할 수 있다.인바운드 규칙 편집 클릭기존의 설정은 지우고, 유형을
MYSQL/Aurora 소스 Anywhere-IPv4 로 설정한다.규칙을 저장했다면 연결을 해보자.
스프링 부트에 의존성 추가
# build.gradle implementation 'mysql:mysql-connector-java:8.0.27'
💡 DBeaver Connection
데이터 베이스 도구로
DBeaver 를 사용하지만 다른 툴도 상관없다.데이터 베이스를
MySQL 로 설정하고 다음엔드포인트와 유저 정보를 입력해준다.
아까 설정한 환경 속성과 같은 값이다.
- Server Host :
~xxx.rds.amazonaws.com까지 (RDS_HOSTNAME)
- Port :
3306(RDS_PORT)
- Database :
ebdb(RDS_DB_NAME)
- Username :
RDS_USERNAME
- Password :
RDS_PASSWORD
위와 같이 작성해준다.
Test Connection ... 클릭연결에 성공했다.
💡 IntelliJ Connection
플러그인
Database Navigator 를 설치한다.DB Browser 가 생길텐데 MySQL 디비를 새로 추가해주자.이후 연결은 똑같다.
엔드포인트와 유저 정보를 입력해준다.
아까 설정한 환경 속성과 같은 값이다.
- Server Host :
~xxx.rds.amazonaws.com까지 (RDS_HOSTNAME)
- Port :
3306(RDS_PORT)
- Database :
ebdb(RDS_DB_NAME)
- Username :
RDS_USERNAME
- Password :
RDS_PASSWORD
위와 같이 작성해준다.
Test Connection 클릭연결 성공!!
기존
application.yml 을 설정해준다.주석된 부분이 기존 설정.
${RDS....} 을 통해 Elastic Beanstalk 에 설정한 환경 속성 값을 읽어온다.![[AWS] Elastic Beanstalk + Elastic Cache + GithubActions + SpringBoot CI/CD 배포하기 (2)](/_next/image?url=https%3A%2F%2Fwww.notion.so%2Fimage%2Fattachment%253Aa65dbe2e-9cd6-403a-8e20-a7dc952bb2bf%253A20250825_2218_3D_AWS_Logo_Banner_simple_compose_01k3gp1xf2ehht45car66ryf8v.png%3Ftable%3Dblock%26id%3D25aa12d0-8f8e-808d-a593-e0a52f2839e3%26cache%3Dv2&w=3840&q=75)