Database/Server

Master-Slave를 사용하는 이유 (Replication 장단점)

JaeHoney 2022. 2. 25. 22:38

데이터베이스 다중화

많은 DBMS가 데이터베이스 다중화를 지원합니다. 보통은 Master-Slave 패턴을 자주 사용하는데, 데이터 원본은 주(Master)서버에, 사본은 부(Slave)서버에 저장하는 방식입니다.

 

Master-Slave

쓰기(Write)는 마스터에서만 지원하고, 부(Slave)서버는 DB사본을 갱신하면서, 읽기만을 지원합니다. 통상 애플리케이션은 읽기 연산 비중이 훨씬 크기 때문에 아래와 같은 구성으로 많이 사용합니다.

 

 

즉, 설계안은 다음과 같이 동작합니다.

동작 원리

  1. 사용자는 URL로 사이트에 접속하면 로드밸런서 IP 주소를 받습니다.
  2. 사용자는 로드밸런서에 접속합니다.
  3. 사용자의 요청은 웹 서버1 또는 웹 서버2로 전달됩니다.
  4. 웹서버는 쓰기(Write)라면 MasterDB, 읽기(Read)라면 SlaveDB에 접근합니다.

 

장단점

  • 주 연산에 해당하는 읽기(Write) 연산을 병렬로 처리가 가능함
  • 일부가 손상, 파괴되어도 데이터가 보존됨
  • slave가 갱신되기 전에 조회 시 데이터 불일치 발생 가능

 

 

감사합니다.