좌선
좌선의 개발일지
좌선
전체 방문자
오늘
어제
  • 분류 전체보기 (79)
    • 개발환경 (3)
    • 알고리즘 (10)
      • 코딩테스트 (9)
      • 알고리즘 (1)
    • Java (54)
      • JPA (6)
      • Spring (5)
      • SpringBoot (15)
    • Network (2)
    • Database (1)
    • Git (2)
    • & (1)
    • Exception (3)
    • Study (0)
      • RealMySQL (0)
    • 회고 (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • dirtychecking
  • 더티체킹
  • TDD 실천법과 도구
  • 자바 웹을 다루는 기술
  • Spring
  • 코드로배우는스프링웹프로젝트
  • 스프링부트
  • 자바웹을다루는기술
  • 다트게임
  • 쿼리로그
  • AWS
  • 스프링 부트와 AWS로 혼자 구현하는 웹 서비스
  • 머스테치
  • Mustache
  • SpringBoot
  • 테스트주도개발
  • programmers
  • 스프링부트와 AWS로 혼자 구현하는 웹 서비스
  • Spring Data JPA
  • 프로그래머스

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
좌선

좌선의 개발일지

[SpringBoot] AWS 데이터베이스 환경 구축 - AWS RDS (MariaDB)
Java/SpringBoot

[SpringBoot] AWS 데이터베이스 환경 구축 - AWS RDS (MariaDB)

2021. 8. 1. 11:47

스프링부트 실습 Chapter07 AWS에 데이터베이스 환경을 만들어보자 - AWS RDS

이동욱 作 '스프링 부트와 AWS로 혼자 구현하는 웹 서비스'

 

 

 

🔎 RDS(Relational Database Service)

AWS에서 지원하는 클라우드 기반 관계형 데이터베이스이다.

하드웨어 프로비저닝, 데이터베이스 설정, 패치 및 백업과 같이 잦은 운영 작업을 자동화하여 개발자가 개발에 집중할 수 있게 지원하는 서비스이다.

 

 

 

 

 

 

👉 RDS 인스턴스 생성

 

 

검색창에 rds 입력 후 RDS 대시보드에서 데이터베이스 생성 버튼 클릭

 

 

 

 

 

 

 

 

✅ DBMS 선택

 

표준 생성 - MariaDB

 

🔎 왜 MariaDB?

 

가격

RDS의 가격은 라이센스 비용 영향을 받는다.

상용 데이터베이스인 오라클, MSSQL이 오픈소스인 MySQL, MariaDB, PostgreSQL보다는 동일한 사양 대비 더 가격이 높다.

 

Amazon Aurora(오로라) 교체 용이성

Amazon Aurora

AWS에서 MySQL과 PostgreSQL을 클라우드 기반에 맞게 재구성한 데이터베이스이다.

RDS MySQL 대비 5배, RDS PostgreSQL 보다 3배의 성능을 제공한다.

또한 AWS에서 직접 엔지니어링하고 있기 때문에 계속해서 발전하고 있다.

클라우드 서비스에 가장 적합한 데이터베이스이기 때문에 많은 회사가 Amazon Aurora를 선택한다.

따라서 호환 대상인 MariaDB를 선택하는 것!

처음부터 Aurora를 선택하기엔 가격이 부담스럽기 때문에 차후 서비스 규모가 일정 규모 이상 커진 후에 이전하면 된다.

 

 

 

 

 

 

 

 

✅ 사용 사례 선택

 

버전(MariaDB 10.4.13) 기억해두기

밑에 파라미터 그룹 생성할 때 같은 버전대로 맞춰야함!

템플릿 - 프리티어 선택

 

 

 

 

 

 

 

✅ 스토리지

 

할당된 스토리지 - 20 GiB

 

 

 

 

 

 

 

✅ 상세 설정

 

DB 인스턴스 이름과 사용자 정보를 등록

여기서 사용된 사용자 정보로 실제 데이터베이스에 접근하게 되니 메모해두기!

 

 

 

 

 

 

✅ 네트워크 및 보안

 

퍼블릭 액세스 '예' 체크

 

 

 

 

 

 

✅ 데이터베이스 옵션

 

데이터베이스 이름 설정하기

 

 

 

 

 

 

✅ 데이터베이스 생성 !

 

 

 

 

 

 

👉 RDS 운영환경에 맞는 파라미터 설정하기

 

타임존 / Character Set / Max Connection 설정하기

 

 

파리미터 그룹 탭 클릭

 

 

 

 

 

 

 

파라미터 그룹 생성 클릭

 

 

 

 

 

 

아까 위에서 설정한 버전으로 맞춰주기

ex) mariadb10.4.xx -> mariadb10.4

 

 

 

 

 

 

생성된 걸 확인할 수 있다.

