Tech-Trends

달라지는 오픈 소스 Elasticsearch의 라이선스 전략

IT오이시이 2021. 4. 23. 21:14
728x90

지난 2021년 1월 Elastic은 소프트웨어 라이선스 전략을 변경하고 Apache 라이선스 버전 2.0 (ALv2)에 따라 Elasticsearch 및 Kibana의 새 버전을 출시하지 않을 것이라고 발표했습니다. 대신 새로운 버전의 소프트웨어가 Elastic License (사용 방법을 제한 함) 또는 Server Side Public License 를 대체 할 것이라고 합니다.

이는 Elasticsearch와 Kibana가 더 이상 오픈 소스 소프트웨어가 아님을 의미합니다. 앞으로 두 패키지의 오픈 소스 버전을 계속 사용할 수 있고 자체 제품을 포함하여 잘 지원되도록하기 위해 AWS가 오픈 소스 Elasticsearch 및 Kibana의 ALv2 라이선스 포크를 생성하고 유지 관리하기 위한 방안을 내놓았습니다.

 

<Open Distro for Elasticsearch>

AWS OpenSearch 프로젝트: Open Distro for Elasticsearch 커뮤니티 

AWS는 "OpenSearch Project"를 통해 2019 년 Elasticsearch 용 Open Distro를 출시 하여 고객과 개발자에게 ALv2 라이선스 소프트웨어의 모든 자유를 제공하는 완전한 기능을 갖춘 Elasticsearch 배포를 제공했습니다. 

AWS 오픈 소스 블로그에서  Elasticsearch 및 Kibana의 커뮤니티 기반 오픈 소스 포크 인 OpenSearch 프로젝트를 소개하였습니다. AWS는 장기적으로 OpenSearch를 사용할 수 있도록 투자할 계획이라고 합니다.

간단히 OpenSearch에 대한 내용을 아래와 같이 정리해 보았습니다.

OpenSearch의 특징

  • 100 % 오픈 소스 :  원하는대로 코드보기, 사용, 변경 및 배포 가능
  • 엔터프라이즈 급 :  SQL 및 클러스터 진단과 같은 보안 및 고급 기능 제공
  • 커뮤니티 중심 : 개인 및 조직에 배포 변경 사항을 쉽게 기여할 수있는 자유 제공

Open Distro for Elasticsearch 구성 요소

Elasticsearch 데이터 저장소 및 검색 엔진
Kibana 프런트 엔드 및 시각화 검색
보안 (Security) 클러스터에 대한 인증 및 액세스 제어
경고 (Alerting) 데이터가 특정 조건을 충족하면 알림을받습니다.
SQL SQL 또는 파이프 처리 언어를 사용하여 데이터 쿼리
인덱스 상태 관리 (Index State Management) 인덱스 작업 자동화
KNN 벡터 데이터에서 "가장 가까운 이웃"찾기
성능 분석기(Performance Analyzer) 클러스터 모니터링 및 최적화
이상 탐지 (Anomaly Detection) 비정형 데이터 식별 및 자동 알림 수신
비동기 검색 (Asynchronous Search) 백그라운드에서 검색 요청 실행

Elasticsearch 플러그인을 기존 OSS 클러스터에 개별적으로 설치 하거나 새 클러스터에 올인원 패키지를 사용할 수 있습니다 .

OpenSearch는 기존 Elastic에서 제공되던 일반적인 기능외에도 다음과 같은 특별한 기능들을 추가로 지원하고 있습니다.

주요 특별 기능: Open Distro for Elasticsearch (1.13.2)  

Data Prepper

 Data Prepper 베타 버전은 새로운 모니터링 지표 및 수평 확장성에 대한 개선 사항이 포함됩니다.
 - Prometheus 모니터링 과 호환되는 형식의 Metric API를 통해 액세스 가능하고
 - Metrics API (/metrics/prometheus)는 핵심 구성 요소(prepper, sink, and buffer) 상태를 모니터링할 수 있습니다.
 - 또 Trace Analytics 워크로드를 이용하여  Data Prepper의 수평 확장을 결정하는 데 사용 가능합니다.

Trace Analytics

Trace Analytics는 Open Distro for Elasticsearch에서 OpenTelemetry 데이터 를 수집하고 시각화하는 방법을 제공합니다.  데이터는 분산 응용 프로그램에서 성능 문제를 찾고 수정하는 데 도움이 됩니다.

SQL CLI

ELK검색을 위해서는 Json과 같은 Elasticsearch 쿼리 도메인 쿼리 언어 (DSL) 사용하는 대신 SQL로 쿼리를 작성하여 숙한 SQL을 통해 검색이 가능합니다. SQL을 이용하는 방법으로 SQL Workbench , SQL REST API, SQL CLI등의 기능을 활용 할 수 있습니다.

 [SQL Workbench]

<SQL Workbench>

  [REST API] 

자체 애플리케이션에서 Rest API를 통해서 SQL 플러그인을 사용 가능합니다.

POST _opendistro/_sql  
{ "query": "SELECT * FROM my-index LIMIT 50" }
curl -XPOST https://localhost:9200/_opendistro/_sql -u 'admin:admin' -k -H 'Content-Type: application/json' -d '{"query": "SELECT * FROM kibana_sample_data_flights LIMIT 10"}'

 

