본문 바로가기
CS

CS 스터디 (DB) 26 - 클러스터링과 레플리케이션에 대해 설명해주세요.

by gentle-tiger 2025. 5. 26.

클러스터링과 레플리케이션은 데이터베이스 시스템의 고가용성과 확장성을 확보하기 위한 기술입니다. 

 

 

클러스터링 (Clustering) – 수평 확장

- 클러스터링은 여러 DB 서버를 하나의 논리적 단위로 묶어 하나의 DB처럼 동작하게 만드는 구조입니다.

- 모든 노드가 동일한 DB 스토리지에 접근하며, 노드 간 작업을 분산하거나 장애 시 복구를 담당합니다. 

- 이를 통해 모든 노드가 동일한 스토리지를 공유하여, 단일 데이터 정합성을 유지할 수 있는 장점이 있습니다.

- 클러스러팅의 유형으로는 Active-Active 구조, Active–Standby 구조가 있습니다. 

 

Active-Active 구조

- Active-Active 구조는 모든 DB 서버가 동시에 읽기/쓰기 트래픽을 처리합니다.

- 서버 간 부하가 분산되므로 CPU, Memory 자원 활용 효율이 높으며, 무중단 복구가 가능합니다.

- 단, 모든 서버가 동시에 동일한 스토리지에 접근하므로 스토리지 병목 현상이 발생할 수 있습니다.

 

Active–Standby 구조

- Active–Standby 구조는 하나의 DB 서버만 운영에 참여하고, 나머지는 대기 상태(Standby)로 있다가 장애 발생 시 활성화됩니다.

- Standby 서버는 평소에는 스토리지 접근을 하지 않기 때문에 스토리지 병목 현상이 줄어들 수 있습니다.

- 단, 장애 발생 시 전환 시간이 필요하므로 무중단 복구는 불가능하며, 운영 효율도 낮습니다.

 

사용 시점 

1. 무중단 서비스가 필수인 경우 → 장애 발생 시 Active–Active 구조로 즉시 복구가 가능합니다.

2. 데이터 정합성이 중요한 경우 → 모든 노드가 공유 스토리지를 사용해 일관성 유지가 용이합니다.

3. 읽기/쓰기 부하가 균형적인 경우 → 병렬 처리로 자원 부하를 효율적으로 분산시킬 수 있습니다.

 

레플리케이션 (Replication) – 수직 확장

- 레플리케이션은 하나의 DB 서버(Master)의 데이터를 다른 서버(Slave 또는 Replica)로 복제하는 구조입니다. 

- Master → Slave 간 비동기 복제를 통해 읽기 성능 분산장애 대비가 가능해집니다.

- 읽기 처리 분산에는 매우 효과적이며, 슬레이브를 활용한 백업 및 장애 복구에 유리합니다.

- 다만, 복제 시 데이터 반영이 지연될 수 있어 최신 데이터 정합성이 보장되지 않을 수 있습니다.

 

사용시점 

1. 읽기 부하가 높은 경우 → Slave를 활용해 읽기 트래픽을 분산 처리할 수 있습니다.

2. 장애 복구 및 백업이 필요한 경우 → 복제본 승격을 통해 빠른 장애 대응과 백업이 가능합니다.

3. 저비용 확장이 필요한 경우 → 마스터-슬레이브 구조로 적은 비용에 수직 확장이 가능합니다.

 

 

Clustering vs Replication 비교표

항목 클러스터링 (Clustering) 레플리케이션 (Replication)
확장 방식 수평 확장 수직 확장
데이터 정합성 높음 (공유 스토리지) 낮음 (복제 지연 가능성)
읽기 성능 보통 (공유 락 영향) 우수 (슬레이브 분산 처리)
쓰기 성능 좋음 (노드 병렬 처리 가능) 보통 (마스터에 집중됨)
장애 복구 Active–Active 구조 시 무중단 가능 슬레이브 승격 방식 (약간의 지연)

 

결론

클러스터링은 여러 DB 서버가 하나의 스토리지를 공유하며 하나의 DB처럼 동작하도록 구성하는 방식으로, Active–Active 구조에서는 무중단 복구와 부하 분산이 가능하지만, 스토리지 병목 현상이 발생할 수 있습니다. 반면, 레플리케이션은 Master DB의 데이터를 Slave DB로 복제하여 읽기 부하를 분산시키는 구조로, 장애 대비 및 성능 확장에 효과적이지만 복제 지연이나 최신 데이터 정합성의 문제가 발생할 수 있습니다. 클러스터링은 스토리지 공유 기반의 수평 확장이고, 레플리케이션은 스토리지 분리 기반의 수직 확장 구조입니다.