Elastic Stack 을 도입할 때 확인해야 하는 것은 서로 다른 두 축이다. 하나는 라이선스 — 이 소프트웨어를 어떤 형태로 쓰고 배포해도 되는가. 다른 하나는 기능 등급 — 무료로 쓸 수 있는 기능이 어디까지인가. 둘은 별개이고, 라이선스가 허용한다고 기능이 열리는 것도 아니다.
| 시점 | 내용 |
|---|---|
| ~ 7.10 | Elasticsearch · Kibana 본체는 Apache 2.0. 별도로 -oss 배포판이 있었다 |
| 2021-01 (7.11 부터) | SSPL 과 Elastic License 2.0 의 이중 라이선스로 바뀌었다. Apache 2.0 배포판은 중단됐다 |
| 같은 해 | AWS 가 7.10 을 포크해 OpenSearch 를 만들었다. Apache 2.0 을 유지한다 |
| 2024-08 발표 (8.16 부터) | AGPL 3.0 이 선택지로 추가됐다. 세 라이선스 가운데 하나를 골라 쓸 수 있다 |
로고와 제품명 등 상표는 라이선스와 별개로 Elastic 의 상표 정책을 따른다.
ELv2 는 소스를 볼 수 있지만 OSI 기준의 오픈소스는 아니다. 제한은 세 가지뿐이고, 그 밖의 사용·수정·재배포는 허용된다.
실무에서 대부분을 차지하는 사내 사용은 여기에 걸리지 않는다. 사내 시스템의 검색·로그 분석에 쓰는 것, 소스를 고쳐 사내에서만 쓰는 것은 모두 가능하다. 걸리는 경우는 Elasticsearch 자체를 서비스 상품으로 파는 형태다.
자사 제품 안에 검색 기능으로 넣어 SaaS 로 파는 경우가 애매해 보이는데, ELv2 가 막는 것은 "소프트웨어를 다른 사람에게 관리형 서비스로 제공" 하는 것이다. 판단이 갈리는 구성이라면 법무 검토를 받는다 (확인 필요).
SSPL 은 서비스로 제공할 경우 그 서비스를 구성하는 전체 소스를 공개하도록 요구하는 강한 카피레프트다. AGPL 3.0 은 OSI 승인 오픈소스이며, 네트워크 너머로 제공할 때 소스 제공 의무가 생긴다. 셋 중 무엇을 택하는지에 따라 의무가 달라지므로, 배포나 서비스 제공 계획이 있으면 어느 라이선스로 받았는지를 기록해 둔다.
기본 배포판에는 유료 기능이 함께 들어 있고 라이선스 키로 열린다. 무료 등급(Basic)에 포함된 것과 구독이 필요한 것을 나누면 대략 다음과 같다.
| 구분 | 대표 기능 |
|---|---|
| 무료(Basic) | Kibana 의 Lens · Canvas · Maps, Spaces, 기본 보안(TLS, 파일·네이티브 사용자 영역, 역할 기반 접근 제어), 인덱스 수명 주기 관리, 스냅숏과 복구 |
| 구독 | 머신러닝, Graph, SAML · LDAP · AD · Kerberos · PKI 인증 연동, 필드·문서 수준 보안, 감사 로그, 교차 클러스터 복제, searchable snapshot |
버전에 따라 등급이 바뀐 기능이 있다. 기본 보안 기능은 6.8 과 7.1 에서 무료로 내려왔고, 그 전 버전에서는 유료였다. 알림 기능도 시기에 따라 위치가 달랐다. 도입 검토 시점에는 쓰려는 버전의 구독 비교표를 직접 확인한다. 여기 적힌 구분은 대략의 감을 잡기 위한 것이다 (확인 필요).
현재 등급은 클러스터에서 바로 확인할 수 있다.
curl -s -u elastic:${ELASTIC_PASSWORD} https://es.example.com:9200/_license
curl -s -u elastic:${ELASTIC_PASSWORD} https://es.example.com:9200/_xpack
Logstash · Beats 도 Elastic 제품이므로 위와 같은 라이선스 체계를 따른다. 반면 Fluentd 와 Fluent Bit 은 CNCF 프로젝트이고 Apache 2.0 이다. 기능 등급 구분이 없고 모든 기능이 무료다. 상용 지원은 별도 회사가 제공하지만 소프트웨어 자체에 유료 기능 잠금이 없다.
라이선스 제약을 피하려는 것이 목적이라면 선택지는 둘이다. 수집·전송 계층을 Fluent 계열로 두거나, 저장·검색까지 Apache 2.0 으로 가려면 OpenSearch 로 간다. OpenSearch 는 2024년에 Linux Foundation 산하로 옮겨졌다.