ElasticのクライアントライブラリがAWS OpenSearchへの接続を排除。AWSは仕方なくクライアントライブラリのフォークを発表

2021年8月10日

オープンソースの検索エンジンElasticsearchは、ログ解析による運用監視やセキュリティインシデントの発見、データ分析などに使われている人気のソフトウェアです。

その開発元であるElasticは、Elasticsearchのクライアントライブラリに対して変更を加え、AWSが提供しているElasticsearch互換のサービス「Amazon Elasticsearch Service」に対して接続を拒否する機能を追加しました。

今後、Elasticsearchのクライアントライブラリを用いたアプリケーションはAWSのElasticsearch Serviceを使えなくなってしまいます。

そこでAWSはElasticsearchクライアントライブラリをフォークすることを発表。今後は同社が主導してフォーク後のライブラリをメンテナンスしていくことを明らかにしました。

fig

これで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の中長期的な継続性を担保しようとしているわけです。

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のサーバとクライアントをメンテナンスしていくかにかかっていると見られます。

関連記事

このエントリーをはてなブックマークに追加
follow us in feedly




カテゴリ

Blogger in Chief

photo of jniino

Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。
詳しいプロフィール

Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで : Feed


最新記事10本