Infra/Elasticsearch

[Elasticsearch] 엘라스틱서치의 역사

DuL2 2022. 10. 10. 23:04

 엘라스틱서치(Elasticsearch)가 첫 등장했을 때는 지금과 같은 형태의 빅데이터 파이프라인을 구성하는 플랫폼으로 성공하리라 예상하지 못했습니다. 엘라스틱서치가 탄생한 배경은 명확했는데 사이트 내에서 전문 검색(full text search) 기능을 제공하는 강력한 소프트웨어의 필요성입니다. 인터넷 검색 서비스는 계속 등장했지만 이 기능에 대한 구현체는 기업의 저작권이 있기에 공개하지 않았고, 일반적인 개발자가 검색에 대한 로직을 알기 쉽지 않았습니다. 따라서 검색 서비스를 구현해야하는 회사들은 벤더의 비싼 솔루션을 사용할 수 밖에 없었습니다.

 

 루씬(Lucene)의 등장

 루씬이라는 이름은 1999년 하둡(Hadoop)으로 유명해진 더그 커팅의 부인의 중간 이름에서 따왔습니다. 루씬은 더그 커팅의 다섯 번째 검색 엔진 라이브러리 였는데 이는 2001년 아파치 자카르타(Jakarta)에 합류하였다가 프로젝트가 커지며 2005년 독립하게 되었습니다. 루씬은 전문 인덱싱과 검색 기능을 요구하는 어플리케이션에서 사용되기 시작했고, 루씬의 위력은 2003년 6월 100만 페이지를 가져오는 웹 크롤러 - 아파치 너치(Apache Nutch)에 의해 증명되게 됩니다. 너치의 근간인 맵리듀스 기능과 분산 파일 시스템은 곧 하둡의 시초가 됩니다. 

 하지만 루씬은 라이브러리 형태였고 제대로 사용하기 위해서는 사용자 편의성을 위한 상부 작업은 필수적이었습니다.  2010년에 솔라(Solr)라는 고성능 검색 엔진과 통합되어 함께 개발을 진행되게 됩니다.

 

 엘라스틱서치(Elasticsearch)의 등장

 엘라스틱 서치는 샤이너 배넌에 의해 처음 공개되었는데 엘라스틱 서치의 전신의 시작은 배넌의 부인이 손쉽게 레시피를 검색할 수 있도록 루씬을 기반으로 만든 Compass 프로젝트에서 시작되었다고합니다. 이 프로젝트에서 많은 부분을 재작성하여 확장 가능한 검색 엔진 솔루션이 되도록 목표로 하여 개발을 했습니다. 처음부터 분산 환경을 위한 솔루션, HTTP 상에서 JSON으로 인터페이스를 지원하는 솔루션, 자바 이외에도 다양한 프로그래밍 언어를 지원하는 솔루션 등을 표방하여 2010년 2월 드디어 첫 선을 보이게 됩니다.

 

 솔라(Solr)와 달리 세간의 관심을 끌 수 있었던 이유는 바로 플랫폼으로의 전향 때문이었을 것입니다. 그 당시 데이터 파이프라인을 구축하기 위해 데이터 ETL 과정 즉, 데이터를 수집, 가공, 저장, 분석, 시각화하는 일련의 과정을 하기 위해서는  다양한 오픈소스를 조합해야하는 불편함이 있었고 엘라스틱서치는 이 문제를 해결하기 위해 앞으로 나섰습니다.

 

 요르단 시셀(Jordan Sissel)이 만들고 있던 오픈소스 데이터 수집 도구인 로그스태시(Logstash)와 라시드 칸(Rashid khan)이 제작중이던 오픈소스 시각과 UI인 키바나(Kibana)를 엘라스틱에 더해 2012년 엘라스틱 스택(Elastic Stack)이 되었습니다. 초창기에는 각자 느슨하게 버전을 출시했었으나 각 버전별 함께 사용할 수 있는 조합을 관리하기가 힘들었고 이를 해소하기 위해 2015년 10월에는 버전을 동일하게 맞춘 제품을 출시하여 안정적인 기반을 만들었습니다.

 

 2015년에는 네트워크 데이터를 엘라스틱서치로 보내는 방법을 연구했던 베를린의 패킷비트(Packetbeat)라는 회사와 엘라스틱 개발팀과 연합하여 비츠(Beat)를 탄생시켰습니다.

 

이 결과 위와 같은 엘라스틱 스택이 완성되며 서치 엔진 부문 1위 점유율인 오픈소스 검색 엔진 플랫폼이 될 수 있었습니다.