본문 바로가기
DataOps/Elasticsearch

[Elasticsearch] 1. 엘라스틱 서치란?

by BenKangKang 2024. 1. 26.

역사

  • 2010년 2월 샤이 배논이 아파치의 루씬 라이브러리를 기반으로 만든 분산 검색 엔진 → 루씬은 중요한 역할을 하니 기억할 것
  • 2012년에 설립한 엘라스틱에서 관리
  • 2013년 키바나, 로그스태시가 엘라스틱에 합류
  • 2015년 비츠가 합류하면서 엘라스택 스택 완성

소개

  • 검색 엔진 분야에서 가장 각광받고 있는 시스템
  • 분산 처리나 고가용성, 수평적 확장성 등 엔터프라이즈 영역에 필요한 주요 기능을 제공
  • 데이터 수집부터 시각화를 위한 플랫폼 구축까지 한번에 소화할 수 있어 인기가 많음
  • JSON 기반 문서 자정, 색인
  • NoSQL 스토리지 성격도 가지고 있음

주요 개념

  • 루씬
    • 데이터를 색인하고 검색 기능을 제공하는 검색 엔진의 코어 라이브러리
    • 엘라스틱 서치는 루씬을 코어로 이용해 JSON 문서 저장, 색인, 검색 처리

특징

  • 검색 엔진
    • RDBMS, 경쟁 NoSQL 에 비해 매우 강력한 검색 기능을 제공한다
    • 단순 텍스트 매칭이 아닌 Full test earch 가능
    • 역색인 사용하여 검색 속도도 매우 빠름
    • 다양한 애널라이저 조합하여 비즈니스 요구사항에 맞는 색인 구성할 수 있음
    • 형태소 분석 가능함
  • 분산 처리
    • 분산 처리 고려해 설계됐다
    • 데이터를 여러 노드에 분산하여 저장
    • 검색이나 집계 작업 등을 수행할 때도 분산 처리 지원
  • 고가용성 제공
    • 클러스터 일부 노드가 장애 발생해도 데이터 중단 없이 서비스 지속 가능
    • 복제본 개수를 유지하면서 노드 간 데이터 균형을 자동으로 맞춤
  • 수평적 학장성
    • 최신 버전에서는 수평 확장 지원
  • JSON 기반 REST API 제공
    • HTTP + JSON 으로 문서 저장, 색인, 검색 가능하다.
  • 데이터 안정성
    • 높은 데이터 안정성
    • 데이터 색인 후 200 OK 받으면 그 데이터는 디스크에 확실히 기록 (translog)
  • 다양한 플러그인 통해 기능 확장 지원
  • 준실시간 검색
    • near real-time search 지원
    • 다만 색인 직후 검색 요청은 성공 못할 가능성 높음(조회는 가능) → 역색인 후 검색까지 최대 1초 걸린다.
  • 트랜잭션 지원하지 않음
    • 서비스와 데이터 설계 시 고려
  • 조인 지원하지 않음
    • 조인을 염두해 설계되지 않았다.
    • 데이터를 비정규화해야하기 때문에 조인을 생각하지 않으면 된다.

라이센스

  • 엘라스틱 라이선스, SSPL 지원
  • 깃허브 코드는 사용자가 라이센스 골라서 적용 가능
  • SSPL(Server Side Public License)
    • https://hbase.tistory.com/454
    • AWS와의 분쟁으로 몽고DB가 만듦
    • 클라우드 형태로 기술을 제공하는 경우 제약이 발생 → SaaS 형태로 제공하는 경우
  • 대안
    • 오픈서치

환경 세팅

  • 엘라스틱 서치 설치 → 검색 엔진
  • 키바나 설치 → 시각화 도구
  • Cerebro 설치 → 엘라스틱 클러스터 상태 확인과 관리를 도와주는 서드파트 솔루션

댓글