> For the complete documentation index, see [llms.txt](https://esbook.kimjmin.net/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://esbook.kimjmin.net/02-install/2.3-elasticsearch/2.3.3-node-settings.md).

# 2.3.3 노드의 역할 : master, data, ingest, ml

&#x20; Elasticsearch의 노드는 수행하는 다양한 역할들이 있는데, 각자의 노드들이 서로 다른 역할들을 수행하도록 클러스터를 구성할 수 있습니다. 아래 설정들의 모든 디폴트 값은 **true** 이며 기본적으로 노드는 명시된 모든 역할들을 수행합니다. 특정 값 들을 false 로 설정 함으로서 노드의 역할들을 구분지어 클러스터를 구성할 수 있습니다.

### node.master: true

&#x20; 마스터 후보(master eligible) 노드 여부를 설정합니다. false인 경우 이 노드는 마스터 노드로 선출이 불가능합니다. 모든 클러스터는 1개의 마스터 노드가 존재하며 마스터 노드가 다운되거나 끊어진 경우 남은 마스터 후보 노드들 중에서 새로운 마스터 노드가 선출되게 됩니다.

### node.data: true

&#x20;  노드가 데이터를 저장하도록 합니다. false인 경우 이 노드는 데이터를 저장하지 않습니다.

### node.ingest: true

&#x20; 데이터 색인시 전처리 작업인 ingest pipleline 작업의 수행을 할 수 있는지 여부를 지정합니다. false인 경우 이 노드에서는 ingest pipeline 작업의 실행이 불가능합니다.

### node.ml: true

&#x20; 이 노드가 머신러닝 작업 수행을 할 수 있는지 여부를 지정합니다. false 인 경우 이 노드애서는 머신러닝 작업이 수행되지 않습니다.

&#x20; 예를 들어 클러스터에서 어떤 노드를 데이터는 저장하거나 색인하지 않고 오직 클러스터 상태를 관리하는 마스터 노드의 역할만 수행하도록 설정하려면 아래와 같이 설정합니다.

{% code title="config/elasticsearch.yml - 전용 마스터 노드 설정" %}

```yaml
node.master: true
node.data: false
node.ingest: false
node.ml: false
```

{% endcode %}

&#x20; 이런 방법으로 클러스터 안의 노드들을 마스터 전용 노드, 데이터 전용 노드 등으로 분리하여 유연한 구성을 할 수 있습니다.

{% hint style="info" %}
앞의 모든 설정을 **false** 로 하게 되면 해당 노드는 데이터를 저장하거나 색인하지 않고 클러스터 상태를 업데이트도 하지 않으며 오직 클라이언트와 통신만 하는 역할로 사용이 가능합니다. 이런 노드를 코디네이트 온리 노드 (coordinate only node) 라고 부릅니다.
{% endhint %}