해당 파라미터 그룹 이름을 클릭!

 

 

 

 

 

 

 

수정 버튼 클릭

 

 

 

 

 

 

 

이제 변경해야 할 값들을 변경해보자!

 

✅ time_zone

 

값에 Asia/Seoul 입력

 

 

 

 

 

 

✅ Character Set 변경

 

Character-set-server

Character-set-results

Character-set-filesystem

Character-set-database

Character-set-connection

Character-set-client

 

전부 값에 utf8mb4 입력

utf8은 이모지 사용 X

utf8mb4 이모지 저장가능

 

✅ collation_ 변경

 

collation_server

utf8mb4_unicode_ci

 

collation_connection

utf8mb4_general_ci

 

 

 

 

 

 

 

 

✅ Max Connection

 

현재 프리티어 사양으로는 약 60개의 커넥션만 가능하기 때문에

좀 더 넉넉한 값으로 지정한다. 값 150으로 설정

 

 

 

 

 

 

 

하단 계속 버튼 클릭

 

 

 

 

 

 

 

수정 사항 확인 후 하단에 변경 사항 적용 버튼 클릭

 

 

 

 

 

 

👉 파라미터 그룹을 데이터베이스에 연결하기

 

 

데이터베이스 탭에서 해당 데이터베이스 선택 후 수정 버튼 클릭

 

 

 

 

 

 

 

밑으로 내려서 DB 파라미터 그룹 변경해주기

기존에 default에서 방금 생성한 신규 파라미터 그룹으로 변경 후 하단 계속버튼 클릭

 

 

 

 

 

 

 

즉시 적용 후 DB 인스턴스 수정하기

 

💡 예약된 다음 유지 관리 기간에 적용

- 새벽 시간대에 진행. 수정사항이 반영되는 동안

데이터베이스가 작동하지 않을 수 있으므로

예약 시간을 걸어두라는 의미.

지금은 서비스가 오픈되지 않았으니까 즉시 적용으로!

 

 

 

 

 

 

간혹 파라미터 그룹이 제대로 반영되지 않을 때가 있으므로 재부팅 한번 해주기!

 

 

 

 

 

 

👉 내 PC에서 RDS로 접속해 보기

 

 

 

RDS 세부정보 페이지에서 보안그룹 항목 클릭 

 

 

 

 

 

 

 

보안 그룹 목록 중 EC2에 사용된 보안 그룹의 그룹 ID복사 해준다. (드래그 되어있는 거 복사)

그리고 아까 rds 보안그룹에 (나는 default.... 어쩌구) 들어가준다. (해당 보안그룹 ID 클릭하면 들어가짐)

 

 

 

 

 

 

작업 - 인바운드 규칙 편집

 

 

 

 

 

 

 

규칙 추가 버튼 눌러서

보안 그룹 ID와 본인의 IP를 인바운드로 추가하기

 

첫번째 줄 : 현재 내 PC의 IP를 등록한다.

 

두번째 줄 : EC2의 보안그룹을 추가한다.

- 이렇게 하면 EC2와 RDS간의 접근이 가능해진다.

- EC2의 경우 이후에 2대 3대가 될 수도 있는데, 매번 IP를 등록할 수는 없으니,

보편적으로 이렇게 보안 그룹 간에 연동을 진행한다.

 

 

 

 

 

 

👉 Database 플러그인 설치 (인텔리제이)

 

 

RDS 정보 페이지에서 엔드 포인트 확인

엔드포인트가 접근 가능한 URL이다

 

 

 

 

 

 

 

인텔리제이에서 Database Navigator 설치 후 재시작하기

 

 

 

 

 

 

재시작 후 Action 검색창에 Database Browser 검색하기

Action 검색 단축키 | Ctrl + Shift + a

 

 

 

 

 

 

추가하게 되면 왼쪽 사이드바에 DB Browser가 노출된다.

MySQL을 추가해준다.

 

 

 

 

 

빈 값들을 다 채워준다.

Host에는 아까 복사해뒀던 엔드포인트를 넣어주면된다.

User와 Password는 위에서 설정해줬던 값들을 입력해주면된다.

 

나는 왜인지 여기서 위와같은 Communications link failure 오류가 나서..

그냥 다른 툴을 사용하기로 했다.....

참고 | https://github.com/jojoldu/freelec-springboot2-webservice/issues/674

 

 

 

 

    'Java/SpringBoot' 카테고리의 다른 글
    • [SpringBoot]EC2 서버에 프로젝트를 배포해 보자
    • [SpringBoot] EC2에서 RDS에서 접근 확인
    • [SpringBoot] AWS 서버 환경 - AWS EC2 설정하기
    • [SpringBoot] 스프링부트 구글 로그인 연동하기
    좌선
    좌선
    얼렁뚱땅 천방지축 굴러가는 개발자의 삶

    티스토리툴바