Elasticsearch

EricHan·2022년 8월 25일
0

이전에 Search process를 설명할 때 잠깐 언급이 되었었던 Elasticsearch.

현재 가장 최적화 된 검색 엔진으로 많이 알려져 있으며
Elasticsearch는 검색을 위해 단독으로 사용되기도 하지만 주로 ELK(Elasticsearch / Logstash / Kibana) 스택으로써 많이 소개 된다.

Redis에서 index라는 책갈피에 넣어져 검색할 때 단어를 찾아오는 기능과는 달리 Elasticsearch에서 검색되어지는 것들은 문장으로 되어진 형태라 주로 Redis에서는 간단한 상품명이나 카테고리 등의 검색을 Elasticsearch에서는 세부정보나 내용 검색을 할 때 쓰인다고 들었다.

그렇다면 Elasticsearch는 어떤 이유로 현재 가장 많이 쓰이는 검색 엔진으로 자리 잡을 수 있게 되었을까?

1.검색에서 가장 중요시되는 요인 중 하나가 검색했을 때 결과값이 도출되는 속도인데 Elasticsearch는 Lucene을 기반으로 구축되기 때문에, 풀텍스트 검색(문장 검색 기능)에 뛰어납니다. 또한 실시간 검색이 가능한 플랫폼이라 무서가 색인될 때부터 검색 가능 해질 때 까지의 대기시간이 아주 짧아(1초) 여러 방면에서 사용이 가능하다.(보안 분석, 모니터링 등)

  1. Elasticsearch에 저장된 문서는 샤드라고 하는 여러 다른 컨테이너에 걸쳐 분산되며, 이 샤드는 복제되어 하드웨어 장애 시에 중복되는 데이터 사본을 제공해주기 때문에 만약 서버에 문제가 생기더라도 비교적 안전하게 서버 데이터를 옮겨 놓을 수 있게 된다.(문제가 생긴 샤드만 처리하면 됨)

Elasticsearch는 Elasticsearch Service(Amazon Web Services(AWS), Google Cloud(GCP), Alibaba Cloud에서 이용 가능)를 통해 호스팅되는 관리형 서비스로 배포될 수 있습니다. 또는 사용자가 다운로드하여 직접 자체 하드웨어나 클라우드에 설치할 수도 있다.

하지만 현재는 GCP에서는 어떤 이유 때문인지 서비스 사용기능 없어져서 AWS에서 지원해주는 Elasticsearch 쓰는것이 좋을 것 같다.

마지막으로 Elasticsearch는 Rest API 또한 제공 되기 때문에 클러스터 상태 확인 및 인덱스 에 대한 CRUD(생성,읽기,업데이트, 삭제) 및 검색 작업 실행과 필터링, 집계 같은 고급 검색 작업 수행도 가능하게 해준다.

profile
desarollitor

0개의 댓글