클러스터란?
위키백과에서 찾아보면 컴퓨터 클러스터는 여러 대의 컴퓨터들이 연결되어
하나의 시스템처럼 동작하는 컴퓨터들의 집합을 말한다고 한다.
노드란?
노드는 클러스터를 구성하는 개별적인 컴퓨터(서버), 가상머신, 혹은 컨테이너 등을 가리키는 개념이다.
여기서 주의할 것은 노드라고 해서 무조건 컴퓨터를 가리키는 것이 아니란 것이다.
(예를 들어 쿠버네티스에서의 노드는 컴퓨터이지만, HDFS(Hadoop Distributed File System)에서 노드는
대부분 스토리지 장치이다.)
마스터 노드(Master Node)와 워커 노드(Worker Node)
노드는 마스터 노드와 워커 노드로 나누어진다 (구체적인 명칭이나 역할은 사용하는 기술에 따라 달라질 수 있다.)
마스터 노드
클러스터 전체를 모니터링하고, 자원(CPU, 메모리, 스토리지 등)을 할당하거나 조정한다.
요청된 작업(워크로드)을 어느 노드가 처리할지 결정하여 분배한다.
또한 각 노드가 보유한 데이터의 위치, 상태, 버전 등 핵심 정보를 관리한다.
일종의 클러스터 동작의 컨트롤 타워 역할을 수행한다고 생각하면 된다.
워커 노드
마스터 노드가 할당하는 작업 스케줄에 따라 실질적으로 작업을 처리한다.
워커 노드는 말 그대로 실제로 작업을 수행하는 노드라고 보면 된다.
역할 | 설명 |
클러스터 | 공장 전체 |
마스터 노드 | 공장장 |
워커 노드 | 작업자 또는 기계 |
이해하기 쉽게 공장으로 예를 들면 위의 표와 같다.
Why 클러스터?
클러스터를 사용하는 이유를 정리하면 아래와 같다.
1. 고가용성(High Availability) 확보
하나의 서버가 고장 나도 다른 서버가 대신 일을 처리하게 함으로써 서비스가
중단되는 것을 방지할 수 있다. 예를 들어 인터넷 쇼핑몰에서 한 서버가 다운돼도
다른 서버가 서비스를 계속 제공하여 고객은 서비스를 정상적으로 이용할 수 있다.
2. 확장성(Scalability) 향상
처리할 작업량이 많아질 경우, 노드를 더 추가해서 시스템 성능을 향상 시킬 수 있다.
즉 수평 확장(Scale-out)이 가능하다.
3. 부하 분산(Load Balancing)
여러 노드에 작업을 나눠서 처리하기 때문에 하나의 서버의 부하가 몰리는 것을 방지할 수 있다.
4. 장애 복구(Fault Tolerance)
특정 노드에 문제가 발생할 경우 다른 노드가 그 역할을 대신할 수 있도록
교체할 수 있다.
클러스터의 단점
1. 초기 구축이 복잡하고 어렵다.
클러스터 환경은 여러 대의 서버가 유기적으로 동작해야 하기 때문에 설정과 구성 자체가 복잡하다.
마스터-워커 구조, 네트워크 연결, 보안, 인증 등 고려해야 할 요소가 많다.
2. 운영 및 유지보수 비용 증가
여러 대의 노드를 관리하려면 모니터링, 패치, 장애 대응, 백업 등 단일 서버 구조보다 관리해야 하는
작업이 많아지게 된다.
3. 디버깅과 문제 해결 복잡도 증가
문제가 발생해도 어느 노드에서, 어떤 원인으로 문제가 발생했는지 파악하기가 쉽지 않다.
따라서 로그나 상태 추적을 위한 모니터링이 필수적이다.
참고
https://ko.wikipedia.org/wiki/%EC%BB%B4%ED%93%A8%ED%84%B0_%ED%81%B4%EB%9F%AC%EC%8A%A4%ED%84%B0
https://hsunnystory.tistory.com/175
https://post.naver.com/viewer/postView.naver?volumeNo=33602778&memberNo=8961887
'Infra' 카테고리의 다른 글
Kafka란? (feat.성능과 고가용성) (0) | 2025.03.26 |
---|---|
Nginx 알아보기 (0) | 2025.03.04 |
도커(Docker) 알아보기 (1) | 2024.10.20 |