싱글 노드
- 클러스터는 하나 이상의 엘라스틱서치 노드로 구성돼 있고 각 노드는 설정에 따라 특수항
Role
을 부여받아 동작한다.
- 노드들은 별도의 설정이 없다면
Single Node
모드로 동작한다.
- 싱글 노드는 엘라스틱서치의 모든 기능을 사용하는 노드다.
- 클러스터의 모든 노드가 싱글 노드로 설정돼 있으면 모든 노드들이 동일한 역할을 수행한다.
데이터의 크기가 작거나 노드의 수가 3대 이하일 경우에는 싱글 노드만으로 클러스터를 구성하는 것도 괜찮은 선택이다.
전용 마스터 노드 구축
- 마스터 노드의 Role과 데이터 노드의 Role이 하나의 노드에서 동시에 수행될 경우
- 무거운 쿼리가 요청되어
데이터 노드
의 부하로 인해 시스템에 행(Hang
)이 걸리거나 노드가 다운되는 경우도 발생할 수 있다.
- 당연히 마스터 노드의 역할도 정상적으로 수행되기 어려울 것이다.
마스터 노드
의 역할이 정상적으로 동작하지 못하는 상황에서는 레플리카에 의해 쉽게 복구할 수 있는 단순 장애도 복구되지 못한다.
- 장애 복구의 책임은
마스터 노드
에게 있다.
안정적인 클러스터 운영을 위해서는 마스터 노드와 데이터 노드를 물리적으로 분리해서 각각 별도의 장비에서 동작할 수 있게 구성하는 것이 좋다.
전용 Coordination 노드 구축
- 서비스가 성장할수록 다양한 지표에 대한 요구사항도 늘어날 것이다.
- 엘라스틱서치는
애그리게이션(Aggregation)
이라는 강력한 집계 연산을 제공한다.
- 대량의 데이터를 처리해야 하는 집계 연산이 많은 경우에는 반드시 전용 Coordination 노드로만 요청을 받아야 한다.
- 집계 연산은 메모리를 많이 사용한다.
- 하나의 물리적인 서버에서 데이터 노드의 역할과 Coordination 노드의 역할이 동시에 수행될 경우 장애가 발생할 가능성이 커진다.
- 일정 규모 이상의 클러스터를 운영한다면 노드를 별도로 분리해서 구축하는 것이 좋은 전략이다.
- 검색 용도의 Coordination 노드
- 색인 용도의 Coordination 노드
- 집계 용도의 Coordination 노드
마스터 노드가 클러스터에 존재하는 모든 노드를 관리하기 때문에 Coordination 노드의 개수가 많아지면 관리에 부담이 생긴다.