ElasticのクライアントライブラリがAWS OpenSearchへの接続を排除。AWSは仕方なくクライアントライブラリのフォークを発表
オープンソースの検索エンジンElasticsearchは、ログ解析による運用監視やセキュリティインシデントの発見、データ分析などに使われている人気のソフトウェアです。
その開発元であるElasticは、Elasticsearchのクライアントライブラリに対して変更を加え、AWSが提供しているElasticsearch互換のサービス「Amazon Elasticsearch Service」に対して接続を拒否する機能を追加しました。
今後、Elasticsearchのクライアントライブラリを用いたアプリケーションはAWSのElasticsearch Serviceを使えなくなってしまいます。
そこでAWSはElasticsearchクライアントライブラリをフォークすることを発表。今後は同社が主導してフォーク後のライブラリをメンテナンスしていくことを明らかにしました。
これでElasticsearchはバックエンドもフロントエンドもフォークしたことになります。
ElasticはクライアントライブラリでAWSを拒否した理由
そもそもElasticsearchの開発元であるElastic社は、AWSに対して不当にElasticsearchを用いたマネージドサービスを提供していると強く非難。今年1月にはElasticsearchの商用サービス化を制限するためにライセンス変更を発表しました。
AWSはElasticsearchを用いたマネージドサービス「Amazon Elasticsearch Service」を提供しているため、このままでは今後のバグフィクスや機能追加を行えず、サービスを継続的に提供できなくなってしまいます。
そこでAWSはライセンス前の変更前のElasticsearchをフォークし、4月にオープンソースのOpenSearchプロジェクトを立ち上げます。OpenSearchのAPIはElasticsearchとの互換性を保つようにし、アプリケーションの移行を容易にすることも表明しました。
今後はこのOpenSearchをもとにバグフィクスや機能追加を行うことでAmazon Elasticsearch Serviceを提供していく見通しで、これによりAmazon Elasticsearch Serviceの中長期的な継続性を担保しようとしているわけです。
追記:2024年9月、OpenSearchはLinux Foundation傘下となりました。
AWSが今後どこまでOpenSearchをメンテナンスしていくか?
今回、Elasticsearchのクライアントライブラリに行われた変更とは「Verify connection to Elasticsearch #1623」と呼ばれる機能追加で、クライアントからサーバへコネクションを張りに行くとき相手のバージョンをチェックし、Elasticsearchの特定のバージョン以外はエラーを返すというもの。
これにより今後のElasticsearchクライアントライブラリは、Elasticsearchサーバ以外とは接続できなくなります。
そこでAWSは、このチェックが入る直前のバージョンでクライアントライブラリをフォークし、新たにOpenSearchプロジェクトのクライアントライブラリとすることを今回発表したわけです。
そしてOpenSearchプロジェクトのクライアントライブラリとしては、過去のバージョンとの互換性を保ちつつ、Elasticsearchサーバにも、OpenSearchサーバにもどちらにも接続可能にすると、次のように説明しています。
In the spirit of openness and interoperability, we will make reasonable efforts to maintain compatibility with all Elasticsearch distributions, even those produced by Elastic. These clients will let developers continue running their current version of OpenSearch or Elasticsearch with minimal changes to their application code. The new clients will offer the same APIs and functionality they use today.
オープン性と相互運用性の精神に則り、私たちはすべての Elasticsearchディストリビューションとの互換性を維持するための合理的な努力を行います。たとえそれがElasticが作成したものであってもです。これらのクライアントでは、開発者はアプリケーションコードに最小限の変更を加えるだけで、現在のバージョンのOpenSearchまたはElasticsearchを継続して利用できるようになります。新しいクライアントは、現在使用しているものと同じAPIおよび機能を提供する予定です。
Elasticsearch本家のクライアントライブラリが制限を強めて純正Elasticsearchサーバにしか接続できない一方、AWSのOpenSearchクライアントライブラリはどのサーバにでもつながる。
またサーバに関しても、Elasticsearchは商用サービス化を制限する「Server Side Public License」(SSPL)と「Elastic License」のデュアルライセンスというやや複雑な形式なのに対し、AWS OpenSearchはApache 2.0のシンプルなライセンス構成です。
扱いやすさだけを見れば、AWSのOpenSearchの方が扱いやすくなっている一方、もちろんElasticsearchは本業がこのソフトウェアの開発であり、今後も積極的に開発を続けていくことは間違いない一方、AWSがどこまで本気でOpenSearchの開発を進めるかはいまのところ未知数です。
今後のOpenSearchの評価は、AWSがどこまで本気で継続的にOpenSearchのサーバとクライアントをメンテナンスしていくかにかかっていると見られます。
関連記事
- Redis、MongoDB、Kafkaらが相次いで商用サービスを制限するライセンス変更。AWSなどクラウドベンダによる「オープンソースのいいとこ取り」に反発
- [速報]Google、大手クラウドに不満を表明していたMongoDB、RedisらOSSベンダと戦略的提携。Google CloudにOSSベンダのマネージドサービスを統合。Google Cloud Next '19
- AWSが、Elasticsearchのコードにはプロプライエタリが混在しているとして、OSSだけで構成される「Open Distro for Elasticsearch」を作成し公開
- AWS、オープンソースベンダのライセンス変更による商用サービスの制限は「顧客を見ていない」と反論
- AWSをElasticが名指しで非難。ElasticsearchとKibanaのライセンスを、AWSが勝手にマネージドサービスで提供できないように変更へ
- AWS、商用サービス化を制限するライセンス変更に対抗し「Elasticsearch」をフォーク、独自のオープンソース版へ
- AWS、ElasticsearchとKibanaのフォークによる「OpenSearch」プロジェクトを発表。Elasticとの溝は埋まらないまま