Azure에 Elastic Stack을 빠르게 구축하는 방법
요즘 검색엔진으로 큰 관심을 받고 많이 사용하고 있는 제품이 Elastic사의 Elasticsearch 이다. 기본 검색엔진의 기능, 실시간으로 로그를 쌓고 분석하는 용도 등으로 사용되며 클러스터에 노드를 추가하는 것만으로도 확장이 가능해서 대용량의 시스템 구성에 적합하다. 검색엔진인 Elasticsearch, 데이터 시각화 제품인 Kibana, 데이터를 수집하는 Beats 와 Logstash 가 모여서 Elastic Stack이라는 오픈소스 패키지다. 여기에 구매를 해야하는 X-Pack 제품이 있다.
Azure에서 Elasticsearch를 설치하려면 리눅스 가상머신을 만들면서 가상네트워크를 구성해야 한다. Elasticsearch의 데이터 노드, 클라이언트 노드, 마스터 노드를 설정하고 클러스터를 구성해야 하는데 이 과정이 2-3시간은 걸린다. 보단 쉽고 빠르게 구축하는 방법은 없을까?
Azure에는 마켓플레이스가 있다. 전세계 소프트웨어사, 솔루션사가 자신의 제품을 Azure 마켓플레이스에 올려서 Azure 사용자들이 몇 가지 설명만으로 해당 제품을 쉽게 사용하도록 할 수 있다. Elasticsearch 도 Azure Maketplace에 있으니 여기에서 시작하면 매우 빠르게 설치를 할 수 있다. 라이센스는 BYOL (Bring Your Own License)로 별도록 Elastic에서 구매를 하면 된다.
지금 받기를 누르거나 Azure portal 마켓플레이스에서 검색 후 시작 할 수 있다. 지금 받기를 누르면 Azure Portal이 뜨고 로그인 하면 즉시 설정 화면으로 들어간다. 총 8단계를 거치는데 데이터 노드의 수, 클라이언트 노드의 수, VM 사이즈, 로그인 비밀번호 등의 설정을 해주면 된다. 설정값에 따라 다르겠지만 아래 그림과 같은 구성이 된다. 설정한 노드의 수 만큼 VM들이 만들어지고 가상네트워크와 부하분산기(Load Balancer)가 만들어 진다. 마스터 노드와 데이터노드를 같이 쓸 수 있고 클라이언트 노드는 만들지 않을 수 있다. 그럼 좀더 단순한 구성이 나온다.
Jumpbox를 만들수 있다. Jumpbox의 용도는 구성된 모든 VM들이 가상네트워크 안에 들어있고 Public IP를 가지지 않기 때문에 SSH 접속을 할 수 없는데 Public IP를 가지고 있는 Jumpbox를 통해서 접속해서 운영을 하는 것이다. Jumpbox를 두는 것이 각각 Public IP를 주는 것보다 보안상 안전하다. 비용을 아끼기 위해서 평소에는 꺼두는 것도 요령이다.
이 전체를 만드는 시간이 15분정도 걸린 것 같다. 이제 인프라가 만들어졌으니 Elasticsearch를 사용하면 된다. 개발만 신경쓰면 된다.