[Spring&AWS][7-1] AWS에 데이터베이스 환경을 만들어보자 (AWS RDS)

kiteB·2022년 3월 23일
0

Spring-AWS

목록 보기
12/13
post-thumbnail

이 글은 책 「스프링 부트와 AWS로 혼자 구현하는 웹 서비스」를 공부하고 정리한 글입니다.

오늘은 AWS의 데이터베이스 서비스인 RDS를 생성하고 설정해보도록 하겠다.


[ AWS RDS ]

웹 서비스의 백엔드를 다룬다고 했을 때 애플리케이션 코드를 작성하는 것만큼 중요한 것이 데이터베이스를 다루는 것이다.

오늘은 데이터베이스를 구축하고 지난 시간에 만든 EC2 서버와 연동해보자!

하지만 직접 데이터베이스를 설치하는 것은 아니다. 직접 데이터베이스를 설치해서 다루게 되면 모니터링, 알람, 백업, HA 구성 등을 모두 직접 해야하므로 처음 구축할 때 며칠이 걸릴 수도 있기 때문이다.

AWS에서는 앞에서 언급한 작업을 모두 지원하는 관리형 서비스RDS(Relational Database Service)를 제공한다. RDSAWS에서 지원하는 클라우드 기반 관계형 데이터베이스로, 하드웨어 프로비저닝, 데이터베이스 설정, 패치 및 백업과 같이 잦은 운영 작업을 자동화하여 개발자가 개발에 집중할 수 있게 지원하는 서비스이다.

추가로 조정 가능한 용량을 지원하여 예상치 못한 양의 데이터가 쌓여도 비용만 추가로 내면 정상적으로 서비스가 가능하다는 장점도 있다. 이러한 RDS를 이용하여 나만의 데이터베이스 환경을 구축해보자!


[ RDS 인스턴스 생성하기 ]

✅ RDS 인스턴스 생성하기

  • RDS 대시보드에서 [데이터베이스 생성] 선택하기

  • MariaDB 선택하기

📌 MariaDB를 추천하는 이유는 다음과 같다.

  • 가격
    • 상용 데이터베이스인 오라클, MSSQL이 오픈소스인 MySQL, MariaDB, PostgreSQL 보다 동일한 사양 대비 가격이 더 높다.
  • Amazon Aurora(오로라) 교체 용이성
    • Amazon Aurora는 AWS에서 MySQL과 PostgreSQL을 클라우드 기반에 맞게 재구성한 데이터베이스이다.
    • Amazon Aurora는 성능이 뛰어나고 AWS에서 직접 엔지니어링한다는 점에서 클라우드 서비스에서 가장 적합한 데이터베이스인데, 시작하는 단계에서는 선택하기 어렵다.(프리티어 대상 ❌)

정리하자면, Amazon Aurora를 처음부터 시작하는 것보다는 Amazon Aurora로 교체가 가능하고 가격도 저렴한 MariaDB로 시작하는 것이 더 좋기 때문이다.

✅ 참고 | MariaDB란?

MariaDBMySQL을 기반으로 만들어졌기 때문에 쿼리를 비롯한 전반적인 사용법이 MySQL과 유사하다.
MariaDB는 MySQL 대비 다음과 같은 장점이 있다.

  • 동일 하드웨어 사양으로 MySQL보다 향상된 성능
  • 좀 더 활성화된 커뮤니티
  • 다양한 기능
  • 다양한 스토리지 엔진

이어서 설정을 마무리 해보자.

  • DB 인스턴스마스터 사용자 정보 등록하기

  • 스토리지 설정

  • 퍼블릭 액세스 가능 체크하기

    이렇게 하면 RDS 생성이 끝난다!


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

RDS를 처음 생성하면 몇 가지 설정을 필수로 해야 한다.

  • 타임존
  • Character Set
  • Max Connection

✅ 파라미터 그룹 생성

  • RDS 대시보드 왼쪽 카테고리에서 파라미터 그룹 선택

  • 파라미터 그룹 생성 클릭

  • 생성한 MariaDB와 같은 버전으로 DB 엔진 선택 후 생성 클릭하기

  • 생성 완료 후 해당 파라미터 그룹 클릭하기

  • 오른쪽 상단에 파라미터 편집 클릭해서 편집 모드로 전환하기

다음과 같이 나타난다.


✅ 타임존 설정 변경하기

time_zone 검색 후 Asia/Seoul 선택하기


✅ Character Set 설정 변경하기

character 항목들은 utf8mb4로, collation 항목은 utf8mb4_general_ci로 변경하기

  • character_set_client
  • character_set_connection
  • character_set_database
  • character_set_filesystem
  • character_set_results
  • character_set_server
  • collation_connection
  • collation_server

utf8은 이모지를 저장할 수 없지만, utf8mb4는 이모지를 저장할 수 있어서 보편적으로 utf8mb4를 많이 사용한다.


✅ Max Connection 설정 변경하기

RDS의 Max Connection인스턴스 사양에 따라 자동으로 정해진다. 현재 프리티어 사양으로는 약 60개의 커넥션만 가능해서 좀 더 넉넉한 값인 150으로 늘려준다.

모든 설정을 끝낸 뒤 오른쪽 상단의 변경 사항 저장을 클릭하면 된다.


✅ 생성된 파라미터 그룹을 데이터베이스에 연결하기

  • 생성한 RDS 체크한 뒤 수정 클릭하기

  • 옵션 항목에서 DB 파라미터 그룹을 방금 생성한 신규 파라미터 그룹으로 변경하기 (원래는 default로 설정되어 있다.)

  • 반영 시점을 즉시 적용으로 바꾼 뒤 저장하면 끝!
profile
🚧 https://coji.tistory.com/ 🏠

0개의 댓글