CS/DB
[데이터베이스] 리플리케이션(Replication)
BongChun
2023. 7. 19. 15:36
리플리케이션이란?
데이터베이스 리플리케이션은 운용중인 데이터베이스의 복제본을 만들어 운용하는 것을 말한다. 리플리케이션은 실제 데이터의 백업, 시스템의 성능 향상 등에 사용이 된다.
원본 데이터베이스를 master, primary, leader 등으로 부르고 복제된 데이터베이스를 slave, secondary, replica 등으로 부른다.
리플리케이션의 목적
리플리케이션은 기본적으로 데이터베이스의 안정성을 높히기 위해 사용됩니다. 다양한 이유가 있지만 대표적인 목적은 다음과 같다.
- 데이터 무결성 및 복구 : 원본 데이터베이스에 문제가 생겼을 때 복제본을 통해 데이터를 복구할 수 있다.
- 데이터 가용성 및 서비스 연속성 향상 : 하나의 데이터베이스에 장애가 발생해도 다른 위치에서 데이터베이스를 사용할 수 있기 때문에 서비스를 중단하지 않을 수 있다.
- 분산 처리와 로드 밸런싱 : 트래픽이나 쿼리 요청을 여러 서버에 분산시켜 서버의 부하를 줄일 수 있다.
- 데이터 분석 및 보고 : 원본 데이터베이스에 영향을 주지 않고 데이터 분석이나 작업을 수행할 수 있다.
- 거리적 비용 완화 : 글로벌한 서비스의 경우 사용자와 가까운 지점에 데이터베이스가 존재해야 딜레이 없이 서비스를 제공할 수 있다. 복제본을 해당 지점에 복제해 네트워크 지연시간을 줄일 수 있다.
리플리케이션의 사용
리플리카 서버는 대부분 읽기전용으로 운용이 되는데, 이 특성을 이용해 데이터베이스의 성능을 개선할 수 있다.
INSERT, UPDATE, DELETE 작업 쿼리는 마스터 서버에서 수행하고, SELECT 쿼리는 읽기전용인 리플리카 서버에서 수행하게 되면 비용을 분산시킬 수 있어 부하를 줄이고 성능을 개선할 수 있다.
데이터베이스에서 발생하는 대부분의 쿼리는 SELECT이므로 리플리카의 수를 늘려 분산 처리를 통해 성능을 향상시킬 수도 있다.
리플리케이션의 단점
- 올바른 복제 전략을 선택하고, 복제 프로세스를 설정하고, 데이터의 일관성을 유지하기 위해 추가적인 설계, 관리가 필요하기 때문에 복잡성이 증가한다.
- 데이터의 용량, CPU 비용 등의 추가적인 리소스 비용이 필요하므로 확장에 비용이 소모된다.
- 보통 리플리케이션은 비동기 방식으로 데이터 동기화를 진행하게 되는데, 이렇게 되면 일관성 있는 데이터를 받지 못할 수 있다.
- 변경이 생기면 리플리카에도 데이터 일관성을 보장하기 위해 모든 리플리카에 동기화를 진행해야 합니다. 이 과정에서 쓰기 성능의 저하가 발생할 수 있다.