
엘라스틱 스택(엘라스틱 플랫폼)
엘라스틱 스택은 ELK로 불리던 Elasticsearch(엘라스틱서치) + Kibana(키바나) + Logstash(로그스태시)와 Beats(비츠)등의 서로 통합되는 핵심 컴포넌트를 하나로 묶은 대용량 데이터 처리 플랫폼이다. 예전에는 엘라스틱서치가 검색엔진으로만 주로 활용 되었지만, 엘라스틱서치와 키바나, 로그스태시의 성능향상과 다양한 비츠 프로젝트들이 만들어지면서 실시간 데이터분석, 로그분석, 보안, 애플리케이션 성능 모니터링 등 다양한 분야에 사용되고 있다.
과거 엘라스틱서치는 오픈소스 검색엔진으로 활발한 커뮤니티를 통해 끊임없이 개선하고 발전해왔는데, 7.11 버전부터는 상업적 활용을 목적으로 사용시에는 유료 라이센스가 필요하다. 현재에도 커뮤니티를 통해 다양한 정보를 얻을 수 있고 공식 도큐멘트 또한 친절하게 잘 설명되어 있다.
수평구조의 확장이 쉽다.
엘라스틱은 엘라스틱서치 실행환경이자 시스템 단위인 클러스터 안에 여러 노드들로 구성된다. 노드는 데이터 저장과 처리를 하는 엘라스틱서치 프로세스이다. 엘라스틱을 사용하다 더 많은 저장용량과 성능을 원한다면 노드를 추가하여 클러스터에 포함시면 된다. 이러한 특징으로 수평구조의 확장이 쉽다는 장점이 있다.
실시간 수집/분석
분산처리 기반의 시스템으로 대용량 데이터를 실시간으로 수집, 분석하고 수천/수만 쿼리를 처리하여 키바나를 통해 시각화까지 가능하다.
고가용성
엘라스틱서치의 노드안에는 인덱스라는 데이터 저장소가 있다. 인덱스는 여러 샤드들로 구성되어 있는데, 이 샤드는 고 가용성을 위해 본체인 프라이머리 샤드와 복제본인 레플리카 샤드가 생성된다. 프라이머리 샤드와 레플리카 샤드는 서로 다른 노드에 위치하여 한 노드에 문제가 생겨도 다른 노드에서 요청을 완료할 수 있다.
유연한 데이터 모델
엘라스틱서치는 스키마가 없는 NoSQL과 같은 데이터베이스이다. 그래서 정형화가 되어있지 않은 비정형/반정형 데이터를 처리할 수 있다. 어떤 형식의 데이터든 스키마를 지정하지 않고 입력해도 엘라스틱서치는 빠른 시간내에 데이터를 분석하고 데이터 타입을 동적으로 지정해주는 다이나믹 매핑을 사용하여 유연성 있게 데이터를 처리해준다.
역인덱스을 이용한 빠른 전문 검색
엘라스틱서치의 가장 기본이 되며 핵심적인 기능이 전문 검색이다. 엘라스틱 서치는 길이가 긴 text타입의 데이터를 역인덱스(inverted index)구조로 분석하여 저장한다. 그래서 특정 단어를 검색시에 대용량의 모든 데이터를 대상으로 전부 검색하는 것이 아닌 역색인된 토큰을 찾고 해당 토큰이 갖고있는 원본 도큐멘트의 id값을 찾기때문에 대용량 데이터를 대상으로 빠른 검색이 가능하다.
다만 단점이라면 초기 환경 설정등이 어려운걸 꼽을 수 있겠는데, 이마저도 엘라스틱에서는 AWS와 같은 클라우드와 쿠버네티스 환경에서 손쉽게 배포할 수 있는 서비스도 제공하고있다. 그리고 엘라스틱에 문의를 하면 국내의 여러 엘라스틱파트너 회사들의 엔지니어링 기술로 쉽게 솔루션으로 채택할 수 있다.