Elasticsearchのインストール準備

デフォルトでは、Liferay DXP 7.0とその組み込みElasticsearchエンジンは同じJVMで動作します。 これにより、Liferay DXP 7.0ではすぐに検索が可能になりますが、開発環境のみサポートされており、本番環境での使用はサポートされていません。 本番環境での使用では、検索エンジンはキャッシュから大きな恩恵を受けるため、Liferayは別のJVMで実行される場合にのみElasticsearchをサポートします。これにより、JVMのメモリプロファイルは、Liferay DXP 7.0を実行しているJVMのメモリプロファイルとは大幅に異なります。したがって、本番環境では 2 つのアプリケーションを常に分離しておく必要があります。

以下のセクションでは、Liferay DXP 7.0のElasticsearch設定の概要を説明します。 デプロイの前に、 本番環境でのデプロイに関するElasticのドキュメント を読むことを強くお勧めします。

 

導入のサイジング

Elasticsearchの導入サイズを決める際には、CPU、メモリ、ディスク、ネットワークの容量を慎重に検討する必要があります。 一般的に、Elasticsearchは中規模から大規模のマシンに導入する必要があります。これにより、効率的にスケールさせることができ、大量のマシンを避けることができます。また、同じオペレーティングシステム上で複数のElasticsearch JVMを実行することは避けるべきです。

CPU

Liferayは、少なくとも4つのCPUコアをElasticsearchエンジンに割り当てることを推奨します。これは、マシン上で稼働しているElasticsearch JVMが1つのみであることを想定しています。

メモリ

Liferayでは、JVMのヒープ設定 (xmx、xms など) のために少なくとも16GB以上のメモリ、可能であれば64GBのメモリ割り当てが推奨されます。メモリの割り当ては、インデックスデータの量によって異なります。インデックスサイズが 500GB~1TB の場合、Elasticsearchのヒープメモリは 64GB あれば適切に動作するのに十分です。

ディスク

検索エンジンはインデックスをディスクに保存します。そのため、ディスクのI/O容量は検索パフォーマンスに影響を与える可能性があります。Liferayは可能な限りSSD上にElasticsearchをデプロイすることを推奨します。それができない場合は、高性能な従来のハードディスク(15k RPMなど)を使用してください。SSDと従来のハードディスクの両方にRAID 0を使用することを検討してください。

一般的に、ネットワークのオーバーヘッドが大きくなる可能性があるため、ElasticsearchにNAS(ネットワーク接続ストレージ)を使用することは避けてください。Amazon Web Servicesのようなパブリッククラウドインフラを使用している場合は、インスタンスのローカルストレージを使用し、Elastic Block Store (EBS)のようなネットワークストレージは避けてください。

また、検索インデックスのサイズはインデックスされるコンテンツによって異なることに注意してください。インデックスの合計サイズより少なくとも25%多いディスク容量を確保してください。例えば、インデックスが50GBの場合、少なくとも75GBのディスク容量が必要です。必要なディスク容量を見積もるために、Liferayは本番コンテンツの代表的なサンプルをインデックス化し、そのサンプルインデックスのサイズに本番コンテンツの割合を掛けることを推奨します。例えば、本番コンテンツの25%をインデックス化し、そのインデックスサイズを4倍にします。1MBのファイルにインデックスを作成しても、検索インデックスに1MBのスペースができるわけではないことに注意してください。

ネットワーキング

Elasticsearchは、高速で正確な検索結果を提供するために、クラスタリングとシャーディングに依存しています。そのため、高速で信頼性の高いネットワークが必要になります。最近のデータセンターでは、マシン間に1GbEまたは10GbEを提供しているところがほとんどです。Elasticsearchクラスタを複数のデータセンターに分散させることは避けてください。Elasticsearchはマルチデータセンターのデプロイメントをサポートしていません。マルチデータセンター展開をサポートするには、インデックスリクエスト(更新、削除、ドキュメントの追加)を各データセンターに分散するカスタムソリューションを作成する必要があります。

シャードとレプリカ

Elasticsearchはスケールするためにシャードとレプリカを使用します。シャードは検索インデックスをより小さく、管理しやすい塊に分割します。例えば、500GBのインデックスがある場合、50GBずつ10個のシャードに分割することができます。最良の結果を得るためには、各シャードは50GBを超えてはなりません。一般的に、シャードが増えるとインデックス作成(書き込み)のパフォーマンスは速くなりますが、検索(読み込み)のパフォーマンスは遅くなります。Elasticsearchでは、複数のシャードを持つインデックスは分散検索とそれに続く結果のマージになります。レプリカは回復力を提供し、検索パフォーマンスを向上させます。レプリカはクラスタ全体の検索処理の負荷分散に役立ちます。

« Introduction to Liferay Enterprise SearchConfiguring Elasticsearch »

この記事は役に立ちましたか?
0人中0人がこの記事が役に立ったと言っています