Learning
토픽 159 / 201·NewSQL 및 특수 목적 DB

Read Replica (읽기 복제본)

Read Replica (읽기 복제본)

주 데이터베이스(Primary/Master)의 데이터를 비동기 또는 동기로 복제하여 읽기 전용 쿼리를 처리하는 보조 데이터베이스로, 읽기 부하를 분산하고 주 데이터베이스의 쓰기 성능을 보호하며 고가용성과 지역 분산에 활용

목적: 읽기 부하 분산, 쓰기 성능 보호, 고가용성(Failover), 지역 분산, 리포팅 분리

특징: 읽기 전용, 비동기/동기 복제, 복제 지연(Replication Lag), 다중 복제본 지원

구성요소

  • Primary(Master): 쓰기/읽기 처리, 트랜잭션 로그 생성
  • Replica(Slave): 읽기 전용, 로그 수신·적용
  • Replication Stream: 트랜잭션 로그 전송, WAL(PostgreSQL), Binlog(MySQL)
  • Proxy/Router: 읽기/쓰기 라우팅, ProxySQL, PgBouncer

복제 방식

  • 비동기 복제: Primary 커밋 후 Replica 적용, 지연 발생, 성능 우선
  • 동기 복제: Replica 적용 확인 후 커밋, 지연 없음, 성능 저하
  • 반동기(Semi-Sync): 최소 1개 Replica 수신 확인, 절충안

Replication Lag (복제 지연)

  • Primary와 Replica 간 데이터 차이 시간
  • 비동기 복제 시 수 밀리초~수 초
  • 읽기 후 쓰기 일관성 문제 발생 가능

Read/Write Splitting

  • 쓰기(INSERT/UPDATE/DELETE) → Primary
  • 읽기(SELECT) → Replica
  • 애플리케이션 또는 프록시에서 라우팅

장점: 읽기 확장성, Primary 부하 감소, 고가용성(Failover 대상), 지역 분산(낮은 지연)

단점: 복제 지연(Eventual Consistency), 쓰기는 확장 안 됨, 관리 복잡도

적용사례: 읽기 중심 워크로드, 리포팅/분석 분리, 글로벌 서비스, 백업, DR(재해 복구)

기술요소: WAL, Binlog, Replication Lag, Read/Write Splitting, Failover

비교: Read Replica(읽기 확장) vs Sharding(쓰기 확장) vs Clustering(HA)

연관: 데이터베이스 복제, HA, Failover, WAL, Binlog, ProxySQL