데이터베이스 이중화: Replication vs Clustering
데이터베이스(DB)는 서비스의 핵심 데이터를 저장하는 곳이므로, DB 장애는 곧 서비스 전체의 중단으로 이어질 수 있습니다. 이러한 장애에 대비하여 DB의 안정성과 가용성을 확보하기 위한 기술이 바로 이중화(Redundancy)이며, 대표적인 방식으로 리플리케이션과 클러스터링이 있습니다.
리플리케이션 (Replication, 복제)
리플리케이션은 여러 개의 DB 서버가 동일한 데이터를 가지도록 복제하는 방식입니다. 일반적으로 하나의 원본(Master) DB와 여러 개의 복제본(Slave 또는 Replica) DB로 구성됩니다.
- 작동 방식: Master DB에서 데이터 변경(쓰기, 수정, 삭제)이 발생하면, 변경 내역이 Slave DB로 전달되어 데이터 동기화가 이루어집니다.
- 주요 목적:
- 부하 분산: 쓰기 작업은 Master에서, 읽기 작업은 여러 Slave에서 처리하도록 하여 DB 부하를 분산시킬 수 있습니다. (Read-heavy 워크로드에 유리)
- 데이터 백업: Slave DB를 실시간 백업으로 활용할 수 있습니다.
- 장애 대응: Master DB에 장애가 발생하면, 관리자가 직접 Slave DB 중 하나를 Master로 승격시켜야 서비스 재개가 가능합니다. (수동 Failover)
클러스터링 (Clustering)
클러스터링은 여러 개의 DB 서버를 하나의 시스템처럼 동작하게 묶는 기술입니다. 모든 서버가 동일한 데이터를 공유하며, 하나의 가상 IP를 통해 서비스에 접근합니다.
- 작동 방식: 클러스터 내의 모든 서버(노드)가 서로의 상태를 계속 확인(Heartbeat)하며, Active-Standby 또는 Active-Active 방식으로 동작합니다.
- 주요 목적:
- 고가용성 (High Availability): Active 서버에 장애가 발생하면, 대기 중이던 Standby 서버가 즉시 서비스를 이어받아 중단 시간을 최소화합니다. (자동 Failover)
- 장애 대응: 장애 발생 시 거의 실시간으로 자동 절체가 이루어져 서비스 중단이 거의 없습니다.
요약
구분 | 목적 | 구조 | Failover | 장점 | 단점 |
---|---|---|---|---|---|
Replication | 부하 분산, 데이터 백업 | Master-Slave | 수동 | 읽기 성능 확장 용이 | 장애 시 수동 개입 필요 |
Clustering | 고가용성, 무중단 서비스 | 다중 노드 공유 | 자동 | 높은 안정성 | 구성이 복잡하고 비용이 높음 |
서비스의 특성과 요구되는 가용성 수준에 따라 리플리케이션과 클러스터링 중 적합한 방식을 선택하거나, 두 방식을 조합하여 더 안정적인 DB 시스템을 구축할 수 있습니다.
댓글남기기