[SQL CLI]

 SQL CLI는 odfesql명령으로 시작할 수있는 독립 실행 형 Python 애플리케이션입니다. SQL 입력 CLI를 통해서 여러 줄 입력 가능하고, SQL 구문 및 색인 이름에 대한 자동 완성하고 필드이름과 출력을 시각화 해 줍니다


ODFE-CLI(Open Distro for Elasticsearch Command Line Interface )

ODFE-CLI 통해 클러스터를 관리자의 작업을 자동화할 수 있도록 인터페이스를 제공합니다. 주로 웹을 통해서 제공되는 명령처리를 운영 시스템 관리 툴에서 사용하여 명령을 수행 할 수 있도록 제공하고 있습니다.
 - CLI 도구를 사용하여 Elasticsearch 작업을 수행하고 Open Distro 플러그인을 구성, 관리하거나  
 - 스크립트가 가능한 추상화 툴킷을 사용하여 생산성을 높일수 있습니다. 그리고 
 - ODFE-CLI는  golang과 같이 확장이 용이한 코드를 이용하여 복잡한 명령을 검증하고 쉽게 처리 할 수 있게 됩니다.


Open Distro의 비동기 검색 

- 비동기 검색을 사용하면 쿼리가 더 오래 걸리는 경우 지금까지 조합 된 결과를 검색하고 더 많은 결과를 사용할 수있게됩니다. 비동기 검색은 많은 샤드 또는 여러 클러스터에서 대규모 데이터 세트를 쿼리 할 때 유용합니다. 비동기 검색 쿼리는 백그라운드에서 계속 결과를 수집하고 결과 집합은 사용자가 지정한 구성 가능한 시간 간격 동안 업데이트되고 유지됩니다. 쿼리는 결국 전체 결과 집합을 반환하고 나중에 분석하기 위해 인덱스에 저장할 수 있습니다.


- "비동기 검색 요청"을 제출 한 후 비동기 검색 응답에 표시된 ID를 사용하여 요청시 부분적이더라도 응답을 요청가능
- 이미 실행중인 비동기 검색에 대한 부분 응답을 가져올수 있음 (state = RUNNING)
- "비동기 검색이 완료"되면 즉, 모든 샤드가 성공적으로 쿼리되고 초기 비동기 검색에서 keep_on_completion 쿼리 매개 변수가 true로 설정되면 응답이 나중에 검색 할 수 있도록 시스템 인덱스에 저장
-"비동기 검색 삭제" 요청을 사용하여 ID로 진행중인 비동기 검색을 삭제할 수 있습 

OpenSearch 설치 방법

1. Docker Desktop 설치: www.docker.com/products/docker-desktop

2. docker image 다운로드 및 실행

docker pull amazon/opendistro-for-elasticsearch:1.13.2
docker run -p 9200:9200 -p 9600:9600 -e "discovery.type=single-node" amazon/opendistro-for-elasticsearch:1.13.2

3. 작동 확인

curl -XGET --insecure https://localhost:9200 -u admin:admin

* 참조: opendistro.github.io/for-elasticsearch-docs/

 

[참고 사항]

모니터링 및 수평 확장 성을위한 Data Prepper 향상

opendistro.github.io/for-elasticsearch/blog/releases/2021/03/data-prepper-0-8/

Open Distro for Elasticsearch 명령 줄 인터페이스 (ODFE-CLI)

opendistro.github.io/for-elasticsearch/

Elasticsearch 용 Open Distro의 비동기 검색 소개

opendistro.github.io/for-elasticsearch/blog/releases/2021/03/async-search/

 

 

elastic.co: 2021년 라이선스 변경 관련 FAQ

Elasticsearch와 Kibana의 Apache 2.0 라이선스 소스 코드를 Elastic License와 SSPL(Server Side Public License)에 따라 이중 라이선스로 전환하여 사용자가 어느 라이선스를 적용할 지 선택할 수 있도록 변경하고 있습니다. 또한 Elastic License(Elastic License v2 또는 ELv2)를 단순화하고 훨씬 더 허용 범위가 커지도록 하고 있습니다. 이러한 라이선스 변경은 커뮤니티와 고객이 코드를 사용, 수정, 재배포 및 공동 작업할 수 있는 무료 개방형 액세스를 보장합니다. 

Elasticsearch와 Kibana를 서비스로 제공하는 것을 제한하여 우리가 무료 개방형으로 배포하는 제품 개발에 대한 지속적인 투자를 보호합니다. 이는 7.11 릴리즈부터 이 두 제품의 모든 유지관리 분기에 적용됩니다. Elastic의 기본 배포판은 계속 Elastic License를 따르게 됩니다.

라이선스 변경 목적: Elastic은 클라우드 서비스 제공자가 서비스 관리 계층의 소스 코드와 수정 사항을 공유하지 않고 제품을 서비스로 제공하지 못하도록 제한함으로써 우리가 무료 개방형으로 배포하는 제품 개발에 대한 지속적인 투자를 보호하기 위함

  • 제품을 다른 사람에게 관리형 서비스로 제공할 수 없습니다. 
  • 라이선스 키 기능을 우회하거나 라이선스 키로 보호되는 기능을 제거하면/숨길 수 없습니다. 
  • 라이선스, 저작권 또는 기타 통지를 제거하거나 숨길 수 없습니다.

<ELK 라이선스 방향>

 

728x90
반응형