Chef.Yeon
Code Cook
Chef.Yeon
전체 방문자
오늘
어제
  • 분류 전체보기 (230)
    • 게임 개발 (1)
      • Unity (1)
    • Android (27)
      • Kotlin (19)
      • 우아한테크코스 5기 (4)
    • Language (11)
      • 파이썬 (3)
      • Java (7)
    • DB (2)
      • SQL (16)
    • Spring (25)
    • 코딩테스트 (56)
    • Git (1)
    • TIL (85)
    • DevOps (6)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • MariaDB
  • java
  • 레포지토리
  • spring
  • grafana
  • Wil
  • 에라토스테네스의 체
  • webflux
  • 백준
  • kotlin
  • enum
  • 프로그래머스
  • til
  • ec2
  • 안드로이드
  • 코딩테스트
  • 코틀린 인 액션
  • SQL
  • Docker
  • 다이나믹 프로그래밍
  • rsocket
  • elasticsearch
  • 코틀린
  • 우아한테크코스
  • 파이썬
  • 프리코스
  • kibana
  • Android
  • 내림차순
  • 문자열

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Chef.Yeon

Code Cook

Spring

[Spring] AWS RDS MariaDB 생성 및 SpringBoot 프로젝트 연동

2023. 5. 8. 07:35

AWS RDS MariaDB를 생성해 스프링 부트와 연동해보자.

 

1. AWS RDS MairaDB 생성

 

데이터베이스 생성 버튼을 클릭하고 MariaDB를 선택한다.

 

템플릿은 프리티어, 식별자는 원하는대로 작성하면 되고, 마스터의 사용자 이름과 비밀번호도 원하는대로 설정한다.

 

20GB까지 무료이므로 변경해주고, 스토리지 자동 조정 활성화를 꺼준다.

 

외부에서 DB에 접근이 가능하도록 하기 위해 퍼블릭 액세스 부분은 '예'로 변경했다.

 

추가 구성을 열어, 초기 데이터베이스를 생성해주었다. 자동 백업 활성화는 비활성화 해주었다. (필자는 혹시 몰라 보존기간 0일, 스냅샷으로 태그 복사를 비활성화 한 뒤 자동 백업을 비활성화 시켰다.)

 

마이너 버전 자동 업그레이도도 비활성화 해주었다.

 

이제 데이터베이스를 생성하면 된다. 상태가 사용 가능이 될 때까지 기다려야 한다.

 

사용 가능 상태가 되고, DB 식별자를 클릭하면 DB 접속을 위한 정보를 확인할 수 있다.

 

하단의 보안 그룹 규칙에서 보안 그룹을 클릭하면 다음과 같은 창이 나온다. 여기서 보안 그룹 ID를 클릭한다.

 

인바운드 규칙 편집을 클릭한다.

 

다음과 같이 MYSQL/Aurora 유형의 규칙을 추가한다.

모든 곳에서 접근할 수 있도록 해두었다.

 

2. 파라미터 그룹 설정

RDS는 다음 세가지를 설정해주어야 한다

  • Time Zone
  • Character Set
  • Max Connection

 

생성한 파라미터 그룹을 클릭해 상세 페이지로 이동하고, 파라미터 편집을 클릭해 편집 모드로 바꿔준다.

time_zone을 검색해 Asia/Seoul로 변경한다.

 

character_set 을 검색하고, 다음의 값을 모두 utf8mb4로 변경한다.

• character_set_client
• character_set_connection
• character_set_database
• character_set_filesystem
• character_set_results
• character_set_server

 

colleation을 검색하고, 다음의 값을 모두 utf8m64_general_ci로 변경한다.

• collation_connection
• collation_server

 

빨갛게 표시한 파라미터는 MariaDB에서만 RDS 파라미터 그룹으로는 변경이 안된다고 한다. 그래서 HeidiSQL에서 접속한 후, 직접 다음 쿼리를 수행해주었다.

alter database DB이름 character set utf8 collate utf8_general_ci;

 

이제 파라미터를 적용시켜 주자.데이터베이스 탭으로 이동해 수정할 데이터베이스를 클릭하고 수정 버튼을 누른다.

 

추가 구성을 열어서 데이터베이스 옵션의 DB 파라미터 그룹을 방금 생성한 파라미터 그룹으로 변경하고, 가장 하단의 계속을 클릭한다. 즉시 적용을 클릭하고, DB 인스턴스 수정을 클릭한다.

 

3. HeidiSQL 접속

세션을 하나 추가해서 호스트명/IP에 엔드포인트를 입력하고, 사용자와 암호는 DB를 생성하면서 입력했던 것을 입력한다.

 

초기에 생성한 데이터베이스 'project'가 있다. 잘 연결된 것을 확인할 수 있다.

 

4. 스프링부트 연동

application-secret.yml 파일에서 다음과 같이 DB 정보를 입력해준다.

필자는 초기 데이터베이스인 'project'를 생성했으므로 데이터베이스명에 project를 넣어주었다.

spring:
  datasource:
    url: jdbc:mariadb://엔드포인트:3306/데이터베이스명
    username: 마스터사용자이름
    password: 마스터사용자비밀번호
    driver-class-name: org.mariadb.jdbc.Driver

 

application.yml 파일에서는 profiles include 해주면 된다.

spring:
  profiles:
    include: secret
  jpa:
    database-platform: org.hibernate.dialect.MariaDB103Dialect
    properties:
      hibernate:
        globally_quoted_identifiers: 'true'
        format_sql: true
  messages:
    encoding: UTF-8

logging.level:
  org.hibernate.SQL: debug

 

서버를 실행하고 PostMan으로 확인해봤다.

 

테이블도 확인해보면 잘 저장된 것을 볼 수 있다.

 

5. EC2에서 접속

$ mysql -u 마스터유저이름 -p --host 엔드포인트

Enter password: 마스터유저비밀번호

show databases; 를 입력하면 초기 데이터베이스로 생성한 'project'가 있는 것을 볼 수 있다.

 

 

728x90

'Spring' 카테고리의 다른 글

[Spring] EC2 Connection Time 지정  (0) 2023.05.08
[Spring] SpringBoot EC2에서 AWS RDS MariaDB 연동 및 배포  (2) 2023.05.08
[Spring] AWS RDS MariaDB + Spring Boot, Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8mb4_unicode_ci,COERCIBLE) for operation '=' 해결  (0) 2023.05.08
[Spring] @Valid 메시지 message properties 사용하기, 한글 깨짐 해결  (0) 2023.04.27
[Spring] @Valid @ControllerAdvice와 @ExceptionHandler 사용한 전역 예외 처리  (0) 2023.04.25
    'Spring' 카테고리의 다른 글
    • [Spring] EC2 Connection Time 지정
    • [Spring] SpringBoot EC2에서 AWS RDS MariaDB 연동 및 배포
    • [Spring] AWS RDS MariaDB + Spring Boot, Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8mb4_unicode_ci,COERCIBLE) for operation '=' 해결
    • [Spring] @Valid 메시지 message properties 사용하기, 한글 깨짐 해결
    Chef.Yeon
    Chef.Yeon
    보기 좋고 깔끔한 코드를 요리하기 위해 노력하고 있습니다.

    티스토리툴바