Elastic Cloud (EC) では、Elastic StackをホスティングするElasticsearch Serviceをマネージドサービスとして提供しています。 Liferayではクラウドベースのデプロイメントの需要が高まっているため、この記事ではLiferay DXPとElastic Cloud.*でホストされるElasticsearchの互換性について情報を提供するために作成しました。
目次
- 紹介
- 環境 - DXP 7.3-7.4
- 環境 - DXP 7.0-7.2
- 免責事項:Liferayサポートに問題を報告すること
- Elastic Cloud上のElasticsearchサービスのJDKバージョンはどうやって調べたらいいですか?
- Liferay DXPがElastic Cloud上のElasticsearchに接続するように設定する方法は?
紹介
この記事では、Liferay DXPとElastic Cloudの互換性について説明します。 Elastic Stack for Liferay DXPをElastic Cloud上でホストすることを計画する場合、考慮すべき追加の 制限と既知の問題 があります。
Elasticsearch Service の利用可能な ユーザー設定 を参照し、 Liferay DXP のドキュメント を確認し、Elastic Cloud で利用できる Elasticsearch 設定や Elasticsearch ベースの機能と Liferay DXP が必要とする機能に矛盾がないことを確認してください。 Liferay DXPのユースケースによっては、Elastic Cloudで利用できない設定や機能を必要とする場合があります。
Liferay Enterprise Searchをご利用のお客様: こちらにあるように、Liferay Enterprise SearchはElastic社のElastic Cloudサービスに関するライセンス契約を提供していません。
環境 - DXP 7.3-7.4
- Liferay DXP 7.3-7.4
- Elastic Stack 7.xはElastic Cloudでホストされています。
まとめ - DXP 7.3-7.4
DXP 7.3および7.4にデフォルトでバンドルされているElasticsearch 7コネクタは、HTTP*でElasticsearchと通信する Java REST Client を使用しています。 この通信プロトコルは、DXPとElasticsearchの間でJavaのシリアライズを必要としません。 したがって、Liferay DXP 7.3 および 7.4 のデプロイメントでは、Elasticsearch サービスが 互換の バージョンを使用している限り、Elastic Cloud 上の Elasticsearch サービスに接続することが可能です。
環境 - DXP 7.0-7.2
- Liferay DXP 7.0-7.2
- Elastic Stack 6.xおよび7.xは、Elastic Cloud上でホストされています。
まとめ - DXP 7.0-7.2
Liferayは、Javaバージョンのミスマッチの可能性とTransport Clientの追加 制限のため、Elastic CloudでホストされるDXPとElasticsearchの互換性を保証することはできません。
Elastic StackをECに移行することを決定する前に、互換性に影響を与える3つの要因を考慮する必要があります。
- Elasticsearch Version Compatibility: Search Engine Compatibility Matrix for your DXP version には、Elasticsearch を含むサポートされるテクノロジーとそのバージョンが記載されています。 つまり、ECで使用するElasticsearchサービスは、互換性マトリックスに表示されるバージョンを使用する必要があります。
- Transport Layer Communication: 上記のDXPバージョンで利用できるLiferayのElasticsearchコネクターは、Elasticsearchノードとの通信に Java Transport Client を使用します。 ECはTransportレイヤーでの接続をサポートしなければなりません。そうしないとLiferayのElasticsearchコネクタはElasticsearchノードに接続できません**。
- Java Compatibility: Introduction to Installing Search Engineにあるように、ElasticsearchとLiferay DXPは同じJavaバージョンとディストリビューションを使用する必要があります。 これは、Transport ClientがJavaシリアライゼーションに依存しているためである。 我々のテスト(2020年7月に実施)によると、ECのElasticsearch 6.8.10と7.7.1サービス(および基盤となるElasticsearch Dockerイメージ)は Adopt OpenJDK 64-bit 14.0.1+7 Compatibility MatrixによるLiferay DXPの認証バージョンではありませんを使用しているとのこと。
免責事項:Liferayサポートに問題を報告すること
Liferay DXP と Elasticsearch の問題を Liferay Support に報告する場合、通常の情報(Liferay DXP Patch Level, connector version and config files; Elasticsearch/Kibana versions and configuration files such as elasticsearch.yml and kibana.yml; JDK version etc)の他に、チケットに Elastic Cloud を使っていることを明記してください。
サブスクリプションサービスの調査により、問題の根本的な原因がJDKの不一致に関連していることが判明した場合、サブスクリプションサービスは問題の解決に制限されます。
Elastic Cloud上のElasticsearchサービスのJDKバージョンを確認する方法は?
この情報は、KibanaのDev Toolsコンソールから取得することができます。
リクエスト:GET _nodes
レスポンスJSONの関連スニペット:
"jvm" : {
"pid" : 572,
"version" : "14.0.1",
"vm_name" : "OpenJDK 64-Bit Server VM",
"vm_version" : "14.0.1+7",
"vm_vendor" : "AdoptOpenJDK",
"bundled_jdk" : true,
"using_bundled_jdk" : true,
"start_time_in_millis" : 1594278093230,
"mem" : {
"heap_init_in_bytes" : 2147483648,
"heap_max_in_bytes" : 2147483648,
"non_heap_init_in_bytes" : 7667712,
"non_heap_max_in_bytes" : 0,
"direct_max_in_bytes" : 0
},
Liferay DXPがElastic Cloud上のElasticsearchに接続するように設定する方法は?
設定例については、こちらの記事( )をご参照ください。
関連資料
* この記事は、利用可能なクラウドプロバイダー(Amazon Web Services (AWS), Google Cloud Platform (GCP), Microsoft Azure)のマーケットプレイスを通じて請求されるElastic Cloudサブスクリプションにも該当します。Elastic Cloudデプロイは、 Elasticのクラウドコンソールを通じて管理されるからです。
** Liferay DXP で利用可能な Elasticsearch コネクタの技術的な概要については、この記事 をご覧ください。