home
SAA-C03

[database] Amazon RDS

DB 운영의 귀찮은 일은 맡기고, 고가용성과 읽기 확장만 신경 쓰기. 관리형 관계형 DB의 핵심을 짚습니다.

DB 서비스 선택 큰 그림은 database-overview. Aurora는 RDS 계열이지만 별도 심화가 크므로 aurora로 분리.

One-Line Summary

Amazon RDS관계형 DB(MySQL·PostgreSQL·MariaDB·Oracle·SQL Server·Db2)를 관리형으로 제공한다 — 백업·패치·복구·모니터링을 AWS가 대신한다. 시험 핵심은 Multi-AZ(HA) vs Read Replica(읽기 확장) vs RDS Proxy(연결 관리) vs Blue/Green(안전한 변경) 을 정확히 가르는 것이다.

뭔지 (What / Why)

DB를 EC2에 직접 깔면 백업·패치·failover·복제·모니터링을 전부 손으로 운영해야 한다. RDS는 이 운영 부담을 걷어내고 엔진은 그대로(표준 SQL·기존 앱 호환) 쓰게 해준다.

"기존 앱이 SQL/트랜잭션/관계형 스키마를 요구한다" = RDS(또는 Aurora). RDS가 관리해 주는 건 운영이지, SQL 호환성을 바꾸는 게 아니다.

Abbreviations

약어풀네임의미
RDSRelational Database Service관리형 관계형 DB
AZAvailability Zone리전 내 독립 가용 영역
RRRead Replica읽기 전용 복제본
PITRPoint-In-Time Recovery특정 시점 복구
IOPSInput/Output Operations Per Second초당 I/O 작업 수

스토리지 타입

스토리지언제
General Purpose SSD (gp3/gp2)일반 워크로드, 비용/성능 균형(신규 기본)
Provisioned IOPS SSD (io1/io2)높은 IOPS·낮은 지연이 필요한 I/O 집약 DB
  • Storage Auto Scaling: 임계치 도달 시 스토리지 자동 확장(용량 부족 장애 예방).

고가용성 — Multi-AZ (빈출)

Multi-AZ DB instance

주 인스턴스를 다른 AZ의 대기(standby)로 동기 복제하고, 장애 시 자동 failover한다.

Primary (AZ-a) ──동기 복제──► Standby (AZ-c)
   장애 발생 → DNS가 standby로 자동 전환 (앱은 같은 엔드포인트 사용)
항목내용
목적고가용성·자동 failover
복제동기
standby 읽기불가(대기 전용)
읽기 성능 향상

핵심 함정: 일반 Multi-AZ standby는 읽기 트래픽을 처리하지 않는다. 성능이 아니라 장애 대비용이다.

Multi-AZ DB cluster

1 writer + 읽기 가능한 2 standby를 3개 AZ에 배치. HA에 더해 읽기 처리량까지 얻는다(standby가 읽기 가능).

항목내용
구성1 writer + 2 readable standby(3 AZ)
읽기가능
failover빠름

"Multi-AZ인데 readable standby / 더 빠른 failover / 쓰기 지연 감소" = Multi-AZ DB cluster.

읽기 확장 — Read Replica (빈출)

비동기 복제읽기 전용 복제본. 읽기 부하를 분산한다.

항목내용
목적읽기 확장(리포팅·조회 offload)
복제비동기(약간의 지연 가능)
개수엔진별 최대 5~15개
승격독립 DB로 promote 가능(수동)
위치같은 AZ/다른 AZ/다른 리전

Cross-Region Read Replica

다른 리전에 읽기 복제본을 둔다 → ① 리전 DR ② 해당 지역 사용자에게 가까운 읽기 ③ 리전 이전.

"읽기가 많다/리포팅 offload" = Read Replica. "다른 리전 DR·글로벌 읽기" = Cross-Region RR(관계형 글로벌은 Aurora Global Database도 후보).

Multi-AZ vs Read Replica (가장 자주 나오는 구분)

