공부방

DB 클러스터링 본문

백엔드/DB

DB 클러스터링

코딩 화이팅 2025. 3. 19. 17:54

Clustering?

  • Clustering이란 영문 그대로의 번역 "군집화"와 같이 '유사한 성격을 가진 개체를 묶어 그룹으로 구성하는 것'으로 AI 머신러닝에서 많이 사용되는 용어
  • 이와 달리 DB Clustering은 단일 데이터베이스를 연결하는 둘 이상의 서버 또는 인스턴스를 결합하는 프로세스이다.

DB Clustering 왜 필요?

  • DB와 DB 서버가 각각 단일일 경우, 만약 DB 서버가 예기치 않게 다운 된다면, 해당 DB와 연결된 서비스 자체가 제역할을 할 수 없게 된다. 이러한 일련의 사태에 대한 대비책으로 사용되는게 DB Clustering이다.
  • DB 서버를 만약 2대를 사용하고 있다면, 한 대가 다운되더라도 나머지 한 대가 유지되어 정상적으로 동작할 수 있고, 한 대로 동작하는 동안 문제점을 찾아 해결해 다시 복구할 수 있다.

DB Clustering 어떻게 속도개선에 영향을 주는가?

  • DB 클러스터링 자체가 속도를 개선한다고 본다기 보다는, 여러 대의 DB 서버로 클러스터링 했기 때문에 이를 이용해서 부하를 여러대로 분산시키는 로드밸런싱을 통한 속도 개선으로 더 많은 사용자의 요청에 대한 수용능력의 증가로 DB 속도 개선에 영향을 준다고 생각할 수 있다.

Active - Active Clustering

 

  • DB 서버를 여러 개 구성하는 데 각 서버를 Active (동작중) 상태로 두는 방식
  • 장점
    • 서버 하나가 죽어도 다른 서버가 역할을 바로 수행하여 중단되는 시간이 없다.
    • 같이 사용되어 CPU와 메모리 이용률을 늘릴 수 있다.
  • 단점
    • 저장소 하나를 공유하면 병목현상이 발생될 수 있다.
      병목현상 : 전체 시스템이 성능이나 용량이 하나의 구성요소로 인해 제한을 받는 현상
    • 두 대의 서버를 동시에 운용해야하기 때문에 비용이 많이 든다.

Active - StandBy Clustering

  • 서버 하나는 Active(동작중)으로 운영하고, 나머지 서버는 Standby 상태로 두는 방식.
  • 운영 중인 서버가 정지되었을 경우에 Standby 중인 다음 서버를 Active 상태로 전환하는 방식으로 구성
  • 장점
    • Active - Active 클러스터링에 비해 적은 비용이 든다.
  • 단점
    • 서버가 다운되었을 경우 다른 서버가 Active로 전환되는데 시간이 들어서 서버가 중단되는 시간이 존재한다.

'백엔드 > DB' 카테고리의 다른 글

DB 인덱스의 동작 원리와 성능 개선  (0) 2025.03.25
트랜잭션과 ACID 원칙  (0) 2025.03.25
데이터 이중화  (0) 2025.03.19
분산 데이터베이스(Distributed Database)  (0) 2025.03.19
Tibero  (0) 2025.03.19