선 조치 후 분석

클러스터(Cluster)에 대하여.. 본문

ETC/IT Knowledge

클러스터(Cluster)에 대하여..

JB1104 2024. 12. 24. 14:39
728x90
반응형
SMALL

클러스터(Cluster)

여러 대의 서버 혹은 노드가 하나의 시스템처럼 동작하는 구조

클러스터에 포함된 서버들은 네트워크를 통해 연결되어 협력하고, 하나의 큰 시스템처럼 동작하여 성능을
향상하거나 가용성을
 높이는 역할

 

특징

  • 여러 대의 서버나 컴퓨터들이 하나의 시스템처럼 동작
  • 고가용성(HA:Hign Availability), 부하 분산(Load Balancing), 성능 향상(Scalability)등을 목표
  • 클러스터 내부에서 서버들은 서로 통신하며, 데이터 공유 및 작업을 나누어서 처리
  • 시스템의 중단 없이 서비스를 제공하는 것이 목적

클러스터의 주요 목적

1. 고가용성 (High Availability, HA)

  • 클러스터는 서비스의 지속적인 가용성을 보장한다.
  • 클러스터 내의 서버 중 하나가 고장 나도, 다른 서버가 그 역할을 대신하여 서비스 중단을 방

2. 성능 향상(Performance)

  • 클러스터 내의 서버들이 동시에 작업을 처리하여 성능을 향상할 수 있다.
  • 예를 들어, 병렬 처리나 부하 분산을 통해 트래픽이나 처리 속도를 개선할 수 있다.

3. 확장성(Scalability)

  • 클러스터는 수평적 확장이 용이하다. 즉, 서버를 추가하는 것만으로 성능이나 처리 능력을 확장할 수 있다.

4. 부하 분산(Load Balancing)

  • 클러스터 내의 여러 서버는 부하 분산 장치를 통해 요청을 균등하게 분배한다.
  • 이를 통해 개별 서버의 부하를 줄이고, 전체 시스템의 성능을 최적화할 수 있다.

클러스터의 종류

1. 웹 서버 클러스터(Web Server Cluster)

  • 여러 대의 웹 서버가 클러스터로 묶여 웹 요청을 분산 처리하고, 이를 통해 대량의 트래픽을 효율적으로 처리
  • 한 서버에 장애가 생겨도 다른 서버가 요청을 처리하여 서비스가 계속 제공
  • 로드 밸런서(Load Balancer)가 클러스터 내의 서버에 트래픽을 분산시켜 부하를 균등하게 분배

2. 데이터베이스 클러스터(Database Cluster)

  • 여러 데이터베이스 서버가 클러스터로 구성되어 데이터를 분산 저장하고, 복제하여 데이터의 가용성과 신뢰성 향상
  • 장애가 발생한 서버는 다른 서버가 대신 처리하여 데이터베이스 서비스의 가용성을 유지
  • MySQL Cluster, Cassandra, MongoDB 등은 분산 데이터베이스 클러스터를 지원

3. 고가용성 클러스터(High Availability Cluster)

  • 고가용성을 목표로 한 클러스터로, 하나의 서버가 다운되더라도 다른 서버가 자동으로 대신 처리하여 
    시스템
    의 다운타임을 최소화
  • Active-Passive 클러스터에서는 주 서버가 다운되면 대기 중인 서버가 자동으로 활성화되어 서비스를 지속

4. 컴퓨팅 클러스터 (Compute Cluster)

  • 여러 서버가 함께 연산을 처리하는 형태로, 과학 계산이나 대규모 데이터 처리에 사용
  • HPC(High-Performance Computing) 클러스터와 같은 형태로 대규모 계산 작업을 분산 처리

5. 파일 시스템 클러스터 (File System Cluster)

  • 여러 대의 서버가 클러스터를 구성하여 파일 시스템을 공유하고 데이터를 분산 저장
  • NAS(Network Attached Storage)나 GlusterFS와 같은 시스템이 파일 시스템 클러스터링을 제공

클러스터링의 구성 요소


노드(Node)

  • 클러스터를 구성하는 개별적인 컴퓨터나 서버
  • 주로 처리 장치나 저장 장치 역할

네트워크(Network)

  • 클러스터 내의 노드들이 서로 통신할 수 있도록 고속 네트워크가 필수적
  • 노드들 간의 빠르고 안정적인 데이터 전송이 이루어져야 시스템이 원활히 동작

클러스터 관리 소프트웨어(Cluster Management Software)

  • 클러스터의 상태를 모니터링하고, 노드를 추가하거나 삭제하는 등 클러스터를 관리하는 소프트웨어
  • 예를 들면, Kubernetes, Hadoop 등이 클러스터 관리를 돕는 툴

부하 분산기(Load Balancer)

  • 클러스터 내에서 트래픽을 각 서버에 고르게 분배하는 역할
  • 로드 밸런서는 HTTP, TCP, UDP 등의 트래픽을 여러 서버로 분배하여 서버의 부하를 최적화

스토리지(Storage)

  • 클러스터에서 데이터를 저장하는 방식도 다양, 각 노드는 로컬 스토리지를 갖추고 있을 수 있으며,
    분산 스토리지 시스템을 사용하여 데이터를 여러 노드에 분산 저장 가능

클러스터링 기법

Active-Passive 클러스터 

  • 하나의 노드가 활성 상태로 서비스하고, 다른 노드는 대기 상태
  • 활성 노드가 장애를 일으킬 경우 대기 노드가 활성화되어 서비스를 대체

Active-Active 클러스터

  • 모든 노드가 활성화되어 동시에 서비스를 제공하며, 로드 밸런서나 클러스터 관리 소프트웨어가 부하를 분산

장점

  1. 고가용성
    한 서버가 실패해도 클러스터 내 다른 서버가 자동으로 대신 처리하여 서비스 중단을 방지
  2. 확장성
    클러스터에 서버를 추가함을 써 성능이나 처리 능력을 확장할 수 있다.
  3. 부하 분산
    여러 서버가 요청을 나누어 처리하여 성능을 최적화한다.

단점

  1. 복잡성
    클러스터를 설정하고 관리하는 과정이 복잡할 수 있다.
  2. 비용
    여러 대의 서버와 네트워크 장비가 필요하므로 초기 투자 비용이 클 수 있다.
  3. 통신 오버헤드
    클러스터 내 서버들 간의 통신에서 발생할 수 있는 오버헤드가 성능에 영향을 줄 수 있다.
728x90
반응형
LIST