Liferayサービスにクラスタリングを設定する
Delectable Bonsaiのウェブサイトは数百万ビューを集めるため、トラフィックを処理するためにクラスタ化する必要がある。 ここでは、本番環境の2ノード・クラスタを構成する方法を学びます。
Liferayクラウドプロジェクトのアドオンとして追加のLiferay DXPインスタンスをプロビジョニングして、Liferayサービスをクラスタリングし、別のノードを追加できるようにする必要があります。 詳しくはLiferayアカウントマネージャーにお問い合わせください。
LCP.jsonにクラスタリング・プロパティを設定する
クラスタリングを有効にし、Liferayサービスの設定でスケール値を設定します。
-
プロジェクトのリポジトリで、
liferay/
ディレクトリに移動し、LCP.json
ファイルを開きます。 -
LCP_PROJECT_LIFERAY_CLUSTER_ENABLED
環境変数がない場合は追加します。true
に設定する。{ "env": { "LCP_PROJECT_LIFERAY_CLUSTER_ENABLED": "true" } }
-
scale
プロパティを1
の値で追加する。 これはノードの数を設定するもので、後で更新する。{ "kind": "Deployment", "id": "liferay", "scale": 1 }
-
Gradle タスクを実行して、Liferay サービス用のカスタム Dockerfile を作成します。
./gradlew clean createDockerfile deploy
-
ビルドをデプロイする前に、
LCP.json
ファイルを新しく作成したbuild/docker
フォルダにコピーします。cp LCP.json build/docker
cd build/docker
-
CLIツールの
lcp deploy
コマンドを使ってLiferayサービスだけをデプロイします。lcp deploy --project=[project-name] --environment=prd
Liferay サービスはクラスタリングを有効にして scale
変数を初期化して再起動します。 しかし、スケールは1ノードのみに設定されたままだ。 スケールを目的の2つのノードに更新し続ける。
クラスタリング・スケールの更新
クラスタリング・スケールを初期化したので、それを2ノードに更新し、新しいビルドを作成してデプロイします。
-
プロジェクトのリポジトリで、
liferay/
フォルダに移動し、LCP.json
ファイルを開きます。 -
scale
プロパティの値を2
に更新する。{ "kind": "Deployment", "id": "liferay", "scale": 2 }
-
変更をコミットして Git リポジトリにプッシュします。
git add liferay/LCP.json
git commit -m "Enable clustering and set the clustering scale to 2."
git push origin [branch_name]
更新されたクラスタリング設定はコミットされ、Liferay Cloudインフラストラクチャは自動的にビルドを作成します。
構成を展開する
クラスタリングに必要な構成ができたので、構成を環境にデプロイします。
-
Liferay Cloudコンソールにログインします。
-
画面右上の Builds をクリックして Builds ページにアクセスします。
-
新しい変更を加えたコミットに対応するビルドの Actions メニュー をクリックし、 Deploy build to… を選択します。
-
Environment ドロップダウン・メニューで本番環境を選択します。
-
配備の影響を認識するボックスにチェックを入れる。
-
[Deploy Build] をクリックします。
サービスが再起動すると、クラスタリングが有効になり、Liferayサービスのノードが2つになります。
Next: Liferay サービスが必要になったときに、さらに多くのインスタンスが自動でスケールするように 設定します。