지난 2021년 1월 Elastic은 소프트웨어 라이선스 전략을 변경하고 Apache 라이선스 버전 2.0 (ALv2)에 따라 Elasticsearch 및 Kibana의 새 버전을 출시하지 않을 것이라고 발표했습니다. 대신 새로운 버전의 소프트웨어가 Elastic License (사용 방법을 제한 함) 또는 Server Side Public License 를 대체 할 것이라고 합니다.
이는 Elasticsearch와 Kibana가 더 이상 오픈 소스 소프트웨어가 아님을 의미합니다. 앞으로 두 패키지의 오픈 소스 버전을 계속 사용할 수 있고 자체 제품을 포함하여 잘 지원되도록하기 위해 AWS가 오픈 소스 Elasticsearch 및 Kibana의 ALv2 라이선스 포크를 생성하고 유지 관리하기 위한 방안을 내놓았습니다.
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]
[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은 클라우드 서비스 제공자가 서비스 관리 계층의 소스 코드와 수정 사항을 공유하지 않고 제품을 서비스로 제공하지 못하도록 제한함으로써 우리가 무료 개방형으로 배포하는 제품 개발에 대한 지속적인 투자를 보호하기 위함
- 제품을 다른 사람에게 관리형 서비스로 제공할 수 없습니다.
- 라이선스 키 기능을 우회하거나 라이선스 키로 보호되는 기능을 제거하면/숨길 수 없습니다.
- 라이선스, 저작권 또는 기타 통지를 제거하거나 숨길 수 없습니다.
'Tech-Trends' 카테고리의 다른 글
Microsoft Build OpenJDK (0) | 2021.06.03 |
---|---|
‘인터넷 익스플로러(IE)’가 2022년 6월 서비스를 종료 (0) | 2021.05.22 |
★(공유) 21년 디지털 트랜드 자료 (0) | 2021.05.14 |
소프트웨어 개발자가 알아야 할 로우 코드 플랫폼 (0) | 2021.04.03 |
엔터프라이즈 로우 코드 애플리케이션 플랫폼(LCAP) 트랜드 (0) | 2021.04.02 |
윈도우 화면 녹화 프로그램 추천 (2) | 2021.03.21 |
★플랫폼이란 무엇인가 ? (0) | 2021.03.17 |