정리하고기록하자

DB Clustering & Replication 본문

Database - 데이터베이스 ( DB )

DB Clustering & Replication

정리하고기록하자 2022. 7. 2. 16:30
반응형

DB Clustering

DB Clustering 이란 DB를 여러개의 서버가 나눠서 처리하도록 하는 것이다.

ex ) 데이터베이스 서버가 죽으면 어떻게 대응할까?

  • 데이터베이스 서버를 여러개로 만들자 ( 클러스터링 ) 

 

  • 서버 한 대가 죽어도 대비가 가능하다.
  • 여러 데이터베이스 서버로 부하를 분산시켜 사용자의 요청을 더 많이 수용할 수 있다. ( 로드 밸런싱 )
  • 여러 대의 데이터베이스 서버를 가지므로 높은 가용성을 보장한다. ( 높은 가용성 ) 
    • DB의 가용성이란 DB가 동작하고 있는 시간과 정지한 시간의 비율이다.
    • DB 시스템을 구성할 서버나 스토레지 장비를 각각 2대 이상으로 구성해서, 만의 하나 어느쪽인가에 장애가 발생했다고 하더라도 단 시간내에 운용을 재개 할 수 있도록 한다.

DB Clustering 종류 및 장점

1. Active - Active Clustering

데이터베이스 서버를 Active ( 동작중 ) 상태로 두는 방식이다.

 

장점

  • 서버 하나가 죽어도 다른 서버가 역할을 바로 수행하여 중단되는 시간이 없다. ( 무중단 서비스 가능 )
  • 같이 사용되어 CPU와 메모리 이용률을 늘릴 수 있다. ( 성능적인 측면에서 이득 )

단점

  • 저장소 하나를 공유하면 병복현상이 발생될 수 있다.
    • 병목현상 : 전체 시스템이 성능이나 용량이 하나의 구성요소로 인해 제한을 받는 현상이다.
  • 두 대의 서버를 동시에 운용해야하기 때문에 비용이 많이 든다.

2. Active - StandBy Clustering

데이터베이스 서버 하나는 Active ( 동작중 ) , 하나는 Standby 상태로 두는 방식이다.

운영중인 서버가 정지되었을 경우에 Standby 중인 서버를 Active 상태로 전환한다.

 

장점

  • Active - Active에 비해 적은 비용이 든다 ( 비용 절감 )

단점

  • 서버가 다운되었을 경우 다른 서버가 Active로 전환되는데 시간이 들어서 서버가 중단되는 시간이 있다.

Replication

Replication 이란 두 개 이상의  DB 시스템을 Master / Slave 로 나눠서 동일한 데이터를 저장하는 방식이다.

 

Master DB 에는 데이터의 수정사항을 반영만 하고 Replication을 하여 Slave DB 에 실제 데이터를 복사한다.

ex ) 저장된 데이터가 손실되면 어떻게 대응할까 ? 

  • 서버가 죽었으 때 서비스 제공 문제 -> 서버를 여러 대 두는 Clustring으로 해결 할 수 있다.
  • 데이터 손실문제 -> 저장소를 복제하는 Replication 방식으로 해결할 수 있다.

Replication 역할 ( Master DB / Slave DB )

쉽게 말해 DB를 이중화, DB 복제라고 보면 된다.

Master DB 역할 : 웹 서버로 부터 데이터 등록 / 수정 / 삭제 요청시 바이너로그를 생성하여 Slave 서버로 전달하게 된다.

Slave DB 역할 : Master DB로 부터 전달받은 바이너리로그를 데이터로 반영하게 된다.


Replication 사용 목적

1. 실시간 Data 백업한다.

2. 여러대의 DB서버의 부화를 분산 시킨다.


Replication 장,단점

장점

  • 쿼리의 대부분은 SELECT가 차지한다. 이 부분의 부하를 낮추기 위해 많은 Slave DB를 생성하게 된다면 성능 향상 효과를 얻을 수 있다.
  • Master DB 영향없이 로그를 분석할 수 있다.

주의할점

단점

  • 테이블에 데이터 자체가 엄청나게 많다고 한다면 Slave DB서버를 N대로 늘려도 원하는 데이터를 테이블ㄹ로 부터 찾는데 많은 시간이 소요 된다.

Clustering vs Replication

Clustering

  • 여러 개의 DB를 수평적인 구조로 구축하여 Fail Over한 시스템을 구축하는 방식이다.
  • 동기 방식으로 노드들 간의 데이터를 동기화한다.
  • 장점 : 1 개의 노드가 죽어도 다른 노드가 살아 있어 시스템을 장애없이 운영할 수 있다.
  • 단점 : 여러 노드들 간의 데이터를 동기화하는 시간이 필요하므로 Replication에 비해 쓰기 성능이 떨어진다.

Replication

  • 여러 개의 DB를 권한에 따라 수직적인 구조 ( Master - Slave ) 로 구축하는 방식이다.
  • 비동기 방식으로 노드들 간의 데이터를 동기화한다.
  • 장점 : 비동기 방식으로 데이터가 동기화되어 지연 시간이 거의 없다.
  • 단점 : 노드들 간의 데이터가 동기화되지 않아 일관성있는 데이터를 얻지 못할 수 있다.

참고 : 

 

 

5. [MySQL]리플리케이션 방법

1. [MySQL] 설치(CentOS) 2. [MySQL] 기본 명령어 익히기 3. [MySQL] 외부에서 접근하는방법 4. [MySQL]워크벤치 설치하기 5. [MySQL]리플리케이션 방법 6. [MySQL]my.conf 환경 설정하기 7. [MySQL] MySQL 리플리..

tommypagy.tistory.com

 

 

DB 클러스터링과 리플리케이션

클러스터(Cluster) DB를 여러개의 서버가 나눠서 처리하도록 한다. 장점 서버 한 대가 죽어도 대비가 가능하다. 용도 고가용성 DB의 가용성이란 DB가 동작하고 있는 시간과 정지한 시간의 비율이다.

sloth.tistory.com

 

 

[DB] 리플리케이션(Replication)이란? 클러스터링(Clustering)이란?

클러스터링(Clustering)이란? 클러스터링은 동일한 데이터베이스를 여러 대의 서버가 관리하도록 클러스터를 구축하는 것을 뜻한다. 이러한 클러스터링은 Active-Active 방식과 Active-StandBy 방식이 있

code-lab1.tistory.com

 

 

Replication과 Clustering

tecoble.techcourse.co.kr

 

반응형