TIL 2023/01/08 ElasticSearch

YEONGDO·2024년 1월 8일
0

프로젝트에서 성능 향상을 위해 이리저리 많이 찾아보다가 엘라스틱서치를 발견했다.

Elasticsearch 란?

Elasticsearch는 텍스트, 숫자, 위치 기반 정보, 정형 및 비정형 데이터 등 모든 유형의 데이터를 위한 무료 검색 및 분석 엔진으로 분산형과 개방형을 특징으로 합니다. Elasticsearch는 Apache Lucene을 기반으로 구축되었으며, Elasticsearch N.V.(현재 명칭 Elastic)가 2010년에 최초로 출시했습니다. 간단한 REST API, 분산형 특징, 속도, 확장성으로 유명한 Elasticsearch는 데이터 수집, 보강, 저장, 분석, 시각화를 위한 무료 개방형 도구 모음인 Elastic Stack의 핵심 구성 요소입니다. 보통 ELK Stack(Elasticsearch, Logstash, Kibana의 머리글자)이라고 하는 Elastic Stack에는 이제 데이터를 Elasticsearch로 전송하기 위한 경량의 다양한 데이터 수집 에이전트인 Beats가 포함되어 있습니다.

Elasticsearch는 단독 검색을 위해 사용하거나, ELK(Elasticsearch & Logstash & Kibana) 스택을 기반으로 사용합니다.

  • 프로젝트에서 Elasticsearch(이하 ES)의 사용 이유는 ES에서 제공하는 특정 검색 기능을 쓰기 위해서이다.
  • 이 기능을 쓰기 위해서 우선 테이블 역할을 하는 인덱스(index)를 생성하고 데이터를 저장해야하고, 검색 API를 요청해야 한다.

- gradle 이용

implementation 'org.springframework.boot:spring-boot-starter-data-elasticsearch:2.6.2'

- ELK를 이용한 로깅 구성
마이크로서비스 아키텍처에서 가장 많이 사용하는 로깅 방식으로는 ELK 와 EFK가 있으며 ELK는 Elasticsearch, Logstash, Kibana로 구성되고 EFK는 Elasticsearch, Fluentd, Kibana로 로깅을 구성한다. ELK의 각 솔루션별 기능을 보면 logstash를 통해 데이터를 집계하고 처리한 다음 elasticsearch를 통해 원하는 데이터 항목을 인덱싱하고 저장하고 kibana를 통해 이렇게 인덱싱된 데이터를 보여주는(Visualization) 구조를 가진다.

마치며..
검색을 할 때 성능을 높이는 엔진을 사용 해보고싶긴 하지만 음.. 대용량에서 성능이 좋아진다고하긴 하는데 소규모라면 소규모프로젝트에 굳이 적용할 필요가 있나(과한가?) 싶은 생각도 있어서 아직 보류중! 화이팅~

profile
개발 블로그

0개의 댓글