데이터베이스 클러스터링(Database Clustering)

하나의 데이터베이스를 여러 개의 서버 또는 인스턴스로 구성하여 운영하는 기술.
이 방식은 데이터베이스의 가용성, 성능, 그리고 확장성을 향상시키기 위해 사용된다..

데이터베이스 클러스터링(Database Clustering)은 하나의 데이터베이스를 여러 개의 서버 또는 인스턴스로 구성하여 운영하는 기술이다. 이 방식은 데이터베이스의 가용성, 성능, 그리고 확장성을 향상시키기 위해 사용된다.

클러스터링의 목적

  1. 고가용성(High Availability) 확보: 하나의 서버가 실패하더라도 다른 서버가 작업을 계속할 수 있어 서비스 중단을 최소화한다.
  2. 부하 분산(Load Balancing): 여러 서버로 작업을 분산시켜 전체적인 성능을 향상시킵니다[3].
  3. 확장성(Scalability) 개선: 필요에 따라 서버를 추가하여 시스템의 처리 능력을 증가시킬 수 있습니다[2].

구성 방식:
데이터베이스 클러스터링은 주로 두 가지 방식으로 구성된다.

  1. Active-Active 클러스터링
    모든 데이터베이스 서버가 동시에 활성 상태로 운영된다.
    장점:

    • 서버 한 대가 다운되어도 나머지 서버들이 계속 작동하여 무중단 서비스가 가능하다.
    • CPU와 메모리 사용률을 최적화할 수 있어 전체적인 성능이 향상된다.
      단점:
    • 여러 서버가 하나의 스토리지를 공유하므로 병목 현상이 발생할 수 있다.
  2. Active-Standby 클러스터링 하나의 서버는 Active(작동) 상태로, 나머지 서버는 Standby(대기) 상태로 운영된다. 장점:

    • 운영 비용을 절감할 수 있다.
    • Active 서버에 문제가 발생하면 Standby 서버가 자동으로 Active 상태로 전환된다. 단점:

작동 방식:

  1. 데이터 동기화:
    클러스터 내의 모든 서버는 동일한 데이터를 유지해야 한다.
    이를 위해 동기 또는 비동기 방식의 데이터 복제가 이루어진다.

  2. 부하 분산:
    로드 밸런서를 통해 클라이언트의 요청을 여러 서버로 분산시킨다.

  3. 장애 감지 및 복구:
    서버의 상태를 지속적으로 모니터링하고, 장애 발생 시 자동으로 다른 서버로 작업을 전환한다.

장점:

단점:


참고 및 출처