본문 바로가기
DevOps/AWS

RDS(Relational Database Service)

by Mecodata 2024. 9. 13.

정의

- AWS에서 제공하는 관계형 데이터베이스(RDB) 서비스

- 주로 백엔드 서버와 연결할 DB를 생성하고 관리하기 위해 사용

- EC2 인스턴스에 RDB를 설치하여 운용 가능하지만 예기치 못한 에러로 인하여 인스턴스가 죽을 경우 DB의 데이터가 날아갈 위험성이 존재

GCP 기준 SQL

 

기본 세팅

DB 인스턴스 생성

1. AWS 로그인 후 RDS 대시보드 접속 - 데이터베이스 생성 클릭 원하는 DB 종류 선택

2. 마스터(admin) ID, 비밀번호 설정

※ 편리하게 마스터 로그인 정보를 관리할 수 있는 AWS Secrets Manager도 있으나 비용이 더 청구됨

(백엔드의 yml 파일이나 properties 파일에 DB 정보를 하드코딩하는 대신 다음과 같은 형식으로 입력)

datasource:
  driver-class-name: com.amazonaws.secretsmanager.sql.AWSSecretsManagerMySQLDriver
  url: jdbc-secretsmanager:mysql://HOST:3306/dbname
  username: AWSSecretsManager의 username

3. 스토리지 유형 gp3로 선택

4. 연결 설정에서 퍼블릭 엑세스 허용 선택

5. 모니터링 활성화 해제데이터베이스 생성 클릭 → DB 인스턴스 생성 

 

보안 그룹 적용

1. EC2 대시보드의 네트워크 및 보안 설정에서 다음과 같이 설정 후 보안 그룹 생성

(인바운드 규칙 유형 - 연동할 RDB 유형, 아웃바운드 규칙 - 모든 트래픽)

 

2. RDS 대시보드에서 생성했던 DB 인스턴스 선택 후 수정 클릭 연결 설정에서 보안 그룹을 6번에서 생성한 보안 그룹을 적용한 뒤 맨 밑의 계속 버튼 클릭 수정 예약 옵션에서 즉시 적용 선택 후 DB 인스턴스 수정 

 

파라미터 그룹 적용

1. RDS 대시보드에서 파라미터 그룹 선택 파라미터 그룹 생성 클릭

2. 엔진 유형으로 활용할 DB 인스턴스의 유형 선택 파라미터 그룹 패밀리DB 버전에 맞추어 선택 파라미터 그룹 생성 

MySQL인 경우

3. 생성한 파라미터 그룹 클릭 편집 클릭 → 다음 파라미터에 대한 값을 utf8mb4로 설정 (for 한글+이모티콘 인코딩)

  • character_set_client
  • character_set_connection
  • character_set_database
  • character_set_results
  • character_set_server

4. 다음 파라미터에 대한 값을 utf8mb4_unicode_ci로 설정 (for 한글 정렬 방식 적용)

  • collation_connection
  • collation_server

5. time_zone 파라미터에 대한 값을 Asia/Seoul로 설정

 

6. RDS 대시보드에서 생성했던 DB 인스턴스 선택 수정 추가 구성 설정에서 데이터베이스 옵션DB 파라미터 그룹을 생성한 파라미터 그룹으로 설정 후 맨 밑의 계속 버튼 클릭 수정 예약 옵션에서 즉시 적용 선택 후 DB 인스턴스 수정 

 

7. 수정 사항 반영을 위해 DB 인스턴스 재부팅

 

DB 인스턴스 연결(MySQL Workbench 기준)

각 파라미터에 다음과 같이 입력 후 연결

  • Hostname = DB 인스턴스 엔드포인트 입력 
  • Username = 마스터 ID 입력
  • Password = 마스터 비밀번호 입력

 

Reference

 

[AWS] 📚 RDS 개념 & 아키텍쳐 정리 [이론편]

RDS (Relational Database Service) 란? AWS RDS란 관계형 데이터베이스를 간편하게 클라우드에서 설정, 운영, 확장이 가능하도록 지원하는 웹 서비스이다. RDS는 MySQL이나 오라클 같은 데이터베이스의 설치,

inpa.tistory.com

 

AWS Secret Manager를 이용하여 보안성 향상!

1. intro 기존에는 비밀번호나 키 값을 사용하기 위해 .yml에 값을 넣고 .gitignore를 사용하여 안보이게 하거나 github actions를 이용하여 프로젝트 빌드 전 github에 있는 secrets에 값을 이용해 빈 yml파일

velog.io

 

'DevOps > AWS' 카테고리의 다른 글

IAM(Identity and Access Management)  (0) 2024.09.15
S3(Simple Storage Service)  (0) 2024.09.14
EC2(Elastic Compute Cloud)  (0) 2024.09.12

댓글