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, 어떻게 좋은가?

  1. Near Realtime

    • 데이터 색인 후 약 1초 후 Refresh 시점부터 거의 실시간으로 검색결과에 반영됨
  2. Fast

    • 기본적으로 모든 Field에 대해 Indexing(색인) 처리를 하기 때문에 검색 처리 시간이 짧다
  3. Horizontal Scalability

    • Elastic Cluster에 Elasticsearch Node를 1개씩 추가하며 수평적으로 확장하기에 용이하다
  4. Distributed Operation

    • 데이터를 조각(shard)로 세분화 하여 분산 저장하기 때문에 처리 속도가 향상된다.
  5. Replica Shard

    • 데이터 조각을 복제하여 다른 Node에도 저장하기 때문에, 특정 Node가 다운되거나 손실이 생겨도 데이터 유실 없이 운영할 수 있다.

Elastic Stack에서의 용어 비교

RDBMSExcelElasticElastic에서의 개념
DatabaseExcel FileIndex최상위 데이터 계층. Document의 덩어리
TableSheetTypeDocument를 담고 있는 컨테이너 (*)
RowRowDocument데이터 검색을 위한 최소의 단위
ColumnColumnFieldJSON으로 이루어진 데이터의 property
Schema없음Mapping IndexDocument의 저장 규칙을 의미
  • RDBMS, Excel과는 달리 엘라스틱에서는 1 Index에 1개의 Type만 할당되어 사실상 의미가 사라진 상태이며, 7.0버전으로 업그레이드 시 Type이란 개념은 폐지 될 예정이다.

Elastic의 Work Flow

  1. Elasticsearch

    • Mapping 설정
  2. Logstash

    • 데이터 전처리 & 전송
  3. Elasticsearch

    • 데이터 저장
  4. Kibana

    • Index 등록
    • EDA
    • 차트 선택
    • Aggregation 선택
    • 데이터 시각화
    • 대시보드 생성