Skip to content

엘라스틱 서치와 엘라스틱 스택

엘라스틱 서치는 저장된 데이터에서 원하는 내용을 찾는 검색 엔진입니다.
데이터를 저장하는 역할도 수행하기 때문에 일종의 NoSql 데이터베이스로도 볼 수 있어요.
주로 대용량 데이터에 대한 빠른 검색과 집계가 필요할 때 선택하는 기술입니다.



2. 엘라스틱 스택

엘라스틱 서치는 단독으로 사용하기 보다는 다른 프로그램들과 같이 사용되곤 합니다.
엘라스틱 서치만으로는 데이터를 효율적으로 사용하는데 어려움이 있기 때문입니다.
일반적인 빅데이터 파이프라인은 수집, 가공, 저장, 분석, 시각화의 단계로 구성되어있습니다.
각 단계를 담당하는 대표적인 프로그램은 다음과 같습니다.
먼저 수집, 가공의 역할은 로그스태시가 담당합니다. 다음으로 저장, 분석은 엘라스틱 서치가 담당합니다.
시각화는 키바나가 담당합니다. 이처럼 엘라스틱서치와 함께 빅데이터 파이프라인을 구축하는데 필요한 요소들을 아울러서 엘라스틱 스택이라고 부릅니다.



3. 엘라스틱 스택의 구성요소

앞서 언급한 엘라스틱 스택의 구성요소에 대해서 간단히 알아보겠습니다.
로그스태시는 데이터의 수집과 가공을 담당합니다.
원하는 데이터를 수집하고 필터를 이용해 필요한 부분만 추려내어 가공하는 작업을 담당합니다. 엘라스틱 서치는 수집한 데이터를 용어 단위로 분석해서 인덱스라는 자료구조를 만들고 이에 알맞게 데이터를 저장합니다.
인덱스는 엘라스틱 서치가 최적화된 검색을 가능하게 도와줍니다. 검색은 역인덱싱이라는 기법을 많이 활용하는 편입니다.
키바나는 엘라스틱 서치 기반의 시각화 도구입니다.
중요한 기능으로는 대시보드가 있습니다.
대시보드에서는 차트, 표, 지도 등의 시각화 요소로 데이터를 표현할 수 있게 도와줍니다. 키바나는 데이터를 원하는 형태로 만들어 확인하기 좋습니다.



4. 엘라스틱 스택의 용도

엘라스틱 스택은 전문 검색 엔진, 로그 통합 분석, 애플리케이션 성능 분석 등에 사용됩니다.
전문(fulltext)은 단순한 문장, 기사, 논문 등 다양한 글의 전체 내용을 의미합니다.
이런 글에서 검색을 하는것이 전문 검색입니다.
특정 단어가 포함된 글을 검색해야 하는 상황을 예로 들어볼까요? 관계형 데이터베이스에 LIKE 검색으로 해당되는 글을 검색할 수 있습니다.
하지만 데이터가 많아질수록 LIKE로는 감당하기 힘들어집니다.
엘라스틱 서치는 전문을 용어 단위로 분석해서 인덱스를 만들기 때문에 빠르게 검색을 수행할 수 있습니다.

엘라스틱 스택은 로그 통합 분석 도구로도 적합합니다. 단순한 서비스라면 로그파일에 tail 명령어를 사용하는것 만으로도 로그를 파악하는것이 가능합니다.
하지만 여러 서비스를 연동하면서 구조가 복잡해지고 로그를 저장하는 위치가 제각각인경우 얘기가 달라지죠.
엘라스틱 스택을 사용하면 로그를 한곳에서 관리할 수 있습니다. 덕분에 모니터링하고 분석하기도 편리합니다.

엘라스틱 스택은 애플리케이션 성능 분석에도 적합합니다.
대표적인 성능 분석 방법은 응답시간 데이터 활용하는 것입니다.
예를 들자면 트랜잭션 응답시간이 오래걸린다면 쿼리 튜닝을 하거나, 특정 시간대에 사용자가 몰리면 응답 시간이 길어지는 부분을 확인하고 개선할 수 있습니다.



참고

엘라스틱 스택 개발부터 운영까지 - 책만


작성자: 성승익

작성일: 2021-11-22