구분Multi-AZ instanceMulti-AZ clusterRead Replica
주 목적HAHA + 읽기 확장읽기 확장
복제동기준동기비동기
읽기 처리
failover자동자동(빠름)수동 승격

Multi-AZ=HA, Read Replica=읽기 성능. 단 Multi-AZ cluster의 standby는 읽기 가능.

RDS Proxy (빈출 — Lambda 연결 폭증)

앱과 DB 사이에서 DB 연결을 풀링·재사용하는 완전관리형 프록시.

Lambda(수천 동시 실행) ─► RDS Proxy(연결 풀) ─► RDS/Aurora
문제 상황RDS Proxy가 맞는 이유
Lambda가 DB 연결을 과도하게 생성(connection storm)연결 풀링/재사용
짧은 연결이 폭증재사용으로 부담 감소
failover 시 앱 안정성연결 유지로 failover 체감 시간 단축

중요: RDS Proxy는 쿼리 결과를 캐시하지 않는다. 데이터 캐시는 ElastiCache, DynamoDB 캐시는 DAX. RDS Proxy는 연결 관리.

RDS Blue/Green Deployment

운영(Blue)과 동기화된 staging(Green) 을 만들어 버전 업그레이드·스키마 변경을 검증한 뒤 1분 이내 switchover로 전환한다.

"DB 변경을 안전하게 테스트하고 짧은 중단으로 전환" = Blue/Green.

백업 & 암호화

항목내용
자동 백업PITR 지원, 보존 0~35일
수동 스냅샷삭제 전까지 보존, 리전·계정 간 복사 가능
저장 위치내부적으로 S3(관리형)
암호화KMS(at-rest) — 생성 시 활성화(기존 미암호화는 스냅샷 복사로 암호화), 전송 중 TLS

함정: "미암호화 RDS를 암호화하라" → 직접 토글 불가 → 암호화 스냅샷으로 복원. 자세한 키는 security/kms.

실무 활용 사례

  • HA 운영 DB: Multi-AZ instance로 AZ 장애 자동 failover.
  • 읽기 폭증 리포팅: Read Replica 여러 개로 조회 offload.
  • 글로벌 DR: Cross-Region Read Replica로 다른 리전 대비.
  • 서버리스 백엔드: Lambda + RDS Proxy로 connection storm 방지.
  • 버전 업그레이드: Blue/Green으로 무중단에 가깝게 전환.

Common Wrong Directions

오답 방향왜 부족한가
Multi-AZ를 읽기 성능용으로일반 standby는 읽기 안 함 → Read Replica
Read Replica를 HA 정답으로주 목적은 읽기 확장 → HA는 Multi-AZ
RDS Proxy를 캐시로연결 풀링 → 캐시는 ElastiCache
미암호화 DB를 그 자리에서 암호화스냅샷 복사로 암호화본 생성
글로벌 저지연 관계형에 단일 리전 RDSCross-Region RR / Aurora Global Database

Exam Triggers

문제에서 이런 표현이 나오면떠올릴 것
"high availability / automatic failover / standby"Multi-AZ instance
"readable standby / faster failover"Multi-AZ cluster
"offload read traffic / reporting"Read Replica
"cross-region DR / geo-local reads"Cross-Region Read Replica
"too many connections from Lambda"RDS Proxy
"safe upgrade with minimal downtime"Blue/Green
"point-in-time restore"자동 백업(PITR)
"encrypt an existing unencrypted DB"암호화 스냅샷 복원

Memory Sentence

RDS는 관계형 DB를 관리형으로 제공한다. HA는 Multi-AZ(동기 standby·자동 failover, 읽기 불가), 읽기 확장은 Read Replica(비동기·읽기 전용), 글로벌/DR은 Cross-Region RR, 연결 폭증은 RDS Proxy, 안전한 변경은 Blue/Green. 백업은 PITR·스냅샷, 암호화는 KMS(생성 시, 기존은 스냅샷 복사).

References

댓글

아직 댓글이 없습니다.