ElasticStack의 기본 개념

Jang Dong Ik·2025년 1월 26일

ElasticStack 이란?


ElasticStack 은 무엇이고 ElasticSearch는 무엇이고 어떤 차이가 있을까요?

ElasticStack 에는 UI 즉 시각화를 담당하는 Kibnan, 데이터 저장 및 검색 엔진의 기능을 하는 ElasticSearch, 데이터 수집 및 정제를 하는 Beats, Logstash 가 존재합니다.

즉 ElasticStack = Kibana + ElasticSearch + Beats + Logstash 입니다.


LogStash


로그스태시는 이벤트 수집 및 정제의 역할을 합니다. 그렇다면 어떻게 정제를 하고 왜 정제를 하는 것일까요?
우선 필터 기능을 통해 비정형, 반정형 데이터를 분석하기 쉬운 형태로 정제합니다. 또한 엘라스틱서치 인덱싱 성능 최적화를 위한 배치처리, 병령처리를 합니다.
그리고 영속적인 큐를 통하여 이벤트의 최소 1회 전송을 보장합니다.

동작방식 및 구성요소


Beats


로그스태시의 기능은 강력하지만 호스트에 수집기를 직접 설치해야 하고 무겁다는 점 때문에 부담감이 있었습니다. 즉, 활용도가 떨어질 수 있다는 단점이 존재하였습니다.
엘라스틱 스택은 이를 위해 경량 수집기를 제작하고자 하였고 비츠를 만들었습니다. 비츠는 2015 년도에 탄생하였습니다. 가벼운 Golang으로 작성되었습니다.
비츠는 엣지단에서 동작하는 경량 수집도구라고 볼 수 있습니다.


Kibana


키바나는 ElasticStack 에서 UI를 담당하고 있습니다. ElasticSearch 를 관리하며 API실행콘솔 의 역할을 합니다. 또한 solution page, monitoring page 가 존재하여 시각적인 기능을 확실히 합니다.

ElasticSearch


ElasticSearch 가 없다면 어떤 불편함이 있었을까요?

아래와 같이 크게 두가지의 불편함이 존재했을 것입니다.

  • 부정확한 LIKE 연산의 실행
  • 반정형 로그데이터의 필드 뽑아내기의 곤란함

언제나 ElasticSearch 가 답일까?

ElasticSearch는 저장공간 압축률이 낮고 시스템 리소스를 많이 잡아먹습니다. 또한 Document 의 수정 및 삭제시 부담감이 굉장히 높습니다. 따라서 단지 데이터베이스의 목적으로 ElasticSearch 를 사용한다면 적합하지 않습니다.

NoSQL 과의 차이

NoSQL 이란 특정한 목표에 맞춰 최적화되는 경우가 많습니다. 강한 트랜잭션 기능을 포기하고 확장성과 사용성에 초점을 맞춘 형태입니다.
ElasticSearch 의 경우 데이터베이스만을 근본으로 하는 것이 아닌 검색 엔진이기 때문에 데이터를 빠르게 검색하고 집계하는 데 최적화 되어있습니다. 따라서 일반적인 범용 데이터베이스처럼 사용하기에는 무리가 있습니다.

ElasticSearch의 특징?

ElasticSearch 는 전문 검색 엔진입니다. 전문이란 전문가의 전문이 아닌 Full-Text라는 의미를 갖고 있습니다. 용어 단위로 분석하고 인덱싱하고 역인덱싱을 하여 검색이 가능하도록 작업합니다.
NoSQL의 특징을 갖고있는데 JSON 형태로 입력 및 관리하고 있습니다. 또한 쿼리에 따른 원본 Document를 반환하며 다양한 DataType 에 최적화 되어있습니다.
병렬처리와 분산처리를 하며 구성이 잘되어 있다면 아무리 많은 데이터가 있다고 해도 1초 안에 결과가 반환된다고 합니다.

0개의 댓글