Elastic Stack이란
Elastic Stack 이란 모든 유형의 데이터(특히 비정형 데이터)를 저장, 실시간으로 검색, 분석 및 시각화 할 수 있도록 도와주는 Elastic의 오픈소스 서비스 제품이다. 기존에 Elasticsearch, Logstash, Kibana를 같이 묶어 ELK 라는 서비스명으로 제공하기 시작했고, 현재 Beats가 포함되어 Elastic Stack 혹은 ELK Stack이란 이름으로 서비스가 제공되고 있다.
Elastic Stack의 구성
 
종류 | 기능 | 특이점 |
---|---|---|
Elasticsearch | 데이터 검색, 분석, 저장 | |
Kibana | 데이터 시각화, 분석 | |
Logstash | 데이터 수집, 변환, 운송 | 데이터 처리 파이프라인. 특히 로그를 운반하는 역할. |
Beats | 데이터 수집, 운송 | Logstash와 비슷하나, 변환 기능이 제외되어 있음. 보다 가볍게 사용할 수 있음. |
이외에 Elastic Cloud와 X-pack이 추가로 있으며, 기업을 대상으로 한 Enterprise 솔루션도 확대되고 있는 추세다.
- X-pack의 경우 유료이며, 보안을 강화하여 유저에게 권한까지 부여 가능하다.
- X-pack의 머신러닝 기능은 현재로서는 데이터의 이상징후를 탐지하는 수준이다.
Elastic, 어떻게 좋은가?
Near Realtime
- 데이터 색인 후 약 1초 후 Refresh 시점부터 거의 실시간으로 검색결과에 반영됨
Fast
- 기본적으로 모든 Field에 대해 Indexing(색인) 처리를 하기 때문에 검색 처리 시간이 짧다
Horizontal Scalability
- Elastic Cluster에 Elasticsearch Node를 1개씩 추가하며 수평적으로 확장하기에 용이하다
Distributed Operation
- 데이터를 조각(shard)로 세분화 하여 분산 저장하기 때문에 처리 속도가 향상된다.
Replica Shard
- 데이터 조각을 복제하여 다른 Node에도 저장하기 때문에, 특정 Node가 다운되거나 손실이 생겨도 데이터 유실 없이 운영할 수 있다.
Elastic Stack에서의 용어 비교
RDBMS | Excel | Elastic | Elastic에서의 개념 |
---|---|---|---|
Database | Excel File | Index | 최상위 데이터 계층. Document의 덩어리 |
Table | Sheet | Type | Document를 담고 있는 컨테이너 (*) |
Row | Row | Document | 데이터 검색을 위한 최소의 단위 |
Column | Column | Field | JSON으로 이루어진 데이터의 property |
Schema | 없음 | Mapping Index | Document의 저장 규칙을 의미 |
- RDBMS, Excel과는 달리 엘라스틱에서는 1 Index에 1개의 Type만 할당되어 사실상 의미가 사라진 상태이며, 7.0버전으로 업그레이드 시 Type이란 개념은 폐지 될 예정이다.
Elastic의 Work Flow
Elasticsearch
- Mapping 설정
Logstash
- 데이터 전처리 & 전송
Elasticsearch
- 데이터 저장
Kibana
- Index 등록
- EDA
- 차트 선택
- Aggregation 선택
- 데이터 시각화
- 대시보드 생성