All of My Records

[Elasticsearch] Elasticsearch(엘라스틱서치)란? :: ELK, Elastic Stack

by 캐떠린

저번 엘라스틱서치 개발 환경 셋팅 포스트에서 짧게 엘라스틱서치가 무엇인지 정리했는데 이번 시간에 엘라스틱서치가 과연 어떤건지 제대로 알아보자!

 

엘라스틱서치(Elasticsearch)란?

 

Elasticsearch Platform - 대규모로 실시간 답변 찾기

Elasticsearch Platform과 AI로 인사이트와 성과를 강화하세요. 구축, 관찰 및 보호를 지원하도록 설계된 엔터프라이즈 솔루션으로 데이터를 살펴보고 중요한 답을 찾으세요. 지금 Elasticsearch를 무료로

www.elastic.co

  • Elasticsearch is a distributedRESTful search and analytics engine capable of addressing a growing number of use cases. (엘라스틱서치는 분산형 RESTful 검색 및 분석 엔진이다.)
  • 속도 등의 이유로 주로 리눅스 계열에서 구동한다. → CentOS, Ubuntu 등
    그러나 리눅스 계열 외에 Windows, Mac OS 에서도 구동은 가능하다. (수업에서는 Ubuntu 사용)
  • 루씬 기반의 자바 오픈 소스 검색 엔진
  • 방대한 양의 데이터를 신속하고 거의 실시간으로 저장/검색/분석할 수 있다.
  • REST API를 제공한다.
  • JSON 형태로 데이터를 저장/조회한다.

 

ELK or Elastic Stack

  • 엘라스틱서치는 단독으로도 사용 가능 하며, ELK 스택으로 사용이 가능하다. → 다른 프로그램과 엮어서 사용
  • E : Elasticsearch
  • L : Logstash
  • K : Kibana
  • B : Beats
  • 위 4가지를 ELK 스택이라고 부른다.

 

1. Logstash/Beats

- 역할: Ingest

- 다양한 소스(DB, CSV, Log..)로부터 데이터를 가져다가 조작(추가 작업) 후 Elasticsearch에게 전달하는 역할

 

2. Elasticsearch

- 역할: Store, Search, Analyze

- 직접 수집한 데이터 or Logstash의 수집 데이터를 관리 및 조작(검색)하는 역할

 

3. Kibana

- 역할: Visualize & Manage

- Elasticsearch의 데이터를 시각화 or 편리하게 조작할 수 있는 기능을 제공하는 역할

- GUI 환경 제공

 

Elasticsearch 핵심 개념

1. 클러스터

- 노드의 집합(ex. 3대의 컴퓨터. 3개의 노드를 하나의 집합으로 묶은 단위)

- 하나 이상의 노드 집합

 

2. 노드

- 엘라스틱서치가 설치된 컴퓨터(분산된 환경에 있는 각각의 컴퓨터를 보통 노드라고 한다.)

 

3. 인덱스

- 비슷한 특성을 가진 문서의 집합

- 데이터베이스 역할(모든 데이터를 모아놓은 최상위 집합이라고 생각하면 된다.)

 

4. 타입 → Elasticsearch 7.XX ver. 로 넘어가며 거의 없어진거나 다름 없다.

- 도큐먼트 집합

- 테이블 역할

 

5. 도큐먼트

- 데이터 저장 단위

- 레코드 역할(★★★)

- JSON 포맷

 

6. 샤드&리플리카

- 분산 환경을 위한 요소

 

RDBMS와 Elasticsearch 비교하여 요약 정리

RDBMS(관계형 DBMS) Elasticsearch
Scheme(스키마) Mapping
Database Index(★★★)
Table Type
Row Document(★★★)
Column Field
SQL QueryDSL

 

*글 작성에 참고한 내용: 학원 쌤의 열정적인 수업

블로그의 정보

All of My Records

캐떠린

활동하기