더북(TheBook)

마스터-슬레이브 복제를 통한 확장성 확보

점점 많아지는 읽기 작업 요청을 처리하는 한 가지 방법은 서버를 추가해 더 많은 질의에 응답하게 하는 것이다. 일반적인 애플리케이션에서는 쓰기보다는 읽기 작업이 많다. 월드컵 결승전이 열리는 동안 일터에 나가야 하는 전 세계의 축구팬은 웹 사이트에 들어가 마지막으로 갱신된 점수를 조회해 볼 것이다. 마찬가지로 뉴스 사이트도 쓰기 작업보다 읽기 작업이 압도적으로 많다. 심지어 전자 상거래 사이트는 데이터 쓰기보다 페이지 조회 비율이 훨씬 높다. 왜냐하면 고객들은 장바구니에 추가할 상품에 대한 설명과 후기를 많이 찾아보기 때문이다.

이와 같은 애플리케이션에서는 쓰기 작업보다는 질의에 응답할 수 있는 서버를 두는 것이 더 합리적인데, 이럴 때 마스터-슬레이브 복제 모델이 적합하다.

마스터는 읽기와 쓰기 요청을 받는 클러스터에 있는 서버 한 대를 말한다. 이 서버는 쓰기 작업이 이루어진 마스터 데이터를 관리하고, 갱신된 데이터를 클러스터에 있는 다른 서버로 복제하거나 복사하는 임무를 수행한다. 마스터를 제외한 다른 서버는 오직 읽기 요청에만 응답한다. 그림 3-7에 나와 있듯이 마스터-슬레이브 아키텍처는 간단한 계층형 구조로 되어 있다.

▲ 그림 3-7 마스터-슬레이브 아키텍처는 작업을 수행하는 통신 패턴이 단순하다

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.