데이터베이스 클러스터링(Database Clustering)
하나의 데이터베이스를 여러 개의 서버 또는 인스턴스로 구성하여 운영하는 기술.
이 방식은 데이터베이스의 가용성, 성능, 그리고 확장성을 향상시키기 위해 사용된다..
데이터베이스 클러스터링(Database Clustering)은 하나의 데이터베이스를 여러 개의 서버 또는 인스턴스로 구성하여 운영하는 기술이다. 이 방식은 데이터베이스의 가용성, 성능, 그리고 확장성을 향상시키기 위해 사용된다.
클러스터링의 목적
- 고가용성(High Availability) 확보: 하나의 서버가 실패하더라도 다른 서버가 작업을 계속할 수 있어 서비스 중단을 최소화한다.
- 부하 분산(Load Balancing): 여러 서버로 작업을 분산시켜 전체적인 성능을 향상시킵니다[3].
- 확장성(Scalability) 개선: 필요에 따라 서버를 추가하여 시스템의 처리 능력을 증가시킬 수 있습니다[2].
구성 방식:
데이터베이스 클러스터링은 주로 두 가지 방식으로 구성된다.
Active-Active 클러스터링
모든 데이터베이스 서버가 동시에 활성 상태로 운영된다.
장점:- 서버 한 대가 다운되어도 나머지 서버들이 계속 작동하여 무중단 서비스가 가능하다.
- CPU와 메모리 사용률을 최적화할 수 있어 전체적인 성능이 향상된다.
단점: - 여러 서버가 하나의 스토리지를 공유하므로 병목 현상이 발생할 수 있다.
Active-Standby 클러스터링 하나의 서버는 Active(작동) 상태로, 나머지 서버는 Standby(대기) 상태로 운영된다. 장점:
- 운영 비용을 절감할 수 있다.
- Active 서버에 문제가 발생하면 Standby 서버가 자동으로 Active 상태로 전환된다. 단점:
- Standby 서버를 Active 상태로 전환하는 데 시간이 소요될 수 있다.
작동 방식:
데이터 동기화:
클러스터 내의 모든 서버는 동일한 데이터를 유지해야 한다.
이를 위해 동기 또는 비동기 방식의 데이터 복제가 이루어진다.부하 분산:
로드 밸런서를 통해 클라이언트의 요청을 여러 서버로 분산시킨다.장애 감지 및 복구:
서버의 상태를 지속적으로 모니터링하고, 장애 발생 시 자동으로 다른 서버로 작업을 전환한다.
장점:
- 고가용성: 단일 장애점(Single Point of Failure)을 제거하여 시스템의 안정성을 높인다.
- 성능 향상: 여러 서버로 부하를 분산시켜 전체적인 처리 능력이 향상된다.
- 확장성: 필요에 따라 서버를 추가하여 시스템을 확장할 수 있다.
단점:
- 복잡성: 여러 서버를 관리해야 하므로 시스템 구성과 유지보수가 복잡해질 수 있다.
- 비용: 여러 대의 서버와 관련 인프라를 구축해야 하므로 초기 비용이 높을 수 있다.
- 데이터 일관성: 여러 서버 간의 데이터 동기화에 따른 지연이 발생할 수 있다.