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

2024. 12. 27. 02:03·Database
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  (2) 2024.12.26
데이터베이스의 특징에 대해서 알아보자.  (3) 2024.12.24
정규화에 대해서 알아보자.  (4) 2024.12.24
'Database' 카테고리의 다른 글
  • RDBMS vs NoSQL
  • 데이터베이스의 특징에 대해서 알아보자.
  • 정규화에 대해서 알아보자.
pink_salt
pink_salt
유익함을 주는 개발자가 되도록 keep going
  • pink_salt
    KeepGoingForever
    pink_salt
  • 전체
    오늘
    어제
    • 분류 전체보기 (117)
      • Project (7)
      • WEB study (3)
        • WEB(Springboot) (10)
        • Git, GitLab (13)
        • Clean code (1)
        • FrontEnd (3)
      • Study (21)
        • Algorithm (19)
        • 면접 준비 (2)
      • Cloud Computing (2)
        • AWS (2)
      • 프로그래밍 언어 (35)
        • Java (29)
        • Python (0)
        • javascript (6)
      • 운영체제 (0)
        • Linux (0)
      • Database (4)
        • MongoDB (8)
        • SQL (8)
      • 애플리케이션 개발 (1)
        • Android (1)
      • AI (1)
        • Deeplearning (1)
        • machinelearning (0)
      • Daily (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    Java
    객체지향
    spring boot
    codepresso
    dp
    MongoDB
    BFS
    오블완
    코딩이러닝
    무료IT교육
    SWEA
    Query
    빅오표기법
    대외활동
    python
    Database
    개념
    언어
    티스토리챌린지
    자바
    무료코딩교육
    코딩강의
    코드프레소
    백준
    mysql
    IT교육
    SW
    Git
    git branch
    gitlab
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
pink_salt
클러스터링과 리플리케이션에 대하여
상단으로

티스토리툴바