본문으로 바로가기

Elasticsearch 개념 및 용어

category ELK 2021. 7. 7. 13:41
반응형


최근 회사에서 검색엔진을 Elasticsearch 전환하는 데이터 개선 프로젝트에 참여하게 되었습니다.
회의를 참여하면서 Elasticsearch에 대한 지식이 없기 때문에 이해하지 못했던 용어들이나 기본 개념에 대해 정리해보려고 합니다.

Elasticsearch는 Apache Lucene 기반의 java 오픈 소스 분산 검색 엔진입니다.
사용 용도로는 애플리케이션 및 웹사이트 검색, 로깅과 로그 분석, 위치 기반 정보 데이터 분석 및 시각화 등이 있습니다.

 

Elasticsearch 활용
- 빌트온 : 많은 양에 데이터로 인해 RDBMS의 속도 저하, 잦고 긴 다운타임으로 인해 ElasticSearch 도입하여 처리 속도를 60배 빠르게 처리
- 11번가 : ElasticSearch를 통한 주문/결제에 대한 로그, 모니터링 및 이상 감지 파악
- 이베이 : eBay 상품검색, 주소록, 자동완성 등의 기능을 위해 Elasticsearch를 사용하고 있으며 eBay에서 발생하는 대량의 데이터로그들을 Elasticsearch를 사용해서 저장, 검색하고 있습니다.
- 깃허브 : 많은 양의 소스 코드를 검색시 활용

Elasticsearch 장점
- 실시간 검색
- 집계 기능 제공
- 시스템 확장 용이
- 로그 시스템 개발 활용 적합

 

 

용어 정리


1. ELK
Elasticsearch / Logstatsh / Kibana 를 합쳐서 부른 단어 입니다.
Elasticsearch : 분석 및 저장 기능
Logstatsh : 수집 기능
Kibana : 시각화 기능

2. 인덱스

RDBMS  ElasticSearch
Database, Table Index
Row Document
Column Field
Schema Mapping
Partition Shard
SQL Query DSL

 

RDBMS  ElasticSearch
CREATE GET
INSERT PUT
UPDATE POST
DELETE DELETE

 


3. 노드
노드는 클러스터에 포함된 단일 서버로서 데이터를 저장하고 클러스터의 색인화 및 검색 기능에 참여한다. 

* 데이터 색인 / 검색 기능을 수행하는 Elasticsearch의 단위 프로세스

4. 클러스터
하나 이상의 노드로 구성되며 사용자는 클러스터를 통해 전체 데이터를 저장하고 모든 노드를 포함하는 통합 색인화 및 검색 기능을 제공합니다. 

* 클러스터 -> 노드, 노드, 노드, 노드 ....

5. 샤드
문제점
     인덱스의 데이터를 나누는 단위로, 인덱스가 많은 양의 도큐먼트를 저장하고 있고 많은 데이터를 넣게 되면 문제 발생
         - 단일 노드의 디스크 볼륨 크기의 유한성으로 더 이상 저장이 불가능
         - 단일 노드의 디스크에서 수용하지 못하거나 단일 노드에서 검색의 성능이 저하될 수 있음.

위와 같은 문제를 해결하기 위해 인덱스(Table)에 들어오는 도큐먼트(Row)들을 관계형 데이터베이스처럼 컬럼별로 나눈 것이 아닌 문서별로 횡의로 나눠 샤드에 저장한다. (샤딩)

샤드 종류
     1. 기본 샤드 (Primary Shard)
     2. 복사본 샤드(Replica Shard)
         - 샤드/노드 오류가 발생하더라도 고가용성을 제공한다. 따라서 리플리카 샤드는 그 원본인 기본 샤드와 동일한 노드에 배정되지 않는다.

         - FAIL-OVER
         - 모든 리플리카에서 병렬 방식으로 검색을 실행할 수 있으므로 검색 볼륨/처리량을 확장할 수 있다.
         - 색인이 생성된 다음 언제라도 탄력적으로 복사본 샤드의 수를 변경할 수 있으나, 기본 샤드 수는 사후 변경이 불가하다.
샤드 목적
     1. 콘텐츠 볼륨의 수평 분할/확장이 가능
     2. 작업을 여러 샤드에 분산 배치하고 병렬화함으로써 성능/처리량을 늘릴 수 있음.

6. 색인
특정한 데이터가 어느 위치에 있는지 미리 저장해두어 검색시에 빠른 속도로 찾을 수 있게 해주는 것. (인덱스)


<참조1, 참조2>

반응형