포스트

데이터베이스 리플리케이션 기본 정리

리플리케이션이란

리플리케이션은 한 데이터베이스의 변경 사항을 다른 데이터베이스로 복제하는 구조다. 보통 primary가 쓰기를 받고, replica가 이를 따라가는 형태를 많이 사용한다.

왜 쓰는가

  • 읽기 부하 분산
  • 장애 대응
  • 백업/분석 분리
  • 지역 분산 아키텍처의 기반

가장 먼저 알아야 할 점

리플리케이션은 “복사본이 있다”는 뜻이지, 항상 완벽히 동일 시점이라는 뜻은 아니다. 대부분의 구조에서는 복제 지연(replication lag)을 고려해야 한다.

primary-replica 구조의 특징

  • 쓰기는 primary
  • 읽기는 replica로 분산 가능
  • 장애 시 승격(failover) 절차 필요

이 구조는 단순하지만, 읽기 직후 쓰기 반영 여부 같은 문제를 반드시 고려해야 한다.

자주 나오는 문제

복제 지연

방금 쓴 데이터를 replica에서 바로 읽으면 아직 반영되지 않았을 수 있다.

읽기 일관성

어떤 요청은 primary에서, 어떤 요청은 replica에서 읽으면 같은 사용자 경험 안에서도 데이터가 다르게 보일 수 있다.

장애 전환

primary 장애 시 replica 승격이 필요하고, 이 과정에서 split-brain이나 데이터 유실 가능성을 조심해야 한다.

실무에서 자주 쓰는 대응

  • 중요한 읽기는 primary로 강제
  • 읽기-after-쓰기 구간은 세션 단위로 primary stickiness 적용
  • lag 모니터링
  • 복제 구조와 장애 전환 절차를 문서화

정리

리플리케이션은 읽기 확장과 가용성에 큰 도움이 되지만, 결국 “동기화 지연이 있는 복제본”이라는 사실을 항상 의식해야 한다. 그래서 설계의 핵심은 복제 그 자체보다, 언제 replica를 믿고 언제 primary를 강제할지를 정하는 데 있다.

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.

댓글

아직 댓글이 없습니다