흰 스타렉스에서 내가 내리지

스프링 부트 프로젝트로 RDS 접근하기, RDS 설정 본문

AWS

스프링 부트 프로젝트로 RDS 접근하기, RDS 설정

주씨. 2023. 1. 20. 21:07
728x90

JPA가 사용될 엔티티 테이블과 스프링 세션이 사용될 테이블 2가지 종류를 생성하자.

 

JPA가 사용할 테이블은 테스트 코드 수행 시 로그로 생성되는 쿼리를 사용.

 

스프링 세션 테이블은 schema-mysql.sql 파일에서 확인한다.

FIle 검색 [Command+Shift+O]

schema-mysql.sql 에서 긁어와서 RDS에 적용

 

스키마 생성확인

 

 

build.gradle 에 mariaDB 의존성 추가

implementation 'org.mariadb.jdbc:mariadb-java-client'

 

서버에서 구동될 환경을 하나 구성한다.

application-real.yml 파일을 생성한다.

여기에는 실서버의 mariaDB 정보가 들어간다.

application-real.yml 로 파일을 만들면, profile=real인 환경이 구성된다고 보면 된다. 

spring:
  profiles:
    include: oauth, real-db
  jpa:
    properties:
      hibernate:
        dialect: org.hibernate.dialect.MySQL5InnoDBDialect
  session:
    store-type: jdbc

 

 

EC2설정

OAuth와 마찬가지로 RDS 접속 정보도 보호해야 할 정보이니 EC2 서버에 직접 설정 파일을 둔다. 

application-real-db.yml 생성

application-real-db.yml

민감정보이니 gitignore에 추가해놓는 것 필수

이떄 주의할점은, 데이터베이스이름이 RDS의 DB Identifier가 아니라, 데이터베이스 이름이다 진짜.

 

spring.jpa.hibernate.ddl-auto : none 

- jpa로 테이블이 자동 생성되는 옵션을 none으로 지정한다.

- RDS에는 실제 운영으로 사용될 테이블이니 절대 스프링 부트에서 새로 만들지 않도록 해야 한다.

- 이 옵션을 하지 않으면 자칫 테이블이 모두 새로 생성될 수 있다. 

- 주의해야 하는 옵션이다.

 

ec2 서버에 접속해서 실제로 application-real-db.yml 생성하고 deploy.sh 에 설정파일 추가 

드래그한 부분 추가

-Dspring.profiles.active=real

- application-real.yml 을 활성화시킨다.

- application-real.yml의 spring.profiles.include=oauth,real-db 옵션 때문에 real-db 역시 함께 활성화 대상에 포함된다., 

 

이제 ./deploy.sh 를 통해 배포를 해보자.

 

curl localhost:8080

위 명령어로 정상 수행되는지 체크해보자.