ロードバランサー
Ingress ロード バランサは、TLS (1.2 または 1.3) プロトコルを使用してプロキシされた HTTP(S) 接続を介して、環境のサービスへのインターネット アクセスを提供します。 各ロードバランサーには、カスタムドメインの設定に使用できる静的IPがあります。

専用のロードバランサーを使用すると、ポート設定、カスタムSSL証明書、CDNなどの拡張機能が無数に提供されます。 これらの機能は、サービスの LCP.json ファイルで設定できます:
{
"id": "webserver",
"loadBalancer": {
"cdn": true,
"targetPort": 80,
"certs": [
{
"customDomains": ["acme.liferay.cloud"],
"key": "...",
"crt": "..."
}
]
}
}
CDN
Liferayのコンテンツ配信ネットワーク(CDN)は、Liferay Cloudの組み込み機能です。 これは、クライアントとオリジン サーバーの間のプロキシとして機能し、コンテンツをバックエンド サーバー (インスタンス) に送信するのではなく、ユーザーに近いポイント オブ プレゼンス (POP) からコンテンツをキャッシュして提供します。
キャッシュ可能なコンテンツに対するDDoS攻撃が発生した場合、リクエストはオリジンサーバーではなくグローバルに分散したPOPに送信されるため、攻撃を吸収するためのより多くの場所が提供されます。 また、グローバルな静的コンテンツをキャッシュすることで、配信速度を大幅に向上させることができます。
デフォルトでは、dev環境を除くすべての環境でCDNが有効になっています。 loadbalancerオブジェクト内のcdnの値を設定することで、あるサービス(その LCP.jsonファイル)に対してCDNを有効または無効にすることが可能です。
{
"loadBalancer": {
"cdn": true
}
}
![CDNのステータスは[Network]ページに表示されます。](https://resources.learn.liferay.com/images/dxp/latest/en/cloud/configuring-the-cloud-network/load-balancer/images/02.png)
CDNキャッシュのクリア
CDNは、静的コンテンツをユーザーに配信する際のレイテンシを減らすことでパフォーマンスを向上させます。 しかし、キャッシュが更新される前に、コンテンツの有効性が失われた状態でユーザーに配信されてしまうことがあります。
CDNキャッシュをクリアして強制的にコンテンツを再取得する必要がある場合、Liferay Cloudコンソールから手動でクリアすることができます。
-
Liferay Cloudコンソールにログインし、該当する環境に移動します。
-
左側のメニューから [Network] をクリックします。
-
CDN セクションで、 CDNキャッシュをクリア…をクリックします。
![ご使用の環境の[Network]ページで[Clear CDN Cache]ボタンをクリックします。](https://resources.learn.liferay.com/images/dxp/latest/en/cloud/configuring-the-cloud-network/load-balancer/images/03.png)
-
[Clear CDN cache]ページで、キャッシュのクリアにともなう影響を理解し、CDNを有効にしたすべてのサービスに適用されるということを理解したら、全てのチェックボックスを選択します。
![[ Clear CDN cache]のページ。](https://resources.learn.liferay.com/images/dxp/latest/en/cloud/configuring-the-cloud-network/load-balancer/images/04.png)
-
キャッシュクリアの要求をクリックします。
ボタンをクリックすると、キャッシュをクリアするためのリクエストが送信されます。 キャッシュがクリアされるまで最大30分かかります。
CDNキャッシュを頻繁にクリアすると、サーバーのパフォーマンスに悪影響を与える可能性があります。これは、キャッシュが他の方法で提供していたはずのサービスへのリクエストが短期的に急増する可能性があるためです。 この影響を軽減するために、キャッシュのクリアは例外的な状況にのみ行うようにしてください。
ポート
ロードバランサーのサービスエンドポイントがどの内部ポート(targetPort)を経由するかを設定できます。 Liferay Cloudは、提供するサービスに応じた正しいポートを自動的に設定します。
"targetPort": 3000

カスタムSSL
サービスにロードバランサー属性を指定すると、次のようなネーミングパターンでサービスのエンドポイントが追加されます:
<SERVICE-NAME>-<PROJECT-NAME>-<ENVIRONMENT-NAME>.lfr.cloud
.lfr.cloudでLiferay Cloudのインフラストラクチャーによって作成されたドメインは、ネットワークページのSSL証明書セクションに表示されないワイルドカード証明書によってカバーされています。
コンソールまたは LCP.jsonを介して追加されたすべてのカスタムドメインの場合、Liferay Cloudは Let's Encryptに到達して、自動的に更新され、かつ作成したすべてのカスタムドメインをカバーする証明書を取得します。
カスタムSSL証明書の追加
独自のSSL証明書を追加して、作成したカスタムドメインをカバーすることもできます。 Let's Encryptが提供するSSL証明書(DXPクラウドのコンソールで追加されたカスタムドメイン用)を使用するか、 webserver サービスの LCP.json ファイルでシークレット値を参照し、1つ以上のカスタム証明書を定義できます。 両方の場所に証明書が存在する場合は、LCP.jsonファイルで定義されたカスタム証明書が優先されます。
複数の SSL 証明書をカスタム ドメインにマッピングするには、 certs プロパティを webserver サービスの LCP.json ファイルに追加する必要があります。 Liferay Cloudコンソールでカスタムドメインを追加すると、すべてのカスタムドメインが1つの証明書にマッピングされます。
カスタム証明書を作成する場合、Liferay Cloud は、カプセル化境界を含む必要がある Base64 エンコーディングを使用した適切な PEM 形式のキーと証明書のみを受け入れることに注意してください。
-
証明書の
キーとcrtの値のために、選択した環境に 秘密変数 を追加します。 -
プロジェクト リポジトリの
webserver/LCP.jsonファイルで、loadbalancerオブジェクトのcertsプロパティを使用して、使用できる証明書のリストを作成します。certs配列に、keyとcrt値を持つオブジェクトを追加します。これらの値は、 追加したシークレットのキーを参照します。 各証明書のキーとcrtの値を、それらがマップされるカスタム ドメインとともにグループ化します。
{
"loadbalancer": {
"certs": [
{
"customDomains": ["acme.liferay.cloud"],
"key": "@ssl-key-secret",
"crt": "@ssl-crt-secret"
},
{
"customDomains": ["acme2.liferay.cloud", "acme3.liferay.cloud"],
"key": "@ssl-key-secret-2",
"crt": "@ssl-crt-secret-2"
}
]
}
}
カスタム ドメインの SSL 証明書を追加または更新する場合は、Web サーバー サービスにビルドをデプロイして再起動します。
SSL証明書の生成
キーを生成するときは、RSA-2048またはECDSA P-256暗号化アルゴリズムのいずれかを使用し、パスフレーズで保護されたキーの使用を避ける必要があります。
カスタム証明書を作成した後は、ユーザーがその管理(新しいカスタムドメインが追加された際の更新や、期限切れの際の更新など)を行うことになります。
まだエンコードされていない場合、証明書ファイルとキー
ファイルには、以下のようなテキストが含まれています(開始/終了タグにCERTIFICATE または KEY )。
-----BEGIN CERTIFICATE-----
base64encodedcertificate
-----END CERTIFICATE-----
これらのファイルの内容をエンコードして使用するには、以下の手順を行います:
-
keyとcertのコンテンツの両方のファイルを新規に作成します:touch originalkeyfile.keytouch originalcertfile.crt -
keyファイルを開き、開始および終了キー タグを含むすべての内容 をコピーし、作成された新しいファイル (この例では、originalkeyfile.key) にコピーします。 ファイルを保存します。 -
certファイルを開き、cert の開始タグと終了タグを含むすべての内容 をコピーし、作成された新しいファイル (この例では、originalcertfile.crt) にコピーします。 ファイルを保存します。 -
以下のコマンドを実行して(または他の望ましいエンコーディング方式を使用して)、ファイルをbase64エンコーディングの新しいファイルに変換します:
openssl base64 -A -in originalkeyfile.key -out base64keyfile.keyopenssl base64 -A -in originalcertfile.crt -out base64certfile.crt -
新しいエンコードされた
キーおよび証明書ファイル (この例では、base64keyfile.keyおよびbase64certfile.crt) からすべての内容をコピーし、2 つの シークレット変数 を追加して、選択した環境に保存します。 -
プロジェクト リポジトリの
webserver/LCP.jsonファイルで、 は 追加したシークレットのキーをkeyおよびcrt変数に参照します。
これで、 key および cert 値がエンコードされ、Webサーバー構成で使用できるようになりました。
証明書を 1 つの文字列に連結し、その結果を crt フィールドに base-64 でエンコードすることにより、 cert に複数の値を含めることができます。
SSL証明書のステータスの確認
ネットワーク ページには、Liferay が提供する SSL 証明書と、ユーザーが提供するカスタム証明書が表示されます。 各証明書の表エントリをクリックすると、その証明書の詳細情報を表示できます。 証明書を更新する際には、SSL 証明書タブを再度確認して、証明書が適切に展開されていることを確認することが重要です。 証明書の有効期限が切れている、期限が切れそうである、または誤って構成されている場合は、アラートが表示されます。

環境変数リファレンス
| 名前 | 値 | 説明 |
|---|---|---|
cdn | false | CDNはデフォルトで無効になっています。 設定をtrueにすることで有効にできます。 |
customDomains | ["example.com", "www.example.com"] | カスタムドメインの名前。 複数をリストできます。 |
targetPort | 3000 | ロードバランサーのポート番号 |
key | - | Base64形式のSSL証明書のキー。 これを ssl オブジェクト、または certs オブジェクト (複数の証明書を一覧表示する場合) にグループ化します。 |
crt | - | Base64 形式の SSL 証明書の署名付き証明書。 これを ssl オブジェクト、または certs オブジェクト (複数の証明書を一覧表示する場合) にグループ化します。 |