Post

RDS 프리티어로 사용하기

🎬 Intro

RDS를 프리티어로 사용하는 방법에 대해 알아봅시다.

✅ RDS

  • RDS는 AWS에서 제공하는 관리형 데이터베이스(RDB) 입니다.
  • MySQL, PostgreSQL, MariaDB, Oracle, SQL Server 등 다양한 관계형 데이터베이스를 제공합니다.
  • 자동화 기능에는 유지보수(유료), 백업(유료), 복구(유료), 삭제방지(무료)등이 있습니다. 유료 기능을 사용하여 고가용성을 보장할 수 있습니다.
  • 프리티어의 경우 한달에 750시간 무료사용을 제공합니다. 시간은 EC2와는 별개로 카운팅되기 때문에 프리티어를 사용중이라면 어플리케이션은 EC2 DB는 RDS를 사용하는것을 추천 드립니다.

✅ RDS 생성하기

img.png

  • 콘솔에 RDS를 검색해서 접근합니다.

img.png

  • 데이터베이스 생성을 클릭해줍니다.

img.png

  • 데이터베이스를 선택해줍니다. 저 같은 경우는 사이드프로젝트에서 MySQL을 쓰고 있기 때문에 MySQL로 선택하였습니다.

img.png

  • 엔진 버전은 사용하고자하는 버전을 선택합니다.
  • 과금 방지를 위해 RDS 확장 지원 활성화는 체크를 해제해줍니다.
  • 템플릿은 프리티어를 체크합니다.

img.png

  • DB 인스턴스 식별자에 자유롭게 인스턴스 별칭을 작성해줍니다.
  • 마스터 사용자 이름(Username)은 DB에 접속하기 위한 이름입니다.
  • 자격 증명 관리는 AWS Secrets Manager를 사용할 경우 과금이 되므로 자체 관리를 선택해줍니다.
  • 암호(Password)의 경우 원하는 암호를 작성해줍니다. 암호 자동 생성을 선택할 경우 RDS가 생성되는 시점에 만들어집니다.
  • 마스터 사용자 이름과 암호로 DB에 접속하게 됩니다.

img.png

  • db.t3.micro, db.t4g.micro를 프리티어로 제공하므로 둘 중 원하는걸로 선택합니다.

img.png

  • 과금 방지를 위해 스토리지 자동 조정 활성화를 해제합니다.

img.png

  • 현재 구동중인 EC2에 연결을 원한다면 EC2 컴퓨팅 리소스에 연결을 선택합니다. 보통 외부에서 수동으로 연결하기 때문에 EC2를 연결하지 않습니다.
  • RDS를 어떤 서브넷 그룹에 올릴지 선택합니다. 저의 경우 따로 서브넷 그룹을 만들어서 관리하지 않아 default로 선택했습니다.
  • 퍼블릭 액세스를 “예”로 체크하여 외부접근을 허용해줍니다. “아니오”를 선택할 경우 외부에서는 접근할 수 없고 동일한 서브넷(VPC)에 있는 인스턴스들만 접근이 가능합니다.
  • VPC 보안 그룹은 기존 항목 선택을 체크합니다.

img.png

  • 기존 VPC 보안 그룹은 기존에 생성해놓은 launch-wizard-1을 선택했습니다. 기존 보안 그룹에는 인바운드 규칙에 3306 포트를 설정해두었기 때문에 RDS에 3306으로 접근이 가능해집니다.
  • 포트는 MySQL에서는 관례적으로 3306을 사용합니다.

img.png

  • 태그는 필요할 경우 추가합니다.
  • 데이터베이스 인증은 암호 인증을 선택합니다.
  • 과금 방지를 위해 향상된 모니터링 활성화는 체크해제해줍니다.

img.png

  • 초기 데이터베이스 이름을 설정해줍니다. 저의 경우 사이드프로젝트의 운영 DB로 설정해주었습니다.
  • 파라미터 그룹은 기존에 생성해둔것이 없다면 default로 선택해줍니다. 파라미터 그룹은 DB의 언어, 시간등을 설정하는 옵션입니다.
  • 과금 방지를 위해 자동 백업 활성화와 암호화 활성화는 체크해제해줍니다.
  • 로그 내보내기 옵션을 사용하지 않았습니다.

img.png

  • 과금 방지를 위해 마이너 버전 자동 업그레이드 사용은 체크해제해줍니다.
  • 삭제 방지는 무료 옵션이므로 체크해줘도 무방합니다.
  • 이제 데이터베이스 생성을 해줍니다.

✅ 파라미터 그룹 생성

DB 초기 세팅을 위해 파리미터 그룹 설정이 필요합니다.

img.png

  • 좌측의 탭에서 파라미터 그룹의 탭으로 이동합니다.
  • 파라미터 그룹 생성을 클릭해줍니다.

img.png

  • 원하는 파라미터 그룹이름과 설명을 작성합니다.
  • 엔진 유형은 RDS를 MySQL로 생성했으므로 MySQL을 선택해줍니다.
  • 파라미터 그룹패밀리는 생성한 MySQL의 버전과 맞게 선택해줍니다.
  • 유형은 DB Parameter Group을 선택하고 생성해줍니다.

✅ 파라미터 그룹 적용

img.png

  • 생성한 파라미터 그룹을 클릭합니다.
  • 편집을 클릭해줍니다.

img.png

  • 위의 파라미터를 체크하고 값을 utf8mb4로 설정해줍니다.
  • 이외 collation_connection, collation_server 를 검색해서 utf8mb4_general_ci로 설정해줍니다.
  • utf8mb4는 utf8에서 🤖처럼 이모지를 허용하는 CharacterSet 입니다.
  • 이외 DB에 커넥션이 많다면 max_connections 옵션도 검색하여 설정해줍니다. 저의 경우 500으로 설정해주었습니다.

img.png img.png

  • 생성된 RDS의 수정을 클릭합니다.
  • 추가 구성탭에서 생성한 파라미터 그룹을 선택해줍니다.
  • 완료가 되었다면 제일 하단의 계속을 눌러줍니다.

img.png

  • 즉시 적용을 선택하고 수정을 완료해줍니다.

img.png

  • 변경된 파라미터 그룹을 적용하기 위해 재부팅을 해줍니다.

✅ 접속 테스트

img.png

  • Host는 엔드포인트가 됩니다.
  • Port는 RDS 생성시 설정한 3306 입니다.
  • Username은 RDS 생성시 입력한 마스터 사용자 이름 입니다.
  • Password는 RDS 생성시 입력한 비밀번호 입니다.
  • 해당 정보들로 외부에서 잘접속이 되는지 확인합니다.

✨ Summary

과금 방지를 위한 옵션

  • RDS 확장 지원 활성화 해제: 과금을 방지하기 위해 확장 지원 옵션을 비활성화합니다.
  • 스토리지 자동 조정 해제: 스토리지 자동 조정을 활성화하면 비용이 발생할 수 있으므로, 이를 해제하여 스토리지가 자동으로 증가하지 않도록 설정합니다.
  • 향상된 모니터링 비활성화: 추가 비용이 발생할 수 있는 향상된 모니터링 옵션을 비활성화합니다.
  • 자동 백업 및 암호화 비활성화: 자동 백업과 암호화는 기본적으로 유료 기능이므로, 이를 해제하여 비용을 절감합니다.
  • 마이너 버전 자동 업그레이드 비활성화: 자동 업그레이드가 활성화되면 불필요한 업그레이드로 인해 비용이 발생할 수 있으므로, 이를 비활성화합니다.
This post is licensed under CC BY 4.0 by the author.