-
ElasticSearch vs. OpenSearchDevOps 2025. 3. 23. 22:43728x90
- Lucene은 검색 알고리즘의 엔진
- Elasticsearch는 운영 가능한 분산 검색 서비스
Lucene = 자동차 엔진
Elasticsearch = 엔진 + 차체 + 운전석 + 자동 조향 + 내비게이션1. Lucene, Elasticsearch, OpenSearch 관계 요약
계층 설명 🔧 Lucene 검색 알고리즘을 제공하는 Java 라이브러리 (core engine) 🚀 Elasticsearch Lucene 위에 구축된 분산 검색 & 분석 엔진 (REST API 제공) 🌿 OpenSearch Elasticsearch의 오픈소스 포크(Fork). AWS가 주도 관계:
- Lucene은 "엔진" (문서 색인 및 검색 알고리즘 제공)
- Elasticsearch / OpenSearch는 Lucene을 감싸서 분산 처리, API, 클러스터링 등을 제공하는 "서비스 레이어"
2. Lucene이란?
- Apache Lucene: Java로 만든 고성능 텍스트 검색 라이브러리
- inverted index, tokenizer, analyzer, scoring 등 검색에 필요한 모든 로직 내장
- 직접 쓰면 고성능이지만 사용이 매우 복잡함
Elasticsearch, OpenSearch는 Lucene을 내부에서 엔진으로 사용
3. Elasticsearch vs OpenSearch
항목 Elasticsearch OpenSearch 주도 기업 Elastic.co AWS (Amazon) 라이선스 변경 2021년, SSPL로 변경 → 오픈소스 아님 Apache 2.0 (완전 오픈소스) 포크 시점 OpenSearch는 7.10.2 버전에서 포크됨 7.10.2와 거의 동일 라이선스 SSPL (비공식 오픈소스) Apache 2.0 (공식 오픈소스) Kibana 대체 Kibana OpenSearch Dashboards 확장성/플러그인 일부 유료 대부분 오픈소스 (Alerting, SQL 등 포함) 생태계 Elastic Stack (ELK) OpenSearch Stack 상용 버전 Elastic Stack 유료 기능 존재 OpenSearch는 전부 오픈소스 (AWS 버전도 무료) 클라우드 서비스 Elastic Cloud (유료) Amazon OpenSearch (AWS 관리형 서비스) 왜 OpenSearch가 생겼을까?
- Elastic이 Elasticsearch를 오픈소스에서 SSPL로 전환하며 클라우드 기업이 자유롭게 사용할 수 없게 됨
- 이에 Amazon이 Elasticsearch 7.10.2 버전을 포크 → OpenSearch 생성
- AWS 주도로 활발히 개발 중이며, 대부분 Elasticsearch와 호환됨
API / 기능 비교
기능 Elasticsearch OpenSearch 검색 쿼리 DSL ✅ 동일 ✅ 동일 Full-text 검색 ✅ ✅ Kibana ✅ ❌ (대신 OpenSearch Dashboards) SQL 지원 ✅ 유료 일부 ✅ 무료 기본 Alerting 유료 무료 Machine Learning 유료 커뮤니티 ML 플러그인 (제한적) Anomaly Detection 유료 무료 기본 포함
성능과 호환성
- 단일 노드/소규모 클러스터에서는 성능 거의 동일
- Elasticsearch 8.x 이후는 OpenSearch와 호환되지 않음 (API 차이 존재)
- OpenSearch는 Elasticsearch 7.10.2 API까지 호환
어떤 걸 선택해야 할까?
상황 추천 100% 오픈소스 원함 ✅ OpenSearch AWS에서 운영 예정 ✅ OpenSearch (Amazon OpenSearch Service 추천) Elastic Stack + 상용 기능 사용 중 ✅ Elasticsearch + 유료 옵션 최신 Elasticsearch 기능 필요 ✅ Elasticsearch (8.x 이상) 자체 호스팅, 비용 민감 ✅ OpenSearch (무료 + 전체 기능 포함)
✅ 요약
항목 Elasticsearch OpenSearch Lucene 기반 ✅ ✅ 오픈소스 라이선스 ❌ (SSPL) ✅ (Apache 2.0) 대체 UI Kibana OpenSearch Dashboards AWS 호환성 ❌ ✅ (Amazon 주도) 최신 버전 8.x 이상 2.x, 3.x (AWS 관리형 기준) 대표 사용처 ELK Stack, Elastic Cloud AWS, 자체 운영 검색 시스템 🏢 Lucene을 직접 사용하는 기업 & 유즈케이스
1️⃣ Apache Solr
- Lucene을 직접 래핑한 검색 플랫폼
- Lucene을 내부 엔진으로 직접 사용하면서 고급 기능 제공
- Lucene을 직접 사용하는 가장 유명한 OSS 중 하나
🧠 Solr도 REST API 제공하지만, Elasticsearch보다 Lucene과의 거리가 더 가까움
2️⃣ LinkedIn
- 과거에 Lucene 기반의 Galene 검색엔진을 자체 개발
- Lucene을 커스터마이징해서 사용자 검색, 채용 공고 검색 등에 활용
- Lucene의 검색 스코어링 및 커스터마이징을 적극 활용
3️⃣ Twitter
- 검색 인프라에 early on Lucene을 도입 (후에 Finagle + Elastic 등으로 확장)
- 트윗 검색/트렌드 검색에서 직접 Lucene 기반 구성 실험
4️⃣ Apple, Netflix 등 일부 빅테크
- 내부적으로 Lucene을 경량 인덱싱 엔진으로 사용
- 예: Spotlight(Apple), 검색 제안, 카탈로그 검색 등
5️⃣ 임베디드 시스템, 모바일 앱, 데스크탑 앱
- Elasticsearch는 너무 무겁기 때문에 Lucene을 직접 자바 앱에 포함
- 예: IDE(인텔리제이), 오프라인 검색 기능이 있는 앱 등
💡 실제 유즈케이스 예시
유즈케이스 설명 검색 제안 시스템 Lucene의 prefix query, fuzzy query 활용해 빠른 자동완성 문서 색인기 PDF, HTML, Word 문서 인덱싱 & 검색 개인용 검색 도구 개발자용 로컬 문서 검색 툴 등 IDE 코드 검색 JetBrains IntelliJ는 Lucene 사용 오프라인 데이터 검색 비즈니스 앱, 모바일 앱에서 Lucene 내장 활용
⚠️ Lucene 직접 사용의 단점
항목 내용 개발 복잡성 ↑ 직접 인덱스 생성, 분석기, 쿼리 파서 다 구현해야 함 분산 처리 없음 Lucene은 단일 노드 기반. 분산 처리하려면 직접 구현해야 함 모니터링/관리 불편 Elasticsearch처럼 시각화 도구(Kibana 등) 없음 운영 난이도 안정성과 장애 대응 로직도 직접 구현해야 함
✅ 요약
항목 설명 Lucene은 검색의 "엔진" 역할 대부분 Elasticsearch/OpenSearch에서 내부적으로 사용 직접 사용하는 사례 있음 Solr, LinkedIn, 일부 대기업, IDE 등 사용 이유 고성능, 커스터마이징, 경량 주의할 점 운영 복잡도와 개발 비용 증가 728x90'DevOps' 카테고리의 다른 글
Elasticsearch와 OpenSearch의 차이점 (0) 2025.03.25 DATABASE에서 쿼리가 수행되는 전체 과정 (0) 2025.03.25 HA Proxy와 Nginx 비교 (0) 2025.03.23 Redis는 스토리지 공간 사용 용도 (0) 2025.03.23 Redis 클러스터를 구성하는 방법과 운영 시 주의점 (0) 2025.03.22