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