Elasticsearch는 Elastic이 개발한 소스 사용 가능 검색 엔진이다. Apache Lucene을 기반으로 하며, HTTP 웹 인터페이스와 스키마 없는 JSON 문서를 갖춘 분산형, 멀티테넌트 지원 전체 텍스트 검색 엔진을 제공한다. 공식 클라이언트는 Java, C#, PHP, Python, Ruby 및 기타 언어로 제공된다. DB-Engines 순위에 따르면 Elasticsearch는 가장 인기 있는 엔터프라이즈 검색 엔진이다. 벡터 검색에 자주 사용되며 인공지능 및 머신러닝 맥락의 애플리케이션을 구동한다.
Elasticsearch는 분산형이며, 샤드로 나뉜 인덱스에 저장된 JSON 문서를 사용하며, 각 샤드는 클러스터 노드에 분산된 복제본을 가질 수 있다. 전체 텍스트 검색, 패싯 검색, 실시간 검색 및 멀티테넌시를 지원한다. 이 소프트웨어는 Elastic Stack(이전의 ELK Stack)의 일부로 Logstash, Kibana 및 Beats와 함께 개발된다.
역사
Shay Banon은 2004년에 Elasticsearch의 전신인 Compass를 만들었다. Compass의 세 번째 버전을 개발하면서, JSON을 HTTP를 통한 공통 인터페이스로 사용하는 확장 가능한 분산 검색 솔루션을 구축하려면 완전한 재작성이 필요하다고 결론지었다. 그는 2010년 2월에 Elasticsearch의 첫 번째 버전을 출시했다.
Elastic NV는 2012년에 Elasticsearch 및 관련 소프트웨어 주변의 상용 서비스와 제품을 제공하기 위해 설립되었다. 2014년 6월, 회사는 New Enterprise Associates가 주도하고 Benchmark Capital과 Index Ventures가 추가 자금을 지원한 Series C 라운드에서 7천만 달러를 모금하여 총 자금은 1억 4백만 달러에 달했다.
2015년 3월, 회사는 이름을 Elasticsearch에서 Elastic으로 변경하고, Found를 인수하여 이후 Elastic Cloud로 알려진 관리형 클라우드 서비스를 출시했다. 2017년 11월, Elastic은 검색 스타트업 Swiftype을 인수했으며, 그 기술은 Elastic App Search와 Elastic Site Search의 기반이 되었다. Elastic은 또한 Google Cloud Platform에서 Elastic Cloud를 제공하기 위해 Google과, Alibaba Cloud에서 Elasticsearch와 Kibana를 제공하기 위해 Alibaba와 파트너십을 체결했다.
2018년 6월, Elastic은 예상 평가액 15억~30억 달러로 기업공개(IPO)를 신청했다. 2018년 10월 5일, Elastic은 뉴욕 증권거래소에 상장되었다.
라이선스 변경
2021년 1월, Elastic은 버전 7.11부터 Elasticsearch와 Kibana가 Apache License 2.0에서 Server Side Public License와 Elastic License의 이중 라이선스로 재라이선스될 것이라고 발표했으며, 둘 다 오픈소스 라이선스로 인정되지 않는다. Elastic은 이 변경이 Elastic이 적절한 협력이 없다고 설명한 Amazon Web Services(AWS)가 Elasticsearch와 Kibana를 서비스로 제공하는 것에 대한 대응이라고 밝혔다. 이 변경에 대한 비판자들은 Elastic이 이전에 Elasticsearch, Kibana, Beats 및 Logstash의 Apache 2.0 라이선스를 변경하지 않겠다고 약속했으며, 이 움직임이 생태계를 손상시킬 것이라고 예측했다고 지적했다.
AWS는 Apache License 2.0 하에서 개발을 계속하기 위한 프로젝트 포크를 발표하며 대응했다. Logz.io, CrateDB 및 Aiven을 포함한 Elasticsearch 생태계의 다른 구성원들도 포크를 지원하겠다고 약속했다. "Elasticsearch"라는 이름과의 잠재적 상표 충돌로 인해 AWS는 2021년 4월에 포크를 OpenSearch로 브랜드 변경했다.
2024년 8월, Elastic은 버전 8.16.0부터 Elasticsearch에 GNU Affero General Public License를 세 번째 라이선스 옵션으로 추가했다. 이로써 이 소프트웨어는 두 가지 소스 사용 가능 옵션과 함께 다시 한 번 자유 오픈소스 라이선스로 제공되게 되었다.
아키텍처 및 기능
Elasticsearch는 Apache Lucene을 기반으로 구축되었으며 JSON 및 Java API를 통해 Lucene의 기능을 노출한다. 문서는 기본 샤드로 나뉜 인덱스에 저장되며, 각 샤드는 클러스터 노드에 분산된 0개 이상의 복제본을 가질 수 있다. 라우팅 및 리밸런싱은 자동으로 처리된다. 인덱스가 생성되면 기본 샤드 수는 변경할 수 없다.
이 엔진은 패싯 검색과 저장된 쿼리가 수신 문서와 반대 방향으로 일치되는 예측 검색 형태인 퍼콜레이션을 지원한다. 게이트웨이 모듈은 장기 인덱스 지속성을 처리하여 노드 장애 후 인덱스를 복구할 수 있게 한다. 실시간 GET 요청은 Elasticsearch를 NoSQL 데이터 저장소로 사용할 수 있게 하지만, 분산 트랜잭션은 지원하지 않는다.
2019년 5월, Elastic은 암호화 통신을 위한 TLS, 파일 및 네이티브 영역 인증, 클러스터 API 및 인덱스에 대한 역할 기반 접근 제어를 포함한 Elastic Stack의 핵심 보안 기능을 무료로 제공했다. 해당 소스 코드는 Elastic License 하에서 제공된다. Elasticsearch는 또한 상용 제품의 일부로 SIEM 및 머신러닝 기능을 제공한다.
공식 클라이언트 라이브러리는 Java, C#(.NET), PHP, Python 및 Ruby 등을 위해 유지 관리된다.
Elastic Stack
Elasticsearch는 Logstash(데이터 수집 및 로그 파싱 엔진), Kibana(분석 및 시각화 플랫폼) 및 Beats(경량 데이터 전송 도구)와 함께 개발된다. 네 가지 제품은 Elastic Stack으로 함께 사용되도록 설계되었다. 이 조합은 이전에 "Elasticsearch, Logstash, Kibana"의 약어인 ELK Stack으로 알려져 있었다.
같이 보기
- 정보 추출
- Kibana
- Grafana
- 정보 검색 라이브러리 목록
- OpenSearch (소프트웨어) - AWS가 유지 관리하는 Elasticsearch의 오픈소스 포크
- Graylog
참조
외부 링크
- 공식 웹사이트