카테고리 없음

[AWS RDS] 외부에서 AWS RDS 연결하기(STS, Eclipse,MariaDB)

그릿GRIT 2021. 6. 5. 00:23
728x90

* 참 고 *

가입후 1년간 무료로 사용할 수 있는 프리티어를 활용한다.*

 

 

* 상 황 *

1. 조원 4명이 서로 다른 공간에서 하나의 DB를 공유해서 사용하고자 한다.

2. 테스트용 개발이기 때문에 무료로 사용하고자 한다.

1. AWS 접속, 데이터베이스생성

 

  • 계정이 없다면 계정을 만들어준다.
  • 지역을 서울로 설정해준다.

  • 검색창에 RDS를 조회해서 클릭한다.
  • 데이터베이스 생성을 클릭한다.

  • MariaDB를 선택한다.

  • 일정 한도내에서 무료로 사용할 예정이기에 프리 티어를 선택한다.

  • 어떤 용도의 DB인스턴스인지 알아볼 수 있도록 식별자를 설정한다. 마스터 사용자이름, 마스터 암호를 설정한다.

  • 임계값이 초과해도 스토리지가 자동으로 늘어나지 않도록 체크해제한다.
  • 나머지 설정은 기본설정 그대로 두었다.

  • 퍼블릭 액세스 가능을 선택한다.(Yes)
  • VPC 보안그룹을 새로 생성했다.
  • 그룹 이름은 알아서 설정해주면 된다.
  • 데이터베이스 포트번호는 3306으로 default로 설정되어 있다.

  • 데이터베이스 이름을 설정해준다.
  • 자동 백업 활성화는 체크를 해제했다.(No)
  • 삭제방지 활성화를 체크했다.

  • 데이터베이스 생성을 클릭해서 데이터베이스를 만들어준다.

  • 기다리면 상태가 사용가능으로 바뀌게 된다.
  • EC2 생성에 비해 시간이 오래 걸리니 참고하도록 하자. 10분정도 걸리는 듯하다.

 

2. RDS 운영환경 설정

RDS 생성시 타임존, Character Set, Max Connection 설정을 해줘야 한다.

파라미터 그룹

  • 좌측 탭에서 파라미터 그룹을 클릭
  • 파라미터 그룹생성을 클릭

  • 그룹 이름과 설명을 넣어주고 생성을 클릭

  • 파라미터 그룹이 생성되었다.
  • 방금 생성한 파라미터 그룹을 클릭
  • 우측 상단에 파라미터 편집 클릭

 

-타임존 설정-

time_zone 검색 후 time_zone에 해당하는 값을 Asia/Seoul로 선택

-문자열 셋 설정-

문자열 셋 설정 항목들을 검색하여 설정한다

  • utf8 로 설정(5개)
    • character_set_client
    • character_set_connection
    • character_set_database
    • character_set_filesystem
    • character_set_results
  • utf8_general_ci 로 설정(2개)
    • collation_connection
    • collation_server

 

  • 설정이 완료되었다면 변경 사항 저장 클릭


3. 파라미터 그룹과 DB인스턴스 연결

  • 좌측에 데이터베이스 탭 클릭
  • DB선택
  • 수정 클릭

  • 파라미터 그룹을 우리가 수정한 파라미터 그룹으로 선택

  • 즉시적용 선택
  • DB인스턴스 수정 클릭

4. RDS 보안설정

  • 다시 좌측 데이터 베이스 탭 클릭
  • 해당 DB식별자를 클릭

  • 연결&보안 클릭
  • VPC 보안 그룹 클릭

  • 현재 내 PC에서만 접속이 가능하도록 보안이 설정 되어있다.
  • 어디에서든 접속이 가능하도록 수정해보자
  • 인바운드 규칙 편집을 클릭한다.

  • 인바운드 규칙 내부 소스에서 위치무관으로 설정을 바꾸고 규칙저장을 누르자.

  • 인바운드 규칙 설정이 잘 변경된 것을 확인할 수 있다.

5. Eclipse 혹은 STS 접속하기

  • STS에서 DB연결 테스트를 하도록 하겠다.
  • 프로젝트에서 마우스오른쪽 -> Spring -> Add Starters를 클릭한다.

  • MariaDB Driver를 체크하고 Next를 눌러준다.

  • pom.xml에 아래처럼 dependency가 잘 들어가 있는 것을 확인 할 수 있다.

 

  • 혹시 들어가지 않았다면 아래 코드를 복사해서 dependencies태그 안에 붙여넣기를 바란다.
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>

<dependency>
<groupId>org.mariadb.jdbc</groupId>
<artifactId>mariadb-java-client</artifactId>
<scope>runtime</scope>
</dependency>

 

  • application.properties 파일로간다.
  • 아래내용을 application.properties에 추가한다.
  • 마스터 사용자 이름과 비밀번호는 위에서 데이터베이스 만들때 설정했었다.
  • 엔드포인트를 찾는 방법은 아래에서 알아본다.
spring.datasource.driverClassName=org.mariadb.jdbc.Driver
spring.datasource.url=jdbc:mariadb://엔드포인트/초기데이터베이스이름
spring.datasource.username=마스터사용자이름
spring.datasource.password=마스터사용자비밀번호
logging.level.org.hibernate=info
spring.jpa.database-platform=org.hibernate.dialect.MariaDB103Dialect

  • 엔드포인트를 찾으러 가본다.
  • 데이터베이스 -> 해당 DB식별자 클릭

  • 연결&보안을 클릭하면 엔드포인트를 확인할 수 있다.
  • 해당 엔드포인트를 복사해서 아래 엔드포인트에 넣는다.
  • 초기데이터 베이스이름은 처음에 데이터 베이스 만들때 설정했었다.  해당 데이터베이스 이름을 넣으면 된다.
 spring.datasource.url=jdbc:mariadb://엔드포인트/초기데이터베이스이름

  • SpringBoot를 시작해본다.

  • 테스트를 위해서 VO를 몇개 넣어놨는데 잘 연결되어 테이블을 만드는 것을 확인 할 수 있다.

이상으로 포스팅을 마치겠다.

 

*참고*

https://hoonmaro.tistory.com/53 - 훈마루의보물창고

https://youtu.be/MxjhHqU0Y7k - 동빈나 유튜브