[AWS OpenSearch/Elasticsearch] Elasticsearch VS OpenSearch

YE Kim·2023년 10월 16일
0

우후 프로젝트

목록 보기
1/1

서론

우후 프로젝트를 진행하며 ElasticSearch를 사용하게 됐다.
설치부터 Index 설계까지 맡았는데, 이미 API 서버를 AWS 프리티어로 사용하고 있어 거기에 ElasticSearch를 설치하려고 했다.
그런데 AWS에서 제공해주는 서비스인 OpenSearch를 사용하는 방법과, 프리티어 우분투 서버에 직접 설치하는 방법이 있어 두 가지의 차이를 고려해보려 한다.



역사

2018년 MongoDB에서 처음으로 SSPL v1.0이라는 라이센스를 발표했다.

SSPL 라이센스란?

AGPL 라이센스(배포 시 서버 쪽 소스 공개 의무가 있는 라이센스)에서 클라우드 서비스가 배포인지 아닌지가 불명확해 이를 추가적으로 설명했다.
클라우드 서비스가 오픈소스 제품을 무료로 가져다 쉽게 사용하고 수익을 창출하지만, 오픈 소스에는 기여를 하지 않는 것을 막기위해 만들어졌다. (MongoDB측 설명)
이를 쉽게 말하자면, 클라우드 서비스를 제공하는 회사들이 오픈 소스를 가져다 쓰지만 정작 오픈 소스의 발전에는 투자하지않아 오픈 소스 회사들이 수익을 얻지 못하게 됐다는 뜻.

이를 따라 Elasticsearch도 비슷한 이유로 SSPL로 전환했다고 한다. (2021년 v7.10부터 적용)
Elasticsearch 라이선스 변경 관련 FAQ에서 발췌

그럼 모든 사용자가 소스 코드 공개 의무가 있는 것인가?

그렇지않다. 단순히 백엔드로 Elasticsearch를 사용해 SaaS 앱을 제공하는 경우는 무료로 사용 가능하다.
앱 내부에서 쓰는건 괜찮지만, 외부에서 DB 저장등을 서비스로 직접 제공하는 경우는 코드를 오픈해야한다.



비교 분석

기능적인 측면

Elasticsearch의 SSPL 전환으로 인해 OpenSearch를 제공하던 AWS는 꼼짝없이 내부 코드를 공개해야 했다.
그러나 AWS는 이를 거부, 완전히 오픈된 Elasticsearch 7.10 버전 이하만 사용하여 여전히 OpenSearch 서비스를 제공 중이다.
당연히 업그레이드와 지원은 없으며 이를 사용해 자체적인 버전 업을 하는 모양이다.

따라서 두 시스템은 큰 차이가 없으나, 앞으로 세부적인 사항이 계속 달라질 예정이다.

23.10.16 현재

OpenSearch는 자체적인 데이터 시각화와 대시보드, ML, 쿼리 언어(PPL)등을 추가했다.
Elasticsearch는 로그 분석 쪽을 주력하고 있다는 느낌이다. (Kibana가 있으니 대시보드는 필요없고, ML은 유료 제공 기능이라고 한다.)

라이센스 측면

AWS OpenSearch는 Apache 라이센스라서 마음대로 사용할 수 있다.
반면 Elasticsearch는 Elastic 라이센스 또는 SSPL 중 하나를 사용한다. (듀얼 라이센스 정책 : 사용자가 둘 중 하나를 선택할 수 있음.) 특히 사용자가 직접 Elasticsearch에 접속하는 경우 모든 소스 코드를 공개해야 한다.

레퍼런스 측면

개발하는데 꼭 필요한 참고 레퍼런스.
아직까지는 OpenSearch보다 Elasticsearch가 압도적으로 많다.
OpenSearch는 오픈 소스 프로젝트라서 공식적인 지원이 없어 커뮤니티에만 의존해야한다.
반면 Elasticsearch는 공식 지원은 물론 오래된 오픈 소스 프로젝트라 커뮤니티에 쌓인 정보도 많다.

보안 측면

Elasticsearch는 x-pack을 무료로 제공, LDAP, OpenID, SAML 등으로 인증하려면 유료 라이센스가 필요하다.
OpenSearch는 모두 무료로 제공한다.



결론

아래에 적는건 어디까지나 개인의 생각이다.

Elasticsearch가 더 좋은 경우

일반적인 프로젝트에서 기본 기능만 사용한다.
레퍼런스를 보고 0부터 10까지 설정 할 수 있다.
ML등의 추가 기능이 필요없고, 높은 수준의 보안 역시 필요하지 않다.

OpenSearch가 더 좋은 경우

AWS에서 추가 개발하는 고급 기능을 사용해야 한다.
간편하게 설정을 끝내고 싶고 비용이 조금 발생하더라도 괜찮다.
높은 수준의 보안이 필요하다.



현재 진행하는 우후 프로젝트의 경우, 가볍게 진행하는 사이드 프로젝트이므로 Elasticsearch쪽이 더 알맞을 것 같다.



참고

오픈소스 라이센스의 흐름 https://tech.kakao.com/2021/09/08/opensource-license/

Elastic과 Opensearch: 오픈소스를 둘러싼 대립
http://cloudinsight.net/cloud/elastic%EA%B3%BC-opensearch-%EC%98%A4%ED%94%88%EC%86%8C%EC%8A%A4%EC%99%80-%EC%98%A4%ED%94%88%EC%86%8C%EC%8A%A4/

클라우드 서비스와 오픈소스 라이선싱 http://cloudinsight.net/cloud/%ed%81%b4%eb%9d%bc%ec%9a%b0%eb%93%9c-%ec%84%9c%eb%b9%84%ec%8a%a4%ec%99%80-%ec%98%a4%ed%94%88%ec%86%8c%ec%8a%a4-%eb%9d%bc%ec%9d%b4%ec%84%a0%ec%8b%b1/

Elasticsearch 라이선스 변경 관련 FAQ https://www.elastic.co/kr/pricing/faq/licensing

OpenSearch vs Elasticsearch: Which One Is Better to Use? https://sematext.com/blog/opensearch-vs-elasticsearch-which-one-is-better-sematext/

OpenSearch vs Elasticsearch: An Up-to-Date Comparison https://bigdataboutique.com/blog/opensearch-vs-elasticsearch-an-up-to-date-comparison-5c1c71

profile
주니어 백엔드 개발자

0개의 댓글