[Spring] JPA 와 AWS RDS 연동하기

김진성·2021년 12월 9일
2

Spring

목록 보기
4/10

기존 Spring JPA를 설정하는 방법 중에 다양한 방법이 있는데 기존 AWS 로 연동을 한다면 어떻게 할지 간단하게 설명하도록 하겠다.

  • AWS RDS에서 데이터베이스 생성을 누른 후 빠르게 생성하기로 설정한다음 MariaDB 생성하기
  • 근데 여기서 생성한 다음 퍼블릭 엑세스를 "아니오" -> "예"로 수정해줘야 접근이 가능하다.

기본 세팅

Spring gradle에 의존성 추가하기

runtimeOnly 'org.mariadb.jdbc:mariadb-java-client' // MariaDB
implementation group: 'org.mariadb.jdbc', name: 'mariadb-java-client', version: '2.4.0'

application.yml 설정하기

spring:
    datasource:
        url: jdbc:mariadb://엔드포인트:포트/db이름
        username: db계정
        password: db계정 비밀번호
        driver-class-name: org.mariadb.jdbc.Driver

    jpa:
        hibernate:
            ddl-auto: none

주의할 점

오류 1 : 데이터베이스가 존재하지 않습니다.

  • 이 경우 AWS RDS를 생성하면 Name이 database-1의 형식으로 될때가 많은데 이 때 db이름을 언더바로 url 설정해주면 된다.

오류 2 : 'url' attribute is not specified and no embedded datasource could be configured.

  • application.properties나 application.yml이 제대로 설정되었는지 확인해야 한다.

오류 3 : Factory method 'dataSource' threw exception; nested exception is java.lang.IllegalStateException: Cannot load driver class: org.mariadb.jdbc.Driver

  • 이 때는 gradle이나 maven 설정이 잘 되었는지 확인하는 것이 중요하다.
  • 나 같은 경우 gradle에 implementation으로 해야하는데 compile로 되어있어 오류가 발생했다.

오류 4 : dataSourceScriptDatabaseInitializer' defined in class path resource

  • 메인 함수 위에 아래의 Annotation을 달아놓으면 된다.
  • 근데 실제 Rest API를 생성하고 DB 연결을 하려면 이 문구는 삭제해야 한다.
@EnableAutoConfiguration(exclude = {DataSourceAutoConfiguration.class})
profile
https://medium.com/@jinsung1048 미디엄으로 이전하였습니다.

0개의 댓글