Programming

[AWS, Certified Developer Associate] RDS - Storage Auto Scaling, Read Replica, Multi-AZ

RDS (Relational Database Service)

  • query language로 SQL을 사용하는 DB를 위한 관리형 DB 서비스
    • PostgreSQL
    • MySQL
    • MariaDB
    • Oracle
    • Microsoft SQL Server
    • Aurora

 

EC2 인스턴스에 DB를 배포하는 것 대신 RDS를 쓰는 이유

  • 자동 프로비저닝, OS 구성
  • 지속적인 백업 / 특정 타임스탬프로 복원 (특정 시점 복원, Point in Time Restore)
  • 읽기 전용 레플리카 제공 (읽기 성능 향상)
  • 재해 복구를 위한 다중 AZ 제공
  • 업그레이드를 위한 유지관리 기간
  • 스케일링 기능(인스턴스 유형 변경 수직 / 레플리카 수평)
  • EBS를 통한 스토리지 기능 지원
  • 하지만 SSH 불가능 (EC2 접근 불가)

 

RDS - Storage Auto Scaling

  • 스토리지 용량 확장 필요 시 이를 감지해 자동으로 스토리지 크기 조정
    • 사용 가능한 스토리지가 할당 스토리지 10% 미만인 경우
    • 낮은 스토리지 용량이 5분 이상 지속되는 경우
    • 마지막 수정 후 6시간이 지난 경우
  • DB 중단 불필요
  • 무한 확장을 막기 위해 최대 스토리지 임계점 설정해야함 (Maximum Storage Threshold)
  • 예측하기 어려운 워크로드를 가진 애플리케이션에 유용
  • 모든 DB 엔진 지원

 

Read Replica (읽기 전용 복제본)

  • 읽기 확장성
  • 최대 5개 레플리카 가능
  • 같은 AZ, 다른 AZ/Region 간 가능
  • 복제는 비동기식 동기화로 이루어짐 (최종적 일관성, Eventually consistent)
    • 동기화가 이루어지면 모든 클라이언트는 동일한 데이터를 받을 수 있음
  • 필요 시 DB로 승격시켜 사용 가능
  • 사용사례 :
    • Production App <-> Main DB instance일 때, 분석(Reporting) App에서는 Read Replica를 통해 데이터를 읽어오며 Main DB의 트래픽을 줄일 수 있음
  • Read Replica가 다른 AZ에 있더라도 비동기 동기화에 대한 트래픽 비용 X (일반적으로 AWS에서는 다른 AZ 간 데이터가 이동될 때 네트워크 비용 발생)
  • 서로 다른 Region인 경우 트래픽 비용 O

 

Multi AZ (다중 AZ, 재해 복구)

  • 다른 AZ에 DB를 Standby Instance로 복제 (동기식 복제, Master DB 변경사항이 그대로 복제)
  • 스탠바이 인스턴스와 Master DB는 하나의 DNS name을 가지고, 자동으로 장애 시 해당 인스턴스를 통해 장애 복구 (스탠바이 마스터 승격)
  • 전체 AZ, 네트워크 손실 될 때에 대비한 장애 조치 (가용성 증대)
  • 스케일링 목적 X (단순히 장애 시 승격을 목적으로 대기, 읽기쓰기 불가능)
  • 읽기 레플리카도 재해 복구 목적의 Multi AZ로 가능
  • 단일 AZ -> 다중 AZ로의 전환이 다운타임 없이 가능
    • Master DB 스냅샷 생성
    • Standby DB에 스냅샷 복구
    • 이후 동기식으로 데이터 복제

 


Reference

Udemy - AWS Certified Developer Associate 시험 합격을 위한 모든 것!