데이터베이스 다중화
많은 DBMS가 데이터베이스 다중화를 지원합니다. 보통은 Master-Slave 패턴을 자주 사용하는데, 데이터 원본은 주(Master)서버에, 사본은 부(Slave)서버에 저장하는 방식입니다.
Master-Slave
쓰기(Write)는 마스터에서만 지원하고, 부(Slave)서버는 DB사본을 갱신하면서, 읽기만을 지원합니다. 통상 애플리케이션은 읽기 연산 비중이 훨씬 크기 때문에 아래와 같은 구성으로 많이 사용합니다.
즉, 설계안은 다음과 같이 동작합니다.
동작 원리
- 사용자는 URL로 사이트에 접속하면 로드밸런서 IP 주소를 받습니다.
- 사용자는 로드밸런서에 접속합니다.
- 사용자의 요청은 웹 서버1 또는 웹 서버2로 전달됩니다.
- 웹서버는 쓰기(Write)라면 MasterDB, 읽기(Read)라면 SlaveDB에 접근합니다.
장단점
- 주 연산에 해당하는 읽기(Write) 연산을 병렬로 처리가 가능함
- 일부가 손상, 파괴되어도 데이터가 보존됨
- slave가 갱신되기 전에 조회 시 데이터 불일치 발생 가능
감사합니다.
'Database > Server' 카테고리의 다른 글
Database - 샤딩이란 무엇인가?! (+ 샤딩의 다양한 기법, 각 기법 비교) (0) | 2022.07.09 |
---|---|
Database의 책임 - DB는 어디까지 해줘야 하는가? (+ 데이터 가공, 비즈니스 로직, 계산 등) (0) | 2022.05.06 |