Search

[ES] 클러스터와 노드 개념 정리

Elasticsearch의 클러스터란 ?

일반적으로 클러스터(Cluster) 한 대 이상의 노드가 연결되어 마치 하나의 시스템처럼 동작하는 구조를 말한다. Elasticsearch에서도 이러한 클러스터 구조를 통해서, 여러 노드가 각자의 역할을 수행하면서 하나의 통합된 시스템처럼 작동하게 된다.
하나의 시스템처럼 동작하는 구조이기 때문에 한 클러스터 안에 어떠한 노드에게 요청을 보내도 모두 동일한 결과를 반환하게 된다.
Elasticsearch에서 클러스터는 하나 이상의 노드로 이루어진 전체 시스템으로 정의 할 수 있는데, 클러스터는 아래와 같은 특징이 있다.
클러스터 이름(cluster name) 으로 고유하게 식별 된다.
클러스터 내부의 모든 노드는 데이터를 공유하고 협력하여, 색인(indexing)과 검색(query) 작업을 처리한다.
사용자 입장에서는 클러스터 전체가 하나의 통합된 시스템처럼 보인다.

노드란?

Elasticsearch에서 노드클러스터의 구성 요소이자 실제 작업을 수행하는 하나의 인스턴스이다. 각 노드들은 각자의 역할이 있으며, 데이터 저장, 검색, 색인 등의 작업을 처리하게 된다.
한 마디로 정리하자면, 노드는 클러스터의 구성 요소이자 실제 작업을 수행하는 핵심 단위이다.
노드는 아래와 같은 특징이 있다.
클러스터에 속해 있는 하나의 단위이다.
각 노드는 고유한 이름을 가지며, 자신이 속한 클러스터의 이름을 알아야 한다.
노드 간에는 통신을 통해 데이터와 요청을 공유하며 작업을 처리한다.
하나의 노드는 여러 역할을 동시에 수행할 수 있다.
노드는 아래와 같이 역할을 구분할 수 있다.
역할
설명
Master Node
클러스터 전체를 관리 (노드 추가/제거, 인덱스 생성, 상태 관리 등)
Data Node
실제 데이터를 저장하고 색인/검색 등의 데이터 관련 작업 수행
Ingest Node
데이터가 색인되기 전, 전처리 작업(파이프라인 처리 등)을 수행
Coordinating Node
사용자의 요청을 받아 적절한 노드에 분산시키고 결과를 모아 응답 (일종의 로드 밸런서 역할)
기본적으로 Elasticsearch를 설치하면 하나의 노드가 모든 역할을 수행하지만, 규모가 커질수록 역할을 분리하여, 확장성을 확보하게 된다.

Reference