역사
- 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 설치 → 엘라스틱 클러스터 상태 확인과 관리를 도와주는 서드파트 솔루션
'DataOps > Elasticsearch' 카테고리의 다른 글
[Elasticsearch] 8. 엘라스틱서치의 내부 동작 상세 (0) | 2024.04.03 |
---|---|
[Elasticsearch] 3. 인덱스 설계 (Template, Routing) (0) | 2024.03.13 |
[Elasticsearch] 3. 인덱스 설계 (Analyzer, Tokenizer) (0) | 2024.03.13 |
[Elasticsearch] 3. 인덱스 설계 (설정, 맵핑, doc_values, _source) (0) | 2024.03.04 |
[Elasticsearch] 2. 엘라스틱서치 기본 동작과 구조 (0) | 2024.01.26 |
댓글