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 시험 합격을 위한 모든 것!
'Programming' 카테고리의 다른 글
[AWS, Certified Developer Associate] DNS, Route 53 (0) | 2024.05.06 |
---|---|
[AWS, Certified Developer Associate] Aurora, RDS 프록시, ElastiCache (0) | 2024.05.01 |
[AWS, Certified Developer Associate] ASG (0) | 2024.04.29 |
[AWS, Certified Developer Associate] Load Balancer (0) | 2024.04.29 |
[AWS, Certified Developer Associate] EC2 - AMI, Instance Store, EBS, EFS (1) | 2024.04.28 |