このページでは、リージョン外部アプリケーション ロードバランサをデプロイして、オンプレミスまたは他のパブリック クラウドにあり、ハイブリッド接続経由で到達可能なネットワーク エンドポイントにトラフィックをロード バランシングする方法について説明します。
これらのタスクが完了したら、必要に応じて追加のサービス(Cloud CDN、Google Cloud Armor など)と高度なトラフィック管理機能を有効にできます。
まだ行っていない場合は、ハイブリッド接続 NEG の概要を確認して、ハイブリッド ロード バランシングを設定するためのネットワーク要件を把握してください。
設定の概要
このページの例では、次のサンプル デプロイメントを設定します。
ハイブリッド ロード バランシングのデプロイを試す前に、ハイブリッド接続を構成する必要があります。このドキュメントでは、ハイブリッド接続の設定について説明しません。
Cloud VPN または Cloud Interconnect(Dedicated または Partner)のどちらのハイブリッド接続プロダクトを選択したかに応じて、関連するプロダクトのドキュメントを使用して構成してください。
権限
ハイブリッド ロード バランシングを設定するには、次の権限が必要です。
Google Cloud
- Google Cloud とオンプレミス環境または他のクラウド環境との間のハイブリッド接続を確立する権限。必要な権限の一覧については、関連する Network Connectivity プロダクトのドキュメントをご覧ください。
- ハイブリッド接続 NEG とロードバランサを作成する権限。このガイドで説明するタスクの実行に必要な権限は、Compute ロードバランサ管理者のロール(
roles/compute.loadBalancerAdmin
)に含まれています。
オンプレミス環境または Google Cloud 以外のクラウド環境
IP:Port
の組み合わせで Google Cloud からオンプレミス環境または他のクラウド環境のサービスに到達できるように、ネットワーク エンドポイントを構成する権限。詳細については、お使いの環境のネットワーク管理者に問い合わせてください。- Google のヘルスチェック プローブがエンドポイントに到達することを許可するように、ファイアウォール ルールをオンプレミス環境または他のクラウド環境に作成する権限。
さらに、このページの手順を完了するには、ハイブリッド接続 NEG、ロードバランサ、ゾーン NEG(およびそれらのエンドポイント)を作成して、ロードバランサの Google Cloud ベースのバックエンドとして機能させる必要があります。
そのためには、プロジェクトのオーナーまたは編集者であるか、次の Compute Engine IAM のロールが必要です。
タスク | 必要なロール |
---|---|
ネットワーク、サブネット、負荷分散コンポーネントの作成 | Compute ネットワーク管理者(roles/compute.networkAdmin ) |
ファイアウォール ルールの追加と削除 | Compute セキュリティ管理者(roles/compute.securityAdmin ) |
インスタンスの作成 | Compute インスタンス管理者(roles/compute.instanceAdmin ) |
ハイブリッド接続を確立する
オンプレミス環境または他のクラウド環境と Google Cloud を接続するには、Cloud Router とともに Cloud Interconnect VLAN アタッチメントまたは Cloud VPN トンネルを使用して、ハイブリッド接続を確立する必要があります。高可用性接続の使用をおすすめします。
グローバル動的ルーティングが有効になっている Cloud Router は、Border Gateway Protocol(BGP)を通じて特定のエンドポイントを学習し、Google Cloud VPC ネットワークにプログラムします。リージョン動的ルーティングはサポートされていません。静的ルートもサポートされていません。
Cloud Interconnect と Cloud VPN のいずれかの構成に使用する VPC ネットワークは、ハイブリッド ロード バランシングのデプロイに使用するものと同じネットワークです。VPC ネットワークのサブネットの CIDR 範囲がリモートの CIDR 範囲と競合しないようにしてください。IP アドレスが重複する場合、リモート接続よりもサブネット ルートが優先されます。
手順については、次のドキュメントをご覧ください。
Google Cloud の外部にある環境を設定する
次の手順で、ハイブリッド ロード バランシング用のオンプレミス環境またはその他のクラウド環境を設定します。
- オンプレミス サービスを Google Cloud(
IP:Port
)に公開するようにネットワーク エンドポイントを構成します。 - オンプレミス環境または他のクラウド環境でファイアウォール ルールを構成します。
- プライベート環境への特定の必要なルートをアドバタイズするように Cloud Router を構成します。
ネットワーク エンドポイントを設定する
ハイブリッド接続を設定したら、オンプレミス環境または他のクラウド環境内に、IP:port
の組み合わせを使用して Cloud Interconnect または Cloud VPN を通じて到達可能なネットワーク エンドポイントを構成します。この IP:port
の組み合わせは、このプロセスの後半で Google Cloud で作成されるハイブリッド接続 NEG の 1 つ以上のエンドポイントとして構成されます。
IP エンドポイントへのパスが複数ある場合、ルーティングは Cloud Router の概要で説明されているように動作します。
ファイアウォール ルールの設定
オンプレミス環境またはその他のクラウド環境に、次のファイアウォール ルールを作成する必要があります。
- オンプレミス環境またはその他のクラウド環境で上り(内向き)許可ファイアウォール ルールを作成して、リージョンのプロキシ専用サブネットからのトラフィックがエンドポイントに到達できるようにします。
ハイブリッド NEG では、Google のヘルスチェック プローブ範囲を許可リストに登録する必要はありません。ただし、1 つのバックエンド サービスでハイブリッド NEG とゾーン NEG の組み合わせを使用している場合は、ゾーン NEG の Google ヘルスチェック プローブ範囲を許可リストに登録する必要があります。
ルートのアドバタイズ
オンプレミス環境または他のクラウド環境に次のカスタム IP 範囲をアドバタイズするように、Cloud Router を構成します。
- リージョンのプロキシ専用サブネットの範囲。
Google Cloud 環境を設定する
以降のステップでは、環境間のハイブリッド接続の構成に使用した VPC ネットワーク(この手順では NETWORK)を使用します。
また、使用するリージョン(この手順では REGION)が Cloud VPN トンネルまたは Cloud Interconnect VLAN アタッチメントの作成に使用したリージョンと同じであることを確認します。
プロキシ専用サブネットを構成する
このプロキシ専用サブネットは、REGION リージョン内のすべてのリージョン外部アプリケーション ロードバランサで使用されます。
コンソール
- Google Cloud コンソールの [VPC ネットワーク] ページに移動します。
[VPC ネットワーク] に移動 - 環境間のハイブリッド接続の構成に使用されたネットワークに移動します。
- [サブネットを追加] をクリックします。
- 名前(PROXY_ONLY_SUBNET_NAME)を入力します。
- リージョン(REGION)を選択します。
- [目的] を [リージョン マネージド プロキシ] に設定します。
- IP アドレス範囲(PROXY_ONLY_SUBNET_RANGE)を入力します。
- [追加] をクリックします。
gcloud
gcloud compute networks subnets
create
コマンドを使用して、プロキシ専用サブネットを作成します。
gcloud compute networks subnets create PROXY_ONLY_SUBNET_NAME \ --purpose=REGIONAL_MANAGED_PROXY \ --role=ACTIVE \ --region=REGION \ --network=NETWORK \ --range=PROXY_ONLY_SUBNET_RANGE
ロードバランサのサブネットを構成する
このサブネットは、ロードバランサのゾーン NEG バックエンド、フロントエンド、内部 IP アドレスの作成に使用されます。
環境間のハイブリッド接続の構成に使用した NETWORK ネットワーク内にサブネットを作成します。
Cloud コンソール
- Google Cloud コンソールの [VPC ネットワーク] ページに移動します。
[VPC ネットワーク] に移動 - 環境間のハイブリッド接続の構成に使用されたネットワークに移動します。
- [サブネット] セクションで次の設定を行います。
- [サブネット作成モード] を [カスタム] に設定します。
- [新しいサブネット] セクションに、次の情報を入力します。
- 名前: LB_SUBNET_NAME
- リージョン: REGION
- IP アドレス範囲: LB_SUBNET_RANGE
- [完了] をクリックします。
- [作成] をクリックします。
gcloud
環境間のハイブリッド接続の構成に使用した NETWORK ネットワーク内にサブネットを作成します。
gcloud compute networks subnets create LB_SUBNET_NAME
--network=NETWORK
--range=LB_SUBNET_RANGE
--region=REGION
ロードバランサの IP アドレスを予約する
Cloud コンソール
Google Cloud コンソールで、[静的アドレスの予約] ページに移動します。
名前(LB_IP_ADDRESS)を入力します。
[ネットワーク サービス ティア] で [スタンダード] を選択します。
[IP バージョン] で [IPv4] を選択します。
[タイプ] で [リージョン] を選択します。
アドレスを作成する REGION を選択します。
[接続先] オプションを [なし] に設定したままにします。ロードバランサを作成すると、この IP アドレスがロードバランサの転送ルールに関連付けられます。
[予約] をクリックして IP アドレスを予約します。
gcloud
次のように、リージョン静的外部 IP アドレスを予約します。
gcloud compute addresses create LB_IP_ADDRESS \ --region=REGION \ --network-tier=STANDARD
結果を表示するには、
compute addresses describe
コマンドを使用します。gcloud compute addresses describe LB_IP_ADDRESS \ --region=REGION
ゾーン NEG にファイアウォール ルールを作成する
この例では、Google Cloud 上のゾーン NEG バックエンド用に次のファイアウォール ルールを作成します。
fw-allow-health-check
: ロード バランシングされているインスタンスに適用される上り(内向き)ファイアウォール ルール。ロードバランサと Google Cloud ヘルスチェック システム(130.211.0.0/22
と35.191.0.0/16
)からのトラフィックを許可します。この例では、ターゲットタグallow-health-check
を使用して、適用するバックエンド VM が識別されます。ハイブリッド NEG では、Google のヘルスチェック プローブ範囲を許可リストに登録する必要はありません。ただし、1 つのバックエンド サービスでハイブリッド NEG とゾーン NEG の組み合わせを使用している場合は、ゾーン NEG の Google ヘルスチェック プローブ範囲を許可リストに登録する必要があります。fw-allow-proxy-only-subnet
: バックエンドにプロキシ専用サブネットからの接続を許可する上り(内向き)ファイアウォール ルール。この例では、ターゲットタグallow-proxy-only-subnet
を使用して、適用するバックエンド VM を識別しています。
コンソール
- Google Cloud コンソールで [ファイアウォール ポリシー] ページに移動します。
[ファイアウォール ポリシー] に移動 - [ファイアウォール ルールを作成] をクリックして、ヘルスチェック プローブからのトラフィックを許可するルールを作成します。
- [名前] に「
fw-allow-health-check
」と入力します。 - [ネットワーク] で、[NETWORK] を選択します。
- [ターゲット] で [指定されたターゲットタグ] を選択します。
- [ターゲットタグ] フィールドに「
allow-health-check
」を入力します。 - [ソースフィルタ] を [IPv4 範囲] に設定します。
- [送信元 IPv4 範囲] を
130.211.0.0/22
と35.191.0.0/16
に設定します。 - [プロトコルとポート] で [指定したプロトコルとポート] を選択します。
- [TCP] を選択し、ポート番号に「
80
」と入力します。 - [Create(作成)] をクリックします。
- [名前] に「
- [ファイアウォール ルールを作成] を再度クリックして、プロキシ専用サブネットからの受信接続を許可するルールを作成します。
- 名前:
fw-allow-ssh
- ネットワーク: NETWORK
- 優先度:
1000
- トラフィックの方向: 上り
- 一致したときのアクション: 許可
- ターゲット: 指定されたターゲットタグ
- ターゲットタグ:
allow-proxy-only-subnet
- ソースフィルタ: IPv4 の範囲
- 送信元 IPv4 範囲: PROXY_ONLY_SUBNET_RANGE
- プロトコルとポート: 指定したプロトコルとポートを選択します。
- [TCP] を選択し、ポート番号に「
80
」と入力します。 - [Create(作成)] をクリックします。
- 名前:
gcloud
Google Cloud ヘルスチェックが TCP ポート
80
でバックエンド インスタンスに到達できるようにfw-allow-health-check-and-proxy
ルールを作成します。gcloud compute firewall-rules create fw-allow-health-check \ --network=NETWORK \ --action=allow \ --direction=ingress \ --target-tags=allow-health-check \ --source-ranges=130.211.0.0/22,35.191.0.0/16 \ --rules=tcp:80
ロードバランサが TCP ポート
80
でバックエンド インスタンスと通信することを許可するプロキシ専用サブネットの上り(内向き)許可ファイアウォール ルールを作成します。gcloud compute firewall-rules create fw-allow-proxy-only-subnet \ --network=NETWORK \ --action=allow \ --direction=ingress \ --target-tags=allow-proxy-only-subnet \ --source-ranges=PROXY_ONLY_SUBNET_RANGE \ --rules=tcp:80
ゾーン NEG を設定する
Google Cloud ベースのバックエンドの場合は、ハイブリッド接続を構成したのと同じリージョンに複数のゾーン NEG を構成することをおすすめします。
この例では、REGION リージョンにゾーン NEG を設定します(GCE_VM_IP_PORT
タイプのエンドポイント)。まず、GCP_NEG_ZONE ゾーンに VM を作成します。次に、同じ GCP_NEG_ZONE にゾーン NEG を作成し、VM のネットワーク エンドポイントを NEG に追加します。
VM を作成する
コンソール
- Google Cloud Console の [VM インスタンス] ページに移動します。
[VM インスタンス] に移動 - [インスタンスを作成] をクリックします。
- [名前] を
vm-a1
に設定します。 - [リージョン] に REGION を選択し、任意のゾーンを選択します。この手順では GCP_NEG_ZONE とします。
- [ブートディスク] セクションで、ブートディスク オプションとして Debian GNU/Linux 12 (bookworm) が選択されていることを確認します。必要に応じて [選択] をクリックし、イメージを変更します。
[詳細オプション] をクリックして、次の変更を行います。
- [ネットワーキング] をクリックして、[ネットワーク タグ] に
allow-ssh
、allow-health-check
、allow-proxy-only-subnet
を追加します。 - [ネットワーク インターフェース] にある編集ボタン
- ネットワーク: NETWORK
- サブネット: LB_SUBNET_NAME
をクリックして、次の変更を行い、[完了] をクリックします。 [管理] をクリックします。[起動スクリプト] フィールドに、次のスクリプトの内容をコピーして貼り付けます。スクリプトの内容は 4 つの VM ですべて同じです。
#! /bin/bash apt-get update apt-get install apache2 -y a2ensite default-ssl a2enmod ssl vm_hostname="$(curl -H "Metadata-Flavor:Google" \ http://metadata.google.internal/computeMetadata/v1/instance/name)" echo "Page served from: $vm_hostname" | \ tee /var/www/html/index.html systemctl restart apache2
- [ネットワーキング] をクリックして、[ネットワーク タグ] に
[作成] をクリックします。
以下の手順を繰り返し、次の名前とゾーンの組み合わせを使用して、2 つ目の VM を作成します。
- 名前:
vm-a2
、ゾーン: GCP_NEG_ZONE
- 名前:
gcloud
VM とそのゾーンの名前にこれらの組み合わせを使用して、次のコマンドを 2 回実行して VM を作成します。スクリプトの内容は両方の VM で同じです。
vm-a1
の VM_NAME と任意の GCP_NEG_ZONE ゾーンvm-a2
の VM_NAME と同じ GCP_NEG_ZONE ゾーンgcloud compute instances create VM_NAME \ --zone=GCP_NEG_ZONE \ --image-family=debian-10 \ --image-project=debian-cloud \ --tags=allow-ssh,allow-health-check,allow-proxy-only-subnet \ --subnet=LB_SUBNET_NAME \ --metadata=startup-script='#! /bin/bash apt-get update apt-get install apache2 -y a2ensite default-ssl a2enmod ssl vm_hostname="$(curl -H "Metadata-Flavor:Google" \ http://metadata.google.internal/computeMetadata/v1/instance/name)" echo "Page served from: $vm_hostname" | \ tee /var/www/html/index.html systemctl restart apache2'
ゾーン NEG を作成する
コンソール
ゾーン ネットワーク エンドポイント グループを作成するには:
- Google Cloud Console の [ネットワーク エンドポイント グループ] ページに移動します。
[ネットワーク エンドポイント グループ] ページに移動 - [ネットワーク エンドポイント グループを作成] をクリックします。
- ゾーン NEG の名前を入力します。この手順では GCP_NEG_NAME とします。
- ネットワーク エンドポイント グループの種類: ネットワーク エンドポイント グループ(ゾーン)を選択します。
- [ネットワーク] で NETWORK を選択します。
- [サブネット] で LB_SUBNET_NAME を選択します。
- [ゾーン] で GCP_NEG_ZONE を選択します。
- [デフォルト ポート:
80
] を入力します。 - [作成] をクリックします。
エンドポイントをゾーン NEG に追加します。
- Google Cloud コンソールでの [ネットワーク エンドポイント グループ] ページに移動します。
[ネットワーク エンドポイント グループ] に移動 - 前のステップで作成したネットワーク エンドポイント グループの名前(GCP_NEG_NAME)をクリックします。ネットワーク エンドポイント グループの詳細ページが表示されます。
- [このグループのネットワーク エンドポイント] セクションで [ネットワーク エンドポイントを追加] をクリックします。[ネットワーク エンドポイントの追加] ページが表示されます。
- [VM インスタンス] を選択して、ネットワーク エンドポイントとして内部 IP アドレスを追加します。[ネットワーク インターフェース] セクションに、VM の名前、ゾーン、サブネットが表示されます。
- [IPv4 アドレス] フィールドに、新しいネットワーク エンドポイントの IPv4 アドレスを入力します。
- ポートタイプを選択します。
- [デフォルト] を選択すると、エンドポイントはネットワーク エンドポイント グループのすべてのエンドポイントにデフォルト ポート
80
を使用します。この例では、Apache サーバーがポート80
でリクエストを配信しているため、これで十分です。 - [カスタム] を選択した場合は、使用するエンドポイントのポート番号を入力します。
- [デフォルト] を選択すると、エンドポイントはネットワーク エンドポイント グループのすべてのエンドポイントにデフォルト ポート
- 他のエンドポイントを追加するには、[ネットワーク エンドポイントを追加] をクリックし、前の手順を繰り返します。
- すべてのエンドポイントを追加したら、[作成] をクリックします。
gcloud
gcloud compute network-endpoint-groups create
コマンドを使用して、ゾーン NEG を作成します(GCE_VM_IP_PORT
エンドポイントを含む)。gcloud compute network-endpoint-groups create GCP_NEG_NAME \ --network-endpoint-type=GCE_VM_IP_PORT \ --zone=GCP_NEG_ZONE \ --network=NETWORK \ --subnet=LB_SUBNET_NAME
今回の手順で NEG を作成する際に
--default-port
を指定するか、次の手順で示すように、エンドポイントごとにポート番号を指定できます。エンドポイントを GCP_NEG_NAME に追加します。
gcloud compute network-endpoint-groups update GCP_NEG_NAME \ --zone=GCP_NEG_ZONE \ --add-endpoint='instance=vm-a1,port=80' \ --add-endpoint='instance=vm-a2,port=80'
ハイブリッド接続 NEG を設定する
NEG を作成するときは、Google Cloud とオンプレミスまたは他のクラウド環境との間の地理的距離を最小限に抑えるゾーンを使用します。たとえば、ドイツのフランクフルトのオンプレミス環境にサービスをホストする場合、NEG を作成するときに europe-west3-a
Google Cloud ゾーンを指定できます。
また、Cloud Interconnect を使用している場合は、NEG の作成に使用するゾーンは、Cloud Interconnect アタッチメントが構成されているリージョンに存在している必要があります。
使用可能なリージョンとゾーンについては、Compute Engine のドキュメント: 使用可能なリージョンとゾーンをご覧ください。
コンソール
ハイブリッド接続ネットワーク エンドポイント グループを作成するには:
- Google Cloud コンソールでの [ネットワーク エンドポイント グループ] ページに移動します。
[ネットワーク エンドポイント グループ] に移動 - [ネットワーク エンドポイント グループを作成] をクリックします。
- ハイブリッド NEG の名前を入力します。この手順では ON_PREM_NEG_NAME とします。
- ネットワーク エンドポイント グループの種類: [ハイブリッド接続ネットワーク エンドポイント グループ(ゾーン)] を選択します。
- ネットワーク: NETWORK を選択します
- [サブネット: LB_SUBNET_NAME] を選択します。
- [ゾーン: ON_PREM_NEG_ZONE] を選択します。
- [デフォルト ポート] を入力します。
- [作成] をクリックします。
ハイブリッド接続 NEG にエンドポイントを追加します。
- Google Cloud コンソールでの [ネットワーク エンドポイント グループ] ページに移動します。
[ネットワーク エンドポイント グループ] ページに移動 - 前のステップで作成したネットワーク エンドポイント グループの名前(ON_PREM_NEG_NAME)をクリックします。ネットワーク エンドポイント グループの詳細ページが表示されます。
- [このグループのネットワーク エンドポイント] セクションで [ネットワーク エンドポイントを追加] をクリックします。[ネットワーク エンドポイントの追加] ページが表示されます。
- 新しいネットワーク エンドポイントの IP アドレスを入力します。
- ポートタイプを選択します。
- [デフォルト] を選択すると、エンドポイントはネットワーク エンドポイント グループのすべてのエンドポイントにデフォルト ポートを使用します。
- [カスタム] を選択すると、使用するエンドポイントに異なる [ポート番号] を入力できます。
- 他のエンドポイントを追加するには、[ネットワーク エンドポイントを追加] をクリックし、前の手順を繰り返します。
- Google Cloud 以外のエンドポイントをすべて追加したら、[作成] をクリックします。
gcloud
gcloud compute network-endpoint-groups create
コマンドを使用して、ハイブリッド接続 NEG を作成します。gcloud compute network-endpoint-groups create ON_PREM_NEG_NAME \ --network-endpoint-type=NON_GCP_PRIVATE_IP_PORT \ --zone=ON_PREM_NEG_ZONE \ --network=NETWORK
オンプレミス バックエンド VM のエンドポイントを ON_PREM_NEG_NAME に追加します。
gcloud compute network-endpoint-groups update ON_PREM_NEG_NAME \ --zone=ON_PREM_NEG_ZONE \ --add-endpoint="ip=ON_PREM_IP_ADDRESS_1,port=PORT_1" \ --add-endpoint="ip=ON_PREM_IP_ADDRESS_2,port=PORT_2"
このコマンドを使用すると、オンプレミスまたはクラウド環境で構成したネットワーク エンドポイントを追加できます。--add-endpoint
を必要な回数だけ繰り返します。
必要に応じて、これらの手順を繰り返して複数のハイブリッド NEG を作成できます。
ロードバランサを構成する
ゾーン NEG バックエンドとハイブリッド NEG バックエンドの両方を使用してロードバランサを作成します。
コンソール
gcloud
- バックエンドのヘルスチェックを作成します。
ハイブリッド NEG バックエンドのヘルスチェック プローブはプロキシ専用サブネットの Envoy プロキシから発信され、ゾーン NEG バックエンドのプローブは [Google の中央プローブ IP 範囲](/load-balancing/docs/health-check-concepts#ip-ranges)から発信されます。gcloud compute health-checks create http HTTP_HEALTH_CHECK_NAME \ --region=REGION \ --use-serving-port
- バックエンド サービスを作成します。このバックエンド サービスに、ゾーン NEG とハイブリッド接続 NEG の両方をバックエンドとして追加します。
gcloud compute backend-services create BACKEND_SERVICE \ --load-balancing-scheme=EXTERNAL_MANAGED \ --protocol=HTTP \ --health-checks=HTTP_HEALTH_CHECK_NAME \ --health-checks-region=REGION \ --region=REGION
- ゾーン NEG をバックエンドとしてバックエンド サービスに追加します。
バランシング モードの構成の詳細については、gcloud CLI のドキュメントでgcloud compute backend-services add-backend BACKEND_SERVICE \ --region=REGION \ --balancing-mode=RATE \ --max-rate-per-endpoint=MAX_REQUEST_RATE_PER_ENDPOINT \ --network-endpoint-group=GCP_NEG_NAME \ --network-endpoint-group-zone=GCP_NEG_ZONE
--max-rate-per-endpoint
パラメータをご覧ください。 - ハイブリッド NEG をバックエンドとしてバックエンド サービスに追加します。
バランシング モードの構成の詳細については、gcloud CLI のドキュメントでgcloud compute backend-services add-backend BACKEND_SERVICE \ --region=REGION \ --balancing-mode=RATE \ --max-rate-per-endpoint=MAX_REQUEST_RATE_PER_ENDPOINT \ --network-endpoint-group=ON_PREM_NEG_NAME \ --network-endpoint-group-zone=ON_PREM_NEG_ZONE
--max-rate-per-endpoint
パラメータをご覧ください。 - 受信リクエストをバックエンド サービスに転送するための URL マップを作成します。
gcloud compute url-maps create URL_MAP_NAME \ --default-service BACKEND_SERVICE \ --region=REGION
- 省略可: この手順は、クライアントとロードバランサ間で HTTPS を使用している場合に行います。HTTP ロードバランサの場合、必須ではありません。
Compute Engine または Certificate Manager の証明書を作成できます。Certificate Manager を使用して証明書を作成するには、次のいずれかの方法を使用します。
- リージョン セルフマネージド証明書。リージョン セルフマネージド証明書の作成と使用については、リージョン セルフマネージド証明書をデプロイするをご覧ください。証明書マップはサポートされていません。
リージョンの Google マネージド証明書。証明書マップはサポートされていません。
Certificate Manager では、次のタイプのリージョン Google マネージド証明書がサポートされています。
- プロジェクトごとの DNS 認証を使用するリージョン Google マネージド証明書。詳細については、リージョン Google マネージド証明書をデプロイするをご覧ください。
- Certificate Authority Service を使用するリージョン Google マネージド(プライベート)証明書。詳細については、CA Service を使用してリージョン Google マネージド証明書をデプロイするをご覧ください。
- URL マップにリクエストを転送するターゲット HTTP(S) プロキシを作成します。
HTTP ロードバランサの場合は、HTTP ターゲット プロキシを作成します。 HTTPS ロードバランサの場合は、HTTPS ターゲット プロキシを作成します。プロキシはロードバランサの一部であり、HTTPS ロード バランシング用の SSL 証明書を保持するため、このステップで証明書も読み込みます。gcloud compute target-http-proxies create TARGET_HTTP_PROXY_NAME \ --url-map=URL_MAP_NAME \ --url-map-region=REGION \ --region=REGION
gcloud compute target-https-proxies create TARGET_HTTPS_PROXY_NAME \ --ssl-certificates=SSL_CERTIFICATE_NAME \ --url-map=URL_MAP_NAME \ --url-map-region=REGION \ --region=REGION
- 受信リクエストをプロキシに転送する転送ルールを作成します。転送ルールの作成には、プロキシ専用サブネットを使用しないでください。
HTTP ロードバランサの場合: HTTPS ロードバランサの場合:gcloud compute forwarding-rules create HTTP_FORWARDING_RULE_NAME \ --load-balancing-scheme=EXTERNAL_MANAGED \ --network=NETWORK \ --subnet=LB_SUBNET_NAME \ --address=LB_IP_ADDRESS \ --ports=80 \ --region=REGION \ --target-http-proxy=TARGET_HTTP_PROXY_NAME \ --target-http-proxy-region=REGION
gcloud compute forwarding-rules create HTTPS_FORWARDING_RULE_NAME \ --load-balancing-scheme=EXTERNAL_MANAGED \ --network=NETWORK \ --subnet=LB_SUBNET_NAME \ --address=LB_IP_ADDRESS \ --ports=443 \ --region=REGION \ --target-http-proxy=TARGET_HTTPS_PROXY_NAME \ --target-http-proxy-region=REGION
証明書を作成したら、証明書をターゲット プロキシに直接関連付けます。
Compute Engine セルフマネージド SSL 証明書リソースを作成するには:gcloud compute ssl-certificates create SSL_CERTIFICATE_NAME \ --certificate CRT_FILE_PATH \ --private-key KEY_FILE_PATH
ドメインをロードバランサに接続する
ロードバランサが作成されたら、ロードバランサに関連付けられた IP アドレスをメモします(例: 30.90.80.100
)。ドメイン登録サービスを使用して A
レコードを作成し、ドメインがロードバランサを参照するようにします。SSL 証明書に複数のドメインを追加する場合は、それぞれについて A
レコードを追加して、すべてがロードバランサの IP アドレスを指すようにする必要があります。たとえば、www.example.com
と example.com
に A
レコードを作成するには、次のようにします。
NAME TYPE DATA www A 30.90.80.100 @ A 30.90.80.100
DNS プロバイダとして Cloud DNS を使用する場合は、レコードの追加、変更、削除をご覧ください。
ロードバランサをテストする
ロードバランサを構成したので、ロードバランサの IP アドレスにトラフィックを送信できるようになりました。
- Google Cloud Console の [ロード バランシング] ページに移動します。
[Cloud Load Balancing] に移動 - 作成したロードバランサをクリックします。
- ロードバランサの IP アドレスをメモします。
ロードバランサにトラフィックを送信する。
HTTP ロードバランサを作成した場合は、ウェブブラウザで
http://IP_ADDRESS
に移動してロードバランサをテストできます。IP_ADDRESS
は、ロードバランサの IP アドレスに置き換えます。エンドポイントを介して公開したサービスが表示されます。HTTPS ロードバランサを作成した場合は、次のように
curl
を使用してロードバランサをテストできます。IP_ADDRESS
は、ロードバランサの IP アドレスに置き換えます。エンドポイントを介して公開したサービスが表示されます。curl -k https://IP_ADDRESS
結果に問題があり、Google マネージド証明書を使用している場合は、証明書リソースのステータスが ACTIVE であることを確認します。詳しくは、Google マネージド SSL 証明書リソースのステータスをご覧ください。 それから、ロードバランサの IP アドレスを指し示すドメインをテストします。次に例を示します。
curl -s https://test.example.com
Google Cloud 以外のエンドポイントのテストは、ハイブリッド NEG エンドポイントを介して公開したサービスによって異なります。