Skip to content

Latest commit

 

History

History
163 lines (99 loc) · 5.99 KB

rds.md

File metadata and controls

163 lines (99 loc) · 5.99 KB

AWS RDS (Relation Database Service)

RDS란?

Amazon Relational Database Service(RDS)를 사용하면 클라우드에서 관계형 데이터베이스를 간편하게 설정, 운영 및 확장할 수 있다.

하드웨어 프로비저닝, 데이터베이스 설정, 패치 및 백업과 같은 시간 소모적인 관리 작업을 자동화하면서 비용 효율적이고 크기 조정 가능한 용량을 제공한다.

사용자가 애플리케이션에 집중하여 애플리케이션에 필요한 빠른 성능, 고가용성, 보안 및 호환성을 제공할 수 있도록 지원한다.

RDS의 특징

관계형 데이터베이스를 제공하는 서비스

Relational Database Service: 관계형 데이터베이스

<--> NoSQL(DynamoDB, DocumentDB, ElasticCache)

가상 머신 위에서 동작

단 직접 시스템에 직접 로그인 불가능 -> OS 패치, 관리 등은 AWS의 역할

RDS는 Serverless 서비스가 아님

단 Aurora Serverless는 말그대로 Serverless 서비스

CloudWatch와 연동

DB 인스턴스의 모니터링(EC2와 동일)

DB에서 발생하는 여러 로그(Error Log, General Log등)을 CloudWatch와 연동하여 확인 가능

내부에서는 EC2를 활용

VPC안에서 동작

  • 기본적으로 public IP를 부여하지 않아 외부에서 접근 불가능
  • 설정에 따라 public으로 오픈 가능 (DNS로 접근)

서브넷과 보안 그룹 지정 필요

EC2 타입의 지정 필요

스토리지는 EBS를 활용

  • EBS 타입의 선택 필요
  • 생성시 EBS의 용량을 지정해서 생성

Parameter Group: Root 유저만 설정 가능한 DB의 설정값들을 모아 그룹화한 개념

  • DB 클러스터에 파라미터 그룹을 적용시켜 설정값을 적용

업데이트

  • 마이너 버전 엔진 업데이트는 자동으로 업데이트 설정 가능
  • 기타 업데이트의 경우 점검 시간(Maintenance Window)를 설정하여 특정 시간에 업데이트가 이루어질 수 있도록 설정 가능

RDS의 인증 방법

전통적인 유저/패스워드 방식

AWS Secret Manager와 연동하여 자동 로테이션 가능

IAM DB 인증

데이터베이스를 IAM 유저 Credential/Role을 통해 관리 가능

Keberos 인증

RDS의 가격 모델

컴퓨팅 파워 + 스토리지 용량 + 백업 용량 + 네트워크 비용

Reserved Instance 구매 가능

  • EC2와 마찬가지로 일정 기간을 게약하여 저렴한 가격에 서비스를 이용

RDS에서 제공하는 DB 엔진

  • MS SQL SERVER
  • Oracle
    • Oracle OLAP
  • MySQL Server
  • PostgreSQL
  • MariaDB
  • Amazon Aurora
  • MS SQL Server, Oracle, Oracle OLAP는 오픈소스가 아니기 때문에 라이선스 비용 추가(자신의 라이선스 사용 가능)

RDS의 암호화

  • 암호화 지원
    • SQL 서버 혹은 Oracle에서는 TDE(Transparent Data Encryption) 지원
    • 모든 엔진에서 EBS 볼륨 암호화 지원
      • Default Master Key 혹은 생성한 Master Key 선택 가능
    • 자동 백업, 스냅샷, Read Replica 등에 적용됨

RDS의 백업

자동 백업

매일마다 스냅샷을 만들고 트랜잭션 로그를 저장

데이터는 S3에 저장되며 데이터베이스의 크기 만큼의 공간 점유

저장된 데이터를 바탕으로 일정 기간 내에 특정 시간으로 롤백 가능 (다른 DB 클러스터를 새로 생성)

1~35일 까지 보관 지원

Backup을 시행할 때는 약간의 딜레이 발생 가능성

기본적으로 사용 상태로 설정되어 있음

수동 백업(DB 스냅샷)

유저, 혹은 다른 프로세스로 부터 요청에 따라 만들어지는 스냅샷

데이터베이스가 삭제된 이후에도 계속 보관

스냅샷의 복구는 항상 새로운 DB Instance를 생성하여 수행

RDS Multi AZ

두 개 이상의 AZ에 걸쳐 데이터베이스를 구축하고 원본가 다른 DB(Standby)를 자동으로 동기화(Sync)

  • SQL Server, Oracle, MySQL, PosgreSQL, MariaDB에서 지원
  • Aurora의 경우 다중 AZ를 설계 단계에서 지원

원본 DB의 장애 발생 시 자동으로 다른 DB가 원본으로 승격됨(DNS가 Standby DB로)

StandBy DB는 접근 불가능

퍼포먼스의 상승 효과가 아닌 안정성을 위한 서비스

Read Replica(읽기 전용 복제본)

원래 데이터베이스의 읽기 전용 복제본을 생성(Async)

  • 쓰기는 원본 데이터베이스, 읽기는 복제본에서 처리하여 워크로드 분산
  • MySQL, PostgreSQL, MariaDB, Oracle, Aurora에서 지원

안정성이 아닌 퍼포먼스를 위한 서비스

총 5개 까지 생성 가능

각각의 복제본은 고유 DNS가 할당됨 -> 접근 가능

  • 원본 DB 장애 발생 시 수동으로 DNS 변경이 필요함

복제본 자체에 Multi-AZ 설정 가능 (MySQL, PostgreSQL, MariaDB, Oracle)

Multi-AZ DB에 Read Replica 설정 가능

자동 백업이 활성화 되어 있어야 읽기 전용 복제본 생성 가능

각 DB의 엔진 버전이 다를 수 있음

위 사진에서 복제를 끊고 아래 사진처럼 구성할 수 있다.

RDS Multi Region

다른 리전에 지속적으로 동기화 시키는 DB클러스터를 생성(Async 복제)

주로 로컬 퍼포먼스 혹은 DR(Disaster Recovery)시나리오로 활용

각 리전별로 자동 백업 가능

리전별로 Multi-AZ 가능