このガイドでは、リージョン バックエンド サービスを使用して外部パススルー ネットワーク ロードバランサのデプロイメントを作成する手順について説明します。この例では、TCP トラフィックまたは UDP トラフィックをサポートする外部パススルー ネットワーク ロードバランサを作成します。TCP や UDP だけでなく、TCP、UDP、ESP、GRE、ICMP、ICMPv6 のトラフィックをロードバランスする外部パススルー ネットワーク ロードバランサを作成する場合は、複数の IP プロトコル用に外部パススルー ネットワーク ロードバランサを設定するをご覧ください。
この例では、ロードバランサを使用して、us-central1
リージョンの 2 つのゾーン マネージド インスタンス グループ内のバックエンド VM に TCP トラフィックを分散させます。同様に有効な方法として、単一のリージョン マネージド インスタンス グループを us-central1
リージョンに使用することもできます。
このシナリオでは、正常に動作しているインスタンスに TCP トラフィックを分散します。この例をサポートするために、TCP ヘルスチェックは、正常なインスタンスにのみトラフィックが送信されるように構成されています。TCP ヘルスチェックは、バックエンド サービスベースのロードバランサでのみサポートされています。ターゲット プールベースのロードバランサは、レガシー HTTP ヘルスチェックのみを使用できます。
この例では、TCP トラフィックをロードバランスしますが、バックエンド サービスベースのネットワーク ロードバランサを使用すると、TCP、UDP、ESP、GRE、ICMP、ICMPv6 のトラフィックをロードバランスできます。
外部パススルー ネットワーク ロードバランサはリージョン ロードバランサです。すべてのロードバランサ コンポーネント(バックエンド VM、バックエンド サービス、転送ルール)は同じリージョン内に存在している必要があります。
始める前に
Google Cloud CLI をインストールします。ツールの完全な概要については、gcloud CLI の概要をご覧ください。ロード バランシングに関連するコマンドについては、API と gcloud のリファレンスをご覧ください。
Google Cloud CLI を初めて実行する場合は、最初に gcloud init
を実行して認証します。
このガイドは、bash の知識があることを前提としています。
ネットワークとサブネットを設定する
このページの例では、lb-network
という名前のカスタムモードの VPC ネットワークを使用します。IPv4 トラフィックのみを処理する場合は、自動モードの VPC ネットワークを使用できます。ただし、IPv6 トラフィックにはカスタムモードのサブネットが必要です。
IPv6 トラフィックには、デュアルスタック サブネット(stack-type
を IPv4_IPv6
に設定)も必要です。カスタムモードの VPC ネットワークにデュアルスタック サブネットを作成する場合は、サブネットに IPv6 アクセスタイプを選択します。この例では、サブネットの ipv6-access-type
パラメータを EXTERNAL
に設定します。このサブネット上の新しい VM には、外部 IPv4 アドレスと外部 IPv6 アドレスの両方を割り当てることができます。転送ルールには、外部 IPv4 アドレスと外部 IPv6 アドレスの両方を割り当てることもできます。
この例で使用されているバックエンドとロードバランサのコンポーネントは、次のリージョンとサブネットに存在します。
- リージョン:
us-central1
- サブネット:
lb-subnet
(プライマリ IPv4 アドレス範囲は10.1.2.0/24
)。サブネットに構成する IPv4 アドレス範囲を選択します。IPv6 アドレス範囲は自動的に割り当てられます。Google では、固定サイズ(/64)の IPv6 CIDR ブロックを提供しています。
サンプルのネットワークとサブネットを作成する手順は次のとおりです。
コンソール
IPv4 トラフィックと IPv6 トラフィックの両方をサポートするには、次の操作を行います。
Google Cloud コンソールの [VPC ネットワーク] ページに移動します。
[VPC ネットワークを作成] をクリックします。
[名前] に「
lb-network
」を入力します。[サブネット] セクションで次の設定を行います。
- [サブネット作成モード] を [カスタム] に設定します。
- [新しいサブネット] セクションで、次のフィールドを構成して [完了] をクリックします。
- 名前:
lb-subnet
- リージョン:
us-central1
- IP スタックタイプ: IPv4 および IPv6(デュアルスタック)
- IPv4 範囲:
10.1.2.0/24
サブネットの IPv4 アドレス範囲は構成できますが、サブネットの IPv6 アドレスの範囲は選択できません。Google では、固定サイズ(/64)の IPv6 CIDR ブロックを提供しています。 - IPv6 アクセスタイプ: 外部
- 名前:
[作成] をクリックします。
IPv4 トラフィックのみをサポートするには、次の操作を行います。
Google Cloud コンソールの [VPC ネットワーク] ページに移動します。
[VPC ネットワークを作成] をクリックします。
[名前] に「
lb-network
」を入力します。[サブネット] セクションで次の設定を行います。
- [サブネット作成モード] を [カスタム] に設定します。
- [新しいサブネット] セクションで、次のフィールドを構成して [完了] をクリックします。
- 名前:
lb-subnet
- リージョン:
us-central1
- IP スタックタイプ: IPv4(シングルスタック)
- IPv4 範囲:
10.1.2.0/24
- 名前:
[作成] をクリックします。
gcloud
カスタムモードの VPC ネットワークを作成します。
gcloud compute networks create lb-network \ --subnet-mode=custom
lb-network
ネットワーク内にus-central1
リージョンのバックエンドのサブネットを作成します。IPv4 トラフィックと IPv6 トラフィックの両方の場合は、次のコマンドを使用してデュアルスタック サブネットを作成します。
gcloud compute networks subnets create lb-subnet \ --stack-type=IPV4_IPv6 \ --ipv6-access-type=EXTERNAL \ --network=lb-network \ --range=10.1.2.0/24 \ --region=us-central1
IPv4 トラフィックのみの場合は、次のコマンドを使用します。
gcloud compute networks subnets create lb-subnet \ --network=lb-network \ --range=10.1.2.0/24 \ --region=us-central1
ゾーン マネージド インスタンス グループを作成する
このロード バランシングのシナリオでは、2 つの Compute Engine ゾーン マネージド インスタンス グループを作成し、各インスタンスに Apache ウェブサーバーをインストールします。
IPv4 トラフィックと IPv6 トラフィックの両方を処理するには、バックエンド VM をデュアルスタックとして構成します。VM の stack-type
を IPv4_IPv6
に設定します。VM は、サブネットから ipv6-access-type
設定(この例では EXTERNAL
)も継承します。IPv6 の要件の詳細については、外部パススルー ネットワーク ロードバランサの概要: 転送ルールをご覧ください。
既存の VM をバックエンドとして使用するには、gcloud compute instances network-interfaces
update
コマンドを使用して VM をデュアルスタックに更新します。
外部パススルー ネットワーク ロードバランサのバックエンド VM として参加するインスタンスでは、適切な Linux ゲスト環境、Windows ゲスト環境、または同等の機能を提供する他のプロセスが実行されている必要があります。
インスタンスの設定
コンソール
インスタンス テンプレートを作成します。Google Cloud コンソールで、[インスタンス テンプレート] ページに移動します。
- [インスタンス テンプレートを作成] をクリックします。
- [名前] に「
ig-us-template
」と入力します。 - [ブートディスク] セクションで、イメージが Debian GNU / Linux 12(bookworm)などの Debian イメージに設定されていることを確認します。以降の手順では、
apt-get
などの Debian でのみ使用できるコマンドを使用します。 - [詳細オプション] をクリックします。
- [ネットワーキング] をクリックします。
- [ネットワーク タグ] に「
lb-tag
」と入力します。 - [ネットワーク インターフェース] で [default] をクリックし、次のフィールドを構成します。
- ネットワーク:
lb-network
- サブネットワーク:
lb-subnet
- ネットワーク:
- [完了] をクリックします。
- [ネットワーク タグ] に「
[管理] をクリックし、次のスクリプトを [起動スクリプト] フィールドにコピーします。
#! /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
[作成] をクリックします。
マネージド インスタンス グループを作成します。Google Cloud コンソールで、[インスタンス グループ] ページに移動します。
- [インスタンス グループを作成] をクリックします。
- [新しいマネージド インスタンス グループ(ステートレス)] を選択します。詳細については、ステートレス MIG とステートフル MIG をご覧ください。
- [名前] に「
ig-us-1
」と入力します。 - [インスタンス テンプレート] で
ig-us-template
を選択します。 - [ロケーション] で [シングルゾーン] を選択します。
- [リージョン] で
us-central1
を選択します。 - [ゾーン] で
us-central1-a
を選択します。 グループ内に作成するインスタンスの数を指定します。
この例では、[自動スケーリング] セクションで次のオプションを指定します。
- [自動スケーリング モード] で [
Off:do not autoscale
] を選択します。 - [インスタンスの最大数] に「
2
」と入力します。
- [自動スケーリング モード] で [
[作成] をクリックします。
上記の手順を繰り返し、次の仕様で
us-central1-c
ゾーンに次の 2 つのマネージド インスタンス グループを作成します。- 名前:
ig-us-2
- ゾーン:
us-central1-c
- インスタンス テンプレート: 前のセクションで作成したものと同じ
ig-us-template
テンプレートを使用します。
- 名前:
gcloud
このガイドの gcloud
の手順は、Cloud Shell または bash がインストールされた別の環境を使用していることを前提としています。
gcloud compute instance-templates create
コマンドを使用して、HTTP サーバーで VM インスタンス テンプレートを作成します。IPv4 トラフィックと IPv6 トラフィックの両方を処理する場合は、次のコマンドを使用します。
gcloud compute instance-templates create ig-us-template \ --region=us-central1 \ --network=lb-network \ --subnet=lb-subnet \ --ipv6-network-tier=PREMIUM \ --stack-type=IPv4_IPv6 \ --tags=lb-tag \ --image-family=debian-12 \ --image-project=debian-cloud \ --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'
IPv4 トラフィックのみのトラフィックを処理するには、次のコマンドを使用します。
gcloud compute instance-templates create ig-us-template \ --region=us-central1 \ --network=lb-network \ --subnet=lb-subnet \ --tags=lb-tag \ --image-family=debian-12 \ --image-project=debian-cloud \ --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'
gcloud compute instance-groups managed create
コマンドを使用して、ゾーンにマネージド インスタンス グループを作成します。gcloud compute instance-groups managed create ig-us-1 \ --zone us-central1-a \ --size 2 \ --template ig-us-template
us-central1-c
ゾーンに 2 つ目のマネージド インスタンス グループを作成します。gcloud compute instance-groups managed create ig-us-2 \ --zone us-central1-c \ --size 2 \ --template ig-us-template
ファイアウォール ルールの構成
外部トラフィック(ヘルスチェック プローブを含む)がバックエンド インスタンスに到達できるようにファイアウォール ルールを作成します。
この例では、すべての送信元範囲からの TCP トラフィックがポート 80 でバックエンド インスタンスに到達できるようにファイアウォール ルールを作成します。ヘルスチェック プローブ専用のファイアウォール ルールを作成する場合は、ヘルスチェックの概要: プローブ IP 範囲とファイアウォール ルールに記載されているソース IP アドレス範囲を使用します。
コンソール
Google Cloud コンソールで [ファイアウォール ポリシー] ページに移動します。
IPv4 トラフィックを許可するには、次の操作を行います。
- [ファイアウォール ルールを作成] をクリックします。
- [名前] に「
allow-network-lb-ipv4
」と入力します。 - [ネットワーク] リストで、[
lb-network
] を選択します。 - [ターゲット] で [指定されたターゲットタグ] を選択します。
- [ターゲットタグ] フィールドに「
lb-tag
」と入力します。 - [ソースフィルタ] で [IPv4 範囲] を選択します。
- [ソース IPv4 の範囲] を
0.0.0.0/0
に設定します。これにより、任意の送信元からの IPv4 トラフィックが許可されます。また、Google のヘルスチェック プローブがバックエンド インスタンスに到達できるようになります。 - [指定したプロトコルとポート] で [TCP] チェックボックスをオンにして、「
80
」と入力します。 - [作成] をクリックします。新しいファイアウォール ルールが Google Cloud コンソールに表示されるまで少し時間がかかる場合があります。表示されない場合は、[更新] をクリックしてルールを表示してみてください。
IPv6 トラフィックを許可するには、次の操作を行います。
- もう一度 [ファイアウォール ルールを作成] をクリックします。
- [名前] に「
allow-network-lb-ipv6
」と入力します。 - [ネットワーク] リストで、[
lb-network
] を選択します。 - [ターゲット] で [指定されたターゲットタグ] を選択します。
- [ターゲットタグ] フィールドに「
lb-tag
」と入力します。 - [ソースフィルタ] で [IPv6 範囲] を選択します。
- [ソース IPv6 の範囲] を
::/0
に設定します。これにより、任意の送信元からの IPv6 トラフィックが許可されます。また、Google のヘルスチェック プローブがバックエンド インスタンスに到達できるようになります。 - [指定したプロトコルとポート] で [TCP] チェックボックスをオンにして、「
80
」と入力します。 - [作成] をクリックします。新しいファイアウォール ルールがコンソールに表示されるまで少し時間がかかる場合があります。表示されない場合は、[更新] をクリックしてルールを表示してみてください。
gcloud
IPv4 トラフィックを許可するには、次のコマンドを実行します。
gcloud compute firewall-rules create allow-network-lb-ipv4 \ --network=lb-network \ --target-tags=lb-tag \ --allow=tcp:80 \ --source-ranges=0.0.0.0/0
IPv6 トラフィックを許可するには、次のコマンドを実行します。
gcloud compute firewall-rules create allow-network-lb-ipv6 \ --network=lb-network \ --target-tags=lb-tag \ --allow=tcp:80 \ --source-ranges=::/0
ロードバランサの構成
次に、ロードバランサを設定します。
ロードバランサを構成すると、構成した静的外部 IP アドレス宛てのパケットが仮想マシン(VM)インスタンスに送信されます。Compute Engine で提供されるイメージを使用する場合は、この IP アドレスを処理するようにインスタンスが自動的に構成されます。その他のイメージを使用する場合は、このアドレスを eth0
のエイリアスまたは各インスタンスのループバックとして構成する必要があります。
ロードバランサを設定するには、次の手順を行います。
コンソール
構成を開始する
Google Cloud コンソールで、[ロード バランシング] ページに移動します。
- [ロードバランサを作成] をクリックします。
- [ロードバランサの種類] で [ネットワーク ロードバランサ(TCP / UDP / SSL)] を選択し、[次へ] をクリックします。
- [プロキシまたはパススルー] で [パススルー ロードバランサ] を選択し、[次へ] をクリックします。
- [インターネット接続または内部] で [インターネット接続(外部)] を選択し、[次へ] をクリックします。
- [構成] をクリックします。
バックエンドの構成
- [Create external passthrough Network Load Balancer] ページで、新しいロードバランサの名前
tcp-network-lb
を入力します。 - [リージョン] で
us-central1
を選択します。 - [バックエンドの構成] をクリックします。
- [バックエンドの構成] ページで次の変更を行います。
- [新しいバックエンド] で、[IP スタックタイプ] を選択します。IPv4 トラフィックと IPv6 トラフィックの両方を処理するデュアル スタック バックエンドを作成した場合は、[IPv4 と IPv6(デュアルスタック)] を選択します。IPv4 トラフィックのみを処理するには、[IPv4(シングルスタック)] を選択します。
- [インスタンス グループ] リストで
ig-us-1
を選択し、[完了] をクリックします。 - [バックエンドを追加] をクリックし、この手順を繰り返して
ig-us-2
を追加します。 - [ヘルスチェック] で、[ヘルスチェックを作成] または [別のヘルスチェックを作成] をクリックして、次の情報を入力します。
- 名前:
tcp-health-check
- プロトコル:
TCP
- ポート:
80
- 名前:
- [保存] をクリックします。
- 続行する前に、[バックエンドの構成] の隣に青いチェックマークがあることを確認します。
フロントエンドの構成
- [フロントエンドの構成] をクリックします。
- [名前] に「
network-lb-forwarding-rule
」と入力します。 - IPv4 トラフィックを処理する手順は次のとおりです。
- [IP バージョン] で [IPv4] を選択します。
- [内部 IP の目的] セクションの [IP アドレス] リストで、[IP アドレスを作成] を選択します。
- [新しい静的 IP アドレスの予約] ページで、[名前] に「
network-lb-ipv4
」と入力します。 - [予約] をクリックします。
- [新しい静的 IP アドレスの予約] ページで、[名前] に「
- [ポート] で [単一] を選択します。[ポート番号] に「
80
」と入力します。 - [完了] をクリックします。
IPv6 トラフィックを処理する手順は次のとおりです。
- [IP バージョン] で [IPv6] を選択します。
- [サブネットワーク] で [lb-subnet] を選択します。
- [IPv6 範囲] リストで、[IP アドレスを作成] を選択します。
- [新しい静的 IP アドレスの予約] ページで、[名前] に「
network-lb-ipv6
」と入力します。 - [予約] をクリックします。
- [新しい静的 IP アドレスの予約] ページで、[名前] に「
- [ポート] で [単一] を選択します。[ポート番号] に「
80
」と入力します。 - [完了] をクリックします。
[フロントエンドの構成] の左側にある青い丸のチェックマークが表示されていれば、設定に成功しています。
構成を確認する
- [確認と完了] をクリックします。
- ロードバランサの構成を確認します。
- 省略可: [同等のコード] をクリックして、ロードバランサの作成に使用する REST API リクエストを表示します。
[作成] をクリックします。
[ロード バランシング] ページで、新しいロードバランサの [バックエンド] 列に緑色のチェックマークが表示されていれば、新しく作成したロードバランサは正常な状態です。
gcloud
静的外部 IP アドレスの予約。
IPv4 トラフィックの場合: ロードバランサに静的外部 IPv4 アドレスを作成します。
gcloud compute addresses create network-lb-ipv4 \ --region us-central1
IPv6 トラフィックの場合: ロードバランサの静的外部 IPv6 アドレス範囲を作成します。使用するサブネットは、外部 IPv6 範囲のあるデュアル スタック サブネットである必要があります。
gcloud compute addresses create network-lb-ipv6 \ --region us-central1 \ --subnet lb-subnet \ --ip-version IPV6 \ --endpoint-type NETLB
TCP ヘルスチェックを作成します。
gcloud compute health-checks create tcp tcp-health-check \ --region us-central1 \ --port 80
バックエンド サービスを作成します。
gcloud compute backend-services create network-lb-backend-service \ --protocol TCP \ --health-checks tcp-health-check \ --health-checks-region us-central1 \ --region us-central1
バックエンド サービスに、インスタンス グループを追加します。
gcloud compute backend-services add-backend network-lb-backend-service \ --instance-group ig-us-1 \ --instance-group-zone us-central1-a \ --region us-central1
gcloud compute backend-services add-backend network-lb-backend-service \ --instance-group ig-us-2 \ --instance-group-zone us-central1-c \ --region us-central1
IPv4 トラフィックと IPv6 トラフィックのどちらを処理するかに応じて、転送ルールを作成します。両方の転送ルールを作成して、両方のタイプのトラフィックを処理します。
IPv4 トラフィックの場合: 着信する TCP トラフィックをバックエンド サービスに転送する転送ルールを作成します。手順 1 で予約した IPv4 アドレスをロードバランサの静的外部 IP アドレスとして使用します。
gcloud compute forwarding-rules create network-lb-forwarding-rule-ipv4 \ --load-balancing-scheme EXTERNAL \ --region us-central1 \ --ports 80 \ --address network-lb-ipv4 \ --backend-service network-lb-backend-service
IPv6 トラフィックの場合: IPv6 トラフィックを処理する転送ルールを作成します。手順 1 で予約した IPv6 アドレス範囲を、ロードバランサの静的外部 IP アドレスとして使用します。使用するサブネットは、外部 IPv6 サブネット範囲のあるデュアル スタック サブネットである必要があります。
gcloud compute forwarding-rules create network-lb-forwarding-rule-ipv6 \ --load-balancing-scheme EXTERNAL \ --region us-central1 \ --network-tier PREMIUM \ --ip-version IPV6 \ --subnet lb-subnet \ --address network-lb-ipv6 \ --ports 80 \ --backend-service network-lb-backend-service
ロードバランサをテストする
ロード バランシング サービスの構成が完了したので、ロードバランサの外部 IP アドレスにトラフィックの送信を開始できます。また、バックエンド インスタンスに分散されるトラフィックを監視できます。
ロードバランサの外部 IP アドレスを調べる
コンソール
[ロード バランシングのコンポーネント] ページで、[転送ルール] タブに移動します。
ロードバランサが使用する転送ルールを探します。
[外部 IP アドレス] 列に表示された外部 IP アドレスをメモします。
gcloud: IPv4
次のコマンドを入力して、ロードバランサが使用する network-lb-forwarding-rule
転送ルールの外部 IPv4 アドレスを表示します。
gcloud compute forwarding-rules describe network-lb-forwarding-rule-ipv4 \ --region us-central1
gcloud: IPv6
次のコマンドを入力して、ロードバランサが使用する network-lb-forwarding-rule
転送ルールの外部 IPv6 アドレスを表示します。
gcloud compute forwarding-rules describe network-lb-forwarding-rule-ipv6 \ --region us-central1
ロードバランサにトラフィックを送信する
curl
を使用して IP アドレスに接続するロードバランサへのウェブ リクエストを作成します。
IPv4 接続のクライアントから、次のコマンドを実行します。
$ while true; do curl -m1 IPV4_ADDRESS; done
IPv6 接続のクライアントから、次のコマンドを実行します。
$ while true; do curl -m1 http://IPV6_ADDRESS; done
たとえば、割り当てられた IPv6 アドレスが
[2001:db8:1:1:1:1:1:1/96]:80
の場合、コマンドは次のようになります。$ while true; do curl -m1 http://[2001:db8:1:1:1:1:1:1]:80; done
curl
コマンドによって返された値の文字列をメモします。レスポンスを生成するバックエンド VM の名前が文字列内に表示されます(たとえば、Page served
from: VM_NAME
)。
curl
コマンドからのレスポンスは、バックエンド インスタンスの間でランダムに変わります。最初のレスポンスで失敗した場合は、構成が完全に読み込まれてインスタンスが正常であるとマークされるまで最大 30 秒待ってから、もう一度やり直してください。
追加の構成オプション
このセクションでは、外部パススルー ネットワーク ロードバランサをさらにカスタマイズする方法について説明します。これらのタスクは省略可能です。これらは任意の順序で実行できます。
セッション アフィニティを構成する
この構成例では、セッション アフィニティが無効(値を NONE
に設定)のバックエンド サービスが作成されます。このセクションでは、バックエンド サービスを更新してロードバランサのセッション アフィニティの設定を変更する方法について説明します。
サポートされているセッション アフィニティのタイプについては、セッション アフィニティのオプションをご覧ください。
コンソール
Google Cloud コンソールで、[ロード バランシング] ページに移動します。
[ロードバランサ] タブで、バックエンド サービスの名前をクリックし、[編集] をクリックします。
[Edit external passthrough Network Load Balancer] ページで、[バックエンドの構成] をクリックします。
[セッション アフィニティ] リストからオプションを選択します。
[更新] をクリックします。
gcloud
次の gcloud
コマンドを使用して、バックエンド サービスのセッション アフィニティを更新します。
gcloud compute backend-services update BACKEND_SERVICE \ --region=REGION \ --session-affinity=SESSION_AFFINITY_OPTION
プレースホルダを有効な値に置き換えます。
BACKEND_SERVICE
: 更新するバックエンド サービスSESSION_AFFINITY_OPTION
: 設定するセッション アフィニティ オプション外部パススルー ネットワーク ロードバランサでサポートされている値の一覧については、セッション アフィニティのオプションをご覧ください。
接続トラッキング ポリシーを構成する
この構成例では、接続トラッキング ポリシーのデフォルト設定を使用してバックエンド サービスを作成しています。このセクションでは、バックエンド サービスを更新してロードバランサのデフォルトの接続トラッキング ポリシーを変更する方法について説明します。
接続トラッキング ポリシーには次の設定が含まれます。
- トラッキング モード
- 異常なバックエンドでの接続の永続性
- アイドル タイムアウト(60 秒、構成不可)
gcloud
次の gcloud compute
backend-services
コマンドを使用して、バックエンド サービスの接続トラッキング ポリシーを更新します。
gcloud compute backend-services update BACKEND_SERVICE \ --region=REGION \ --tracking-mode=TRACKING_MODE \ --connection-persistence-on-unhealthy-backends=CONNECTION_PERSISTENCE_BEHAVIOR
プレースホルダを有効な値に置き換えます。
BACKEND_SERVICE
: 更新するバックエンド サービスTRACKING_MODE
: 受信パケットに使用される接続トラッキング モード。サポートされている値のリストについては、トラッキング モードをご覧ください。CONNECTION_PERSISTENCE_BEHAVIOR
: バックエンドが異常な場合の接続の永続性の動作。サポートされている値の一覧については、異常なバックエンドでの接続の永続性をご覧ください。
トラフィック ステアリングを構成する
このセクションでは、ロードバランサのフロントエンド構成を更新して、ソース IP ベースのトラフィック ステアリングを設定する方法について説明します。トラフィック ステアリングの仕組みについて詳しくは、トラフィック ステアリングをご覧ください。
以下の手順は、親のベース転送ルールがすでに作成されていることを前提としています。この例では、親と同じ IP アドレス、IP プロトコル、ポートを持つ 2 つ目の転送ルール(ステアリング転送ルール)を作成します。このステアリング転送ルールはソース IP 範囲で構成されているため、これらのソース IP 範囲からのパケットの転送方法をカスタマイズできます。
gcloud
次のコマンドを使用して、バックエンド サービスを指すステアリング転送ルールを作成します。
gcloud compute forwarding-rules create STEERING_FORWARDING_RULE_BS \ --load-balancing-scheme=EXTERNAL \ --backend-service=BACKEND_SERVICE \ --address=LOAD_BALANCER_VIP \ --ip-protocol=IP_PROTOCOL \ --ports=PORTS \ --region=REGION \ --source-ip-ranges=SOURCE_IP_ADDRESS_RANGES
ターゲット インスタンスを参照するステアリング転送ルールを作成するには、次のコマンドを使用します。
gcloud compute forwarding-rules create STEERING_FORWARDING_RULE_TI \ --load-balancing-scheme=EXTERNAL \ --target-instance=TARGET_INSTANCE \ --address=LOAD_BALANCER_VIP \ --ip-protocol=IP_PROTOCOL \ --ports=PORTS \ --region=REGION \ --source-ip-ranges=SOURCE_IP_ADDRESS_RANGES
プレースホルダを有効な値に置き換えます。
FORWARDING_RULE
: 作成するステアリング転送ルールの名前。BACKEND_SERVICE
またはTARGET_INSTANCE
: このステアリング転送ルールがトラフィックを送信するバックエンド サービスまたはターゲット インスタンスの名前。親転送ルールがバックエンド サービスを指していても、ターゲット インスタンスを指すステアリング転送ルールを作成できます。LOAD_BALANCER_VIP
、IP_PROTOCOL
、PORTS
: 作成するステアリング転送ルールの IP アドレス、IP プロトコル、ポート。これらの設定は、既存の基本転送ルールと一致する必要があります。REGION
: 作成する転送ルールのリージョン。SOURCE_IP_ADDRESS_RANGES
: IP アドレスまたは IP アドレス範囲のカンマ区切りリスト。この転送ルールは、受信パケットの送信元 IP アドレスがここで設定した IP 範囲のいずれかに該当する場合にのみ、トラフィックを転送します。
ステアリング転送ルールを削除するには、次のコマンドを使用します。ロードバランサ自体を削除するには、その前に、ロードバランサによって使用されているステアリング転送ルールを削除する必要があります。
gcloud compute forwarding-rules delete STEERING_FORWARDING_RULE \ --region=REGION
フェイルオーバー ポリシーを構成する
フェイルオーバー ポリシーを構成するには、外部パススルー ネットワーク ロードバランサのフェイルオーバーを構成するをご覧ください。
重み付きロード バランシングを構成する
重み付き負荷分散を構成するには、重み付き負荷分散を構成するをご覧ください。
BYOIP を含む IPv6 転送ルールを作成する
前の手順で作成したロードバランサは、IP version
を IPv4
または IPv6
とする転送ルールで構成されています。このセクションでは、お客様所有 IP(BYOIP)アドレスを使用して IPv6 転送ルールを作成する手順について説明します。
お客様所有 IP アドレスを使用すると、Google Cloud リソースに独自のパブリック IPv6 アドレスをプロビジョニングして使用できます。詳細については、お客様所有 IP アドレスの使用をご覧ください。
BYOIP アドレスを使用して IPv6 転送ルールの構成を開始する前に、次の手順を完了する必要があります。
新しい転送ルールを作成するには、次の手順を行います。
コンソール
Google Cloud コンソールで、[ロード バランシング] ページに移動します。
- 変更するロードバランサの名前をクリックします。
- [ 編集] をクリックします。
- [フロントエンドの構成] をクリックします。
- [フロントエンド IP とポートの追加] をクリックします。
- [新しいフロントエンドの IP とポート] セクションで、次の情報を指定します。
- [プロトコル] は [TCP] です。
- [IP バージョン] フィールドで、[IPv6] を選択します。
- [IPv6 範囲のソース] フィールドで、[BYOIP] を選択します。
- [IP コレクション] リストで、転送ルール オプションを有効にして、前の手順で作成したサブプレフィックスを選択します。
- [IPv6 範囲] フィールドに IPv6 アドレス範囲を入力します。IPv6 アドレス範囲は、IPv6 サブプレフィックスの仕様に準拠していなければなりません。
- [ポート] フィールドにポート番号を入力します。
- [完了] をクリックします。
- [更新] をクリックします。
Google Cloud CLI
gcloud compute forwarding-rules create
コマンドを使用して転送ルールを作成します。
gcloud compute forwarding-rules create FWD_RULE_NAME \ --load-balancing-scheme EXTERNAL \ --ip-protocol PROTOCOL \ --ports ALL \ --ip-version IPV6 \ --region REGION_A \ --address IPV6_CIDR_RANGE \ --backend-service BACKEND_SERVICE \ --ip-collection PDP_NAME
次のように置き換えます。
FWD_RULE_NAME
: 転送ルールの名前PROTOCOL
: 転送ルールの IP プロトコル。デフォルトはTCP
です。IP プロトコルは、TCP
、UDP
、L3_DEFAULT
のいずれかです。REGION_A
: 転送ルールのリージョンIPV6_CIDR_RANGE
: 転送ルールが提供する IPv6 アドレス範囲。IPv6 アドレス範囲は、IPv6 サブプレフィックスの仕様に準拠していなければなりません。BACKEND_SERVICE
: バックエンド サービスの名前PDP_NAME
: パブリック委任プレフィックスの名前。PDP は、EXTERNAL_IPV6_FORWARDING_RULE_CREATION モードのサブプレフィックスでなければなりません。
次のステップ
- 外部パススルー ネットワーク ロードバランサをターゲット プール バックエンドからリージョン バックエンド サービスに移行する方法を確認する。外部パススルー ネットワーク ロードバランサをターゲット プールからバックエンド サービスに移行するをご覧ください。
- 複数の IP プロトコルに外部パススルー ネットワーク ロードバランサを構成する(IPv4 と IPv6 のトラフィックをサポート)。複数の IP プロトコルへの外部パススルー ネットワーク ロードバランサを設定するをご覧ください。
- ゾーン ネットワーク エンドポイント グループ(NEG)バックエンドを使用して外部パススルー ネットワーク ロードバランサを構成し、パケットを VM インスタンスの
nic0
以外のネットワーク インターフェースに転送できるようにする。ゾーン NEG バックエンドを使用した外部パススルー ネットワーク ロードバランサを設定するをご覧ください。 - Google Cloud Armor を使用して外部パススルー ネットワーク ロードバランサの高度なネットワーク DDoS 対策を構成する。高度なネットワーク DDoS 保護を構成するをご覧ください。
- リソースを削除する。ロードバランサの設定をクリーンアップするをご覧ください。