방화벽 환경에서 클러스터 구성

두곳 서로다른 네트웍 대역을 가진 10대의 서버로 클러스터를 구성할경우 대역사이 방화벽이 있습니다.
양방향으로 9200-9400을 열어야 하는지
또한 저는 마스터 한대 나머지 9대는 데이터 저장만 하게 하게하려 합니다.

클라이언트 노드 설정파일에 마스터 주소만 적어주면 되나요?

예들들어
1.1.1.1~9 까지 9대의 서버가 있고
2.2.2.2.1 서버를 elasticsearch master 노드로 설정하려 합니다.
1.1.1.1대역과 2.2.2.1대역사이에는 방화벽이 있습니다.
3.3.3.1~9 서버를 2.2.2.2.1 마스터노드로 데이터를 수집하려 합니다.

결국 3개의 서브넷 환경에서 각각의 서브넷마다 방화벽이 앞단에 존재합니다.

현재는
1.1.1.1~9 서버와 2.2.2.1서버의 방화벽 정책은 9200~9400 양방향 오픈입니다.
3.3.3.1~9 서버와 2.2.2.1서버의 방화벽 정책은 9200-9400 양방향 오픈입니다.
1.1.1.1~9 서버와 3.3.3.1~9 서버 사이에는 방화벽이 막혀 있습니다.

감사합니다.

제가 알기로 각 노드들은 서로 통신하기 때문에 양방향 모두 열려 있어야 할거 같구요.

같은 클러스터 내 노드들이 통신하는데는 멀티캐스팅방식과 유니캐스트 방식으로 나뉘는데
유니캐스트를 아무래도 추천드립니다.

유니캐스트로 하시려면 마스터, 클라이언트 노드 모두 설정해 주셔야 하며
elasticsearch.yml 설정파일 보시면

discovery.zen.ping.multicast.enabled: false << 이 설정으로 멀티캐스팅 꺼주시구요

#network.publish_host: 192.168.xxx.xxx
#network.publish_host: 192.168.xxx.xxx << 이 통신으로 각각 모든 노드들의 IP를 작성

하시면 됩니다. ^^

1 Like

https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-discovery-zen.html#unicast
보시면 unicast 영역에 통신한 노드 목록을 넣어 두시면 됩니다.

질문을 보니 서로 다른 네트워크 구간에 노드 구성이 되어 있는데 이걸 하나의 클러스터로 묶으려고 하시는 것 같내요.
정상적으로 묶어 주기 위해서는 in/outbound 모두 열어 주셔야 합니다.
http port랑 transport port 랑 다 열어 주는데 굳이 http 는 안열어 주셔도 되긴 합니다.
어차피 노드들간 통신은 transport 로 하니까요.

1 Like

일단 포트는 9300 부터 열어주시면 되고요, 9200은 클라이언트하고 http 통신할 노드만 열어주시면 됩니다.
유니캐스트로 바인드 할 주소를 다 입력은 해야 합니다.
그리고 네트워크 호스트 설정도 해 주셔야 하지 않을까 싶고요.

예를 들어 첫번째 그룹 서버의 방화벽 내부 주소가 1.1.1.1 이고 외부 주소가 11.11.11.11 이라고 가정 하고, 바인딩 하려는 두번째 노드의 방화벽 내부 주소가 2.2.2.2 외부 주소가 22.22.22.22 라고 가정하면 아래와 같이 입력 해 주시면 아마 바인딩 될겁니다.

예)

[노드1] - 1.1.1.1 - [방화벽] - 11.11.11.11 - [인터넷] - 22.22.22.22 - [방화벽] - 2.2.2.2 - [노드2]

[노드1] 설정

network.bind_host: 1.1.1.1
network.publish_host: 11.11.11.11
discovery.zen.ping.multicast.enabled: false
discovery.zen.ping.unicast.hosts: ["1.1.1.1", "22.22.22.22"]

[노드2] 설정

network.bind_host: 2.2.2.2
network.publish_host: 22.22.22.22
discovery.zen.ping.multicast.enabled: false
discovery.zen.ping.unicast.hosts: ["2.2.2.2", "11.11.11.11"]

참고로 "시작하세요 엘라스틱서치" 책 114 페이지에 그림과 함께 좀 더 자세한 설명이 있습니다. ^^;

2 Likes