Elasticsearch란?
Elasticsearch
는 Apache Lucene
기반의 java opensource search engine
이다.데이터 저장소
가 아니라 MySQL
같은 데이터베이스를 대체할 수 없다.Elasticsearch
는 검색을 위해 단독으로 사용되기도 하며, ELK(Elasticsearch)
, Logstash
, Kibana
스택으로 사용되기도 한다.ELK (Elasticsearch / Logstash / Kibana ) 스택
ELK
는 위 그림과 같이, 분석 및 저장 기능을 담당하는 Elasticsearch
, 수집 기능을 하는 Logstash
, 이를 시각화하는 Kibana
의 앞글자만 딴 단어이다.
접근성과 용이성이 좋아 가장 핫한 Log
및 데이터 분석 도구이다.
Logstash
: 다양한 소스(DB, csv파일 등)의 로그 또는 트랜잭션 데이터를 수집, 집계, 파싱하여 Elasticsearch
로 전달Elasticsearch
: Logstash
로 부터 받은 데이터를 검색 및 집계를 하여 필요한 관심 있는 정보를 획득.Kibana
: Elasticsearch
의 빠른 검색을 통해 데이터를 시각화 및 모니터링Elasticsearch ~ RDBMS
Elasticsearch를 REST API를 사용 ~ RDBMS
Elasticsearch를 사용하는 이유
Fast
: Lucene
기반으로 구축되기 때문에 전체 텍스트 검색에 뛰어남, 실시간 검색 플랫폼으로 봐도 무관하다. 즉, 문서가 색인될 때부터 검색 가능해질때까지의 대기시간이 아주 짧다는 말이다.Distributing
: Elasticsearch
에 저장된 문서는 샤드라고 하는 여러 다른 컨테이너에 걸쳐 분산되며, 이 샤드는 복제되어 하드웨어 장애 시 중복되는 데이터 사본을 제공한다. 이는 수백개의 서버까지 확장하여 페타바이트의 데이터를 처리할 수 있게 해준다. Wide-range
: 속도, 확정성, 복원력뿐 아니라 Elasticsearch
에는 데이터 롤업, 인덱스 수명 주기 관리 등과 같이 데이터를 훨씬 더 효율적으로 저장하고 검색할 수 있게 해주는 강력한 기본 기능이 다수 탑재되어 있다.Abstract
: by Kibana
, Beats
, Logstash
출처