본문으로 건너뛰기
김신건의 로그

[AWS] RDS Multi-AZ + Read Replica

· 수정 · 📖 약 1분 · 364자/단어 #aws #rds #aurora #database #cloud
RDS, Aurora, Multi-AZ, Read Replica, RDS Proxy, RDS Aurora Serverless v2, Aurora Global Database

정의

RDS (Relational Database Service) = AWS 의 managed RDB. MySQL, PostgreSQL, MariaDB, Oracle, SQL Server, Aurora (AWS 자체).

Multi-AZ Deployment

flowchart LR
    Primary["Primary (AZ a)<br/>Master"]
    Primary -->|sync 복제| Standby["Standby (AZ b)<br/>passive"]
    Primary --> Client
    Note["Standby = 읽기 불가<br/>(HA 용)"]
  • 동기 복제.
  • AZ 장애 시 자동 failover (1-2분).
  • Read 분산 불가 (Standby = passive).

Read Replica

flowchart LR
    Primary["Primary"]
    Primary -.async 복제.-> R1["Read Replica 1"]
    Primary -.async.-> R2["Read Replica 2"]
    Primary -.async (cross-region).-> R3["Read Replica 3<br/>(다른 region)"]
    Client -->|writes| Primary
    Client -->|reads| R1 & R2 & R3
  • 비동기 복제 (lag 가능).
  • 읽기 부하 분산.
  • Cross-region 가능 (DR).
  • Standalone DB 로 승격 가능.

Aurora vs RDS MySQL/PostgreSQL

RDS MySQL/PGAurora MySQL/PG
스토리지EBSAWS 자체 분산 (3 AZ × 2 복제)
처리량표준3-5배 빠름
백업snapshotcontinuous 백업 (PITR)
Read Replica5개 한도15개 + reader endpoint
Failover1-2분< 30초
가격약간 cheap약간 비쌈
Serverless옵션Aurora Serverless v2

IMPORTANT

2026 신규 = 거의 항상 Aurora. RDS MySQL/PG 보다 비싸지만 더 빠른 + 안정.

Aurora 분산 스토리지

flowchart TB
    Compute["Compute (DB engine)"]
    Compute --> Storage["Cluster Volume (자체)"]
    Storage --> AZa1["AZ a copy 1"]
    Storage --> AZa2["AZ a copy 2"]
    Storage --> AZb1["AZ b copy 1"]
    Storage --> AZb2["AZ b copy 2"]
    Storage --> AZc1["AZ c copy 1"]
    Storage --> AZc2["AZ c copy 2"]
  • 6 copy, 3 AZ.
  • quorum (4/6 write, 3/6 read).
  • 2 copy 손실 OK (가용성), 3 copy 손실 OK (durability).

RDS Proxy

flowchart LR
    Lambda --> RDSProxy["RDS Proxy<br/>(connection pool)"]
    EC2 --> RDSProxy
    RDSProxy -->|pool 재사용| RDS[(RDS)]
  • Connection poolAWS managed 로.
  • Lambda 의 connection 폭증 해결.
  • failover 시간 단축.

Aurora Serverless v2

  • 자동 scaling (0.5 ACU - 128 ACU).
  • cold start 없음 (v1 의 결함 해결).
  • 가변 워크로드 / dev / test.

Aurora Global Database

flowchart LR
    Primary["Primary Cluster (us-east-1)"]
    Primary -.<1s 복제.-> Sec1["Secondary (eu-west-1)"]
    Primary -.-> Sec2["Secondary (ap-northeast-1)"]
    Note["DR: < 1분 failover<br/>Read: 글로벌 분산"]

백업

종류의미
Automated backup매일 + WAL. PITR (Point-in-Time Recovery)
Manual snapshot수동, 영구
Aurora Backtrack옛 시점으로 DB 자체 회귀 (snapshot 없이)

흔한 함정

WARNING

  1. Multi-AZ ≠ Read Replica = Multi-AZ 의 standby 는 읽기 불가. RR 가 별도.
  2. Aurora major version upgrade = downtime 있음. 충분한 테스트.
  3. Read Replica lag = async 복제. read-your-writes 가 깨질 수 있음.
  4. Aurora storage 비용 = 사용량만큼 (max 와 무관). 단 읽기 IOPS 비용 도 별도.

관련 위키

이 글의 용어 (5개)
[AWS] VPC: subnet, route, NAT, peeringcloud
정의 VPC (Virtual Private Cloud) = AWS 안의 논리적 격리 네트워크. CIDR 정의 + subnet 분할 + 라우팅. 구조 Subnet 종류 | 종류 |…
[Concurrency] Connection Pool: DB, HTTP, gRPC 의 공통 패턴concurrency
정의 Connection Pool = 연결을 미리 만들어 두고 재사용. 매 요청마다 TCP + TLS + auth 비용을 회피. Pool 의 동작 = producer (reque…
[DB] MySQL / InnoDB: clustered index, redo log, MVCCdatabase-internals
정의 MySQL + InnoDB (기본 스토리지 엔진) 의 clustered index + redo log 기반 행 기반 RDBMS. 웹 / SaaS 의 가장 흔한 backbon…
[DB] PostgreSQL: 프로세스 모델, MVCC, WAL, 확장성database-internals
정의 PostgreSQL 은 오픈소스 ORDBMS. 1986 UC Berkeley POSTGRES 의 후예. MVCC, 확장 가능 타입, JSONB, full-text searc…
[Redis] Replication & Sentinel: 비동기 복제와 자동 Failoverdatabase-internals
정의 Redis Replication 은 primary (master) → replica (slave) 방향의 비동기 단방향 복제. 읽기 부하 분산 과 고가용성 의 토대. Red…

💬 댓글

사이트 검색 / 명령어

검색

스크롤 = 확대/축소 · 드래그 = 이동 · 0 = 원래 크기 · ESC = 닫기