클러스터링과 리플리케이션에 대하여
728x90

클러스터링(Clustering)

여러 대의 서버를 하나의 시스템처럼 작동하도록 구성하여 확장성과 가용성을 높이는 기술이다. 이를 통해 트래픽 증가나 장애 상황에서도 안정적인 서비스를 제공할 수 있다.

특징으로는,

  • 여러 DB 서버를 하나의 논리적 단위로 묶어 운영.
  • 고가용성과 확장성을 보장.
  • 데이터의 일관성을 유지하면서 트래픽을 분산 처리.

 

1) Active-Active 방식

구성

  • 두 개 이상의 DB 서버가 동시에 작동하며, 하나의 스토리지를 공유.
  • 모든 DB 서버가 트래픽을 처리하고, 한쪽 서버가 중단되더라도 나머지 서버가 정상 작동.

장점

  1. 높은 가용성: 한 서버가 중단되더라도 다른 서버가 지속적으로 작동하여 서비스가 중단되지 않음.
  2. 성능 향상: 두 개 이상의 서버가 CPU, 메모리, 네트워크 등을 활용하여 더 높은 성능을 발휘.
  3. 부하 분산: 트래픽을 여러 서버로 분산 처리하여 응답 속도 개선.

단점

  1. 스토리지 병목: 모든 서버가 동일한 스토리지를 공유하기 때문에 병목 현상이 발생할 가능성.
  2. 운영 비용 증가: 여러 서버를 동시에 운영하므로 비용 부담 증가.

사용 사례

  • 실시간 처리 시스템(예: 결제 시스템, 게임 서버).
  • 고가용성과 높은 성능이 요구되는 환경.

Active-Active 방식

 

2) Active-Stand by 방식

구성

  • 하나의 DB 서버는 Active(작동) 상태로 운영되고, 다른 서버는 Stand by(대기) 상태.
  • Active 서버에 문제가 생기면 Stand by 서버가 Active 상태로 전환.

장점

  1. 운영 비용 절감: Stand by 서버는 대기 상태이므로, 평소에는 Active 서버의 운영 비용만 발생.
  2. 장애 대응: Active 서버가 중단되면 Stand by 서버가 빠르게 작동하여 서비스 중단을 최소화.

단점

  1. 전환 시간 소요: Stand by 서버가 Active 서버로 전환되기까지 수십 초에서 수분의 시간이 필요.
  2. 효율성 부족: Stand by 서버는 평소에 대기 상태로, 자원의 활용도가 낮음.

사용 사례

  • 중소규모 웹 애플리케이션.
  • 장애 복구 시간이 크게 중요하지 않은 시스템

Active-Stand by 방식

 


 

리플리케이션(Replication)

데이터를 하나의 데이터베이스에서 다른 데이터베이스로 복제하여 가용성과 데이터 안전성을 보장하는 기술이다. 아래 4가지 목적을 위해서 데이터베이스를 복제하여 사용한다.

1) 스케일 아웃

  • 트래픽 증가로 인해 부하가 발생할 경우 서버를 추가하여 성능을 개선하는 방식
  • 예: 대규모 쇼핑몰의 세일 기간 동안 주문 요청을 처리하기 위해 Replica를 추가하여 성능을 확장.

2) 백업

  • 백업 과정에서 발생할 수 있는 쿼리 손상을 방지하기 위해 Source 서버 대신 Replica 서버에서 데이터 백업을 수행.
  • 예: 주기적인 데이터 백업 작업 중에도 Master 서버는 정상적으로 작동.

3) 데이터 분석

  • Replica 서버를 활용해 데이터를 분석함으로써 Master 서버의 성능 저하를 방지합니다.
  • 예: 로그 데이터나 사용자 활동 데이터를 실시간으로 분석하면서 Master 서버의 부하를 분산.

4) 데이터의 지리적 분산

  • 지리적으로 떨어져 있는 사용자에게도 빠른 응답을 제공하기 위해 Replica 서버를 분산 배치합니다.
  • 예: 한국에 있는 Source 서버와 미국에 위치한 Replica 서버를 통해 글로벌 사용자에게 빠른 서비스를 제공.

 

1) Slave를 백업 용도로 활용

  • 방식: Master 서버의 데이터를 Slave 서버에 동기화 및 저장.
  • 특징: Slave를 통해 안정적으로 데이터를 백업할 수 있음.
  • 장점: Master의 작업에 영향을 주지 않고 백업 작업 수행.

Slave를 백업 용도로 활용

2) Slave를 읽기 용도로 활용

  • 방식: Master 서버는 쓰기(Write) 작업에 집중하고, 읽기(Read) 작업은 Slave 서버에서 처리.
  • 특징: Select 쿼리로 인한 Master 서버 부하를 감소.
  • 장점: 분산 처리를 통해 시스템 성능이 향상.

Slave를 읽기 용도로 활용

 

 

특징 클러스터링 리플리케이션
목적 성능 향상 및 고가용성 데이터 복제 및 안전성 보장
구성 여러 서버가 하나의 시스템처럼 동작 데이터를 여러 서버에 복제
데이터 관리 단일 데이터 소스 관리 데이터는 각 서버에 복제
장점 확장성 및 장애 대응 데이터 손실 방지 및 백업 기능
단점 설정 및 관리 복잡성 데이터 동기화 지연 발생 가능
728x90
반응형

'Database' 카테고리의 다른 글

RDBMS vs NoSQL  (0) 2024.12.26
데이터베이스의 특징에 대해서 알아보자.  (2) 2024.12.24
정규화에 대해서 알아보자.  (1) 2024.12.24