このガイドでは、リージョン バックエンド サービスを使用して外部パススルー ネットワーク ロードバランサのデプロイメントを作成する手順について説明します。この例では、TCP トラフィックまたは UDP トラフィックをサポートする外部パススルー ネットワーク ロードバランサを作成します。TCP または UDP だけでなく、TCP、UDP、ESP、GRE、ICMP、ICMPv6 のトラフィックをロードバランスする外部パススルー ネットワーク ロードバランサを作成する場合は、複数の IP プロトコル用に外部パススルー ネットワーク ロードバランサを設定するをご覧ください。
この例では、ロードバランサを使用して、us-central1 リージョンの 2 つのゾーン マネージド インスタンス グループ内のバックエンド VM に TCP トラフィックを分散させます。同様に有効な方法として、単一のリージョン マネージド インスタンス グループを us-central1 リージョンに使用することもできます。
このシナリオでは、TCP 接続をロード バランシングし、TCP ヘルスチェックを使用します。サポートされている他のプロトコルについては、リージョン バックエンド サービスとヘルスチェックをご覧ください。
外部パススルー ネットワーク ロードバランサはリージョン ロードバランサです。すべてのロードバランサ コンポーネント(バックエンド VM、バックエンド サービス、転送ルール)は同じリージョン内に存在している必要があります。
始める前に
Google Cloud CLI をインストールします。ツールの完全な概要については、gcloud CLI の概要をご覧ください。ロード バランシングに関連するコマンドについては、API と gcloud のリファレンスをご覧ください。
Google Cloud CLI を初めて実行する場合は、最初に gcloud init を実行して認証します。
このガイドは、bash の知識があることを前提としています。
ネットワークとサブネットを設定する
このページの例では、lb-network という名前のカスタムモードの VPC ネットワークを使用します。IPv4 トラフィックのみを処理する場合は、自動モードの VPC ネットワークを使用できます。ただし、IPv6 アドレス範囲のサブネットは、自動モードの VPC ネットワークではサポートされていません。IPv6 アドレス範囲のサブネットは、カスタムモードの VPC ネットワークでのみサポートされます。
この例では、次のスタックタイプのサブネットが作成されます。
| サブネットの範囲 | スタックタイプ |
|---|---|
| IPv4 サブネット範囲のみ | IPV4_ONLY(シングルスタック) |
| IPv4 と IPv6 の両方のサブネット範囲 | IPV4_IPV6(デュアルスタック) |
| IPv6 サブネット範囲のみ | IPV6_ONLY(シングルスタック) |
IPv6 アドレス範囲を使用するデュアルスタック サブネットと IPv6 専用サブネットの場合は、サブネットの IPv6 アクセスタイプを選択する必要があります。IPv6 アクセスタイプによって、サブネットが内部 IPv6 アドレスまたは外部 IPv6 アドレスのどちらで構成されるかが決まります。この例では、サブネットの ipv6-access-type パラメータは EXTERNAL に設定されています。
外部 IPv6 アドレス範囲を持つサブネット(ipv6-access-type パラメータが EXTERNAL に設定されているサブネット)は、転送ルールの外部 IPv6 アドレスの取得元としても使用できます。詳細については、転送ルールの IP アドレスの仕様をご覧ください。
この例で使用されているバックエンドとロードバランサのコンポーネントは、次のリージョンとサブネットに存在します。
- リージョン:
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
- 名前:
[作成] をクリックします。
IPv4 トラフィックのみをサポートするには、次の操作を行います。
Google Cloud コンソールで、[VPC ネットワーク] ページに移動します。
[VPC ネットワークを作成] をクリックします。
[名前] に「
lb-network」と入力します。[サブネット作成モード] を [カスタム] に設定します。
[サブネット] セクションで、[サブネットの追加] をクリックし、次のフィールドを構成します。
- 名前:
lb-subnet - リージョン:
us-central1 - IP スタックタイプ: IPv6(シングルスタック)
- IPv6 アクセスタイプ: 外部
- 名前:
[作成] をクリックします。
gcloud
カスタムモードの VPC ネットワークを作成します。
gcloud compute networks create lb-network \ --subnet-mode=customlb-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-central1IPv4 トラフィックのみの場合は、次のコマンドを使用します。
gcloud compute networks subnets create lb-subnet \ --network=lb-network \ --range=10.1.2.0/24 \ --region=us-central1IPv4 トラフィックのみの場合は、次のコマンドを使用します。
gcloud compute networks subnets create lb-subnet \ --stack-type=IPV6_ONLY \ --ipv6-access-type=EXTERNAL \ --network=lb-network \ --region=us-central1
ゾーン マネージド インスタンス グループを作成する
このロード バランシングのシナリオでは、2 つの Compute Engine ゾーン マネージド インスタンス グループを作成し、各インスタンスに Apache ウェブサーバーをインストールします。
インスタンス グループは、バックエンド VM の作成に使用されるインスタンス テンプレートを参照します。この例では、IPv4 専用、デュアル スタック、IPv6 専用のネットワーク インターフェースを持つバックエンド VM を作成します。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」と入力します。 [ネットワーク インターフェース] で、デフォルトのネットワーク インターフェースを選択します。
デュアルスタック ネットワーク インターフェースを持つバックエンド VM を作成するには、次のフィールドを構成します。
- ネットワーク:
lb-network - サブネットワーク:
lb-subnet - IP スタックタイプ: IPv4 および IPv6(デュアルスタック)
- 外部 IPv4 アドレス: エフェメラル
- 外部 IPv6 アドレス: 自動割り振り
IPv4 のみのネットワーク インターフェースを持つバックエンド VM を作成するには、次のフィールドを構成します。
- ネットワーク:
lb-network - サブネットワーク:
lb-subnet - IP スタックタイプ: IPv4(シングルスタック)
- 外部 IPv4 アドレス: エフェメラル
IPv6 のみのネットワーク インターフェースを持つバックエンド VM を作成するには、次のフィールドを構成します。
- ネットワーク:
lb-network - サブネットワーク:
lb-subnet - IP スタックタイプ: IPv6(シングルスタック)
- 外部 IPv6 アドレス: 自動割り振り
- ネットワーク:
[完了] をクリックします。
- [ネットワーク タグ] に「
[管理] をクリックし、次のスクリプトを [起動スクリプト] フィールドにコピーします。
#! /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 コンソールで、[インスタンス グループ] ページに移動します。
[インスタンス グループを作成] をクリックします。
[新しいマネージド インスタンス グループ(ステートレス)] を選択します。詳細については、マネージド インスタンス グループをご覧ください。
[名前] に「
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 インスタンス テンプレートを作成します。デュアルスタック ネットワーク インターフェースを使用してバックエンド VM を作成するには、次のコマンドを使用します。
ipv6-access-typeがEXTERNALに設定されているサブネットに VM を作成する場合にのみ、--ipv6-network-tierをPREMIUMに設定します。サブネットのipv6-access-typeがINTERNALの場合、このフラグは省略します。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 専用のネットワーク インターフェースを持つバックエンド VM を作成するには、次のコマンドを使用します。
gcloud compute instance-templates create ig-us-template \ --region=us-central1 \ --network=lb-network \ --subnet=lb-subnet \ --stack-type=IPV4_ONLY \ --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'IPv6 専用ネットワーク インターフェースを持つバックエンド VM を作成するには、次のコマンドを使用します。
gcloud compute instance-templates create ig-us-template \ --region=us-central1 \ --network=lb-network \ --subnet=lb-subnet \ --ipv6-network-tier=PREMIUM \ --stack-type=IPV6_ONLY \ --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-templateus-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を選択します。 - [バックエンドの構成] をクリックします。
- [バックエンドの構成] ページで、次の操作を行います。
- [ヘルスチェック] リストで [ヘルスチェックを作成] をクリックし、次の情報を入力します。
- 名前:
tcp-health-check - プロトコル: TCP
- ポート:
80
- 名前:
- [作成] をクリックします。
- [新しいバックエンド] で、IP スタックタイプを選択します。
- [インスタンス グループ] リストで
ig-us-1を選択し、[完了] をクリックします。 - [バックエンドを追加] をクリックし、この手順を繰り返して
ig-us-2を追加します。 - [保存] をクリックします。
- [ヘルスチェック] リストで [ヘルスチェックを作成] をクリックし、次の情報を入力します。
- 次に進む前に、[バックエンドの構成] の横に青いチェックマークが付いていることを確認します。
フロントエンドの構成
- [フロントエンドの構成] をクリックします。
- [名前] に「
network-lb-forwarding-rule」と入力します。 - IPv4 トラフィックを処理する手順は次のとおりです。
- [IP バージョン] で [IPv4] を選択します。
- [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-central1IPv6 トラフィックの場合
ロードバランサに使用する静的外部 IPv6 アドレス範囲を作成します。使用するサブネットは、外部 IPv6 範囲を持つデュアルスタック サブネットである必要があります。
gcloud compute addresses create network-lb-ipv6 \ --region us-central1 \ --subnet lb-subnet \ --ip-version IPV6 \ --endpoint-type NETLBTCP ヘルスチェックを作成します。
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-central1gcloud compute backend-services add-backend network-lb-backend-service \ --instance-group ig-us-2 \ --instance-group-zone us-central1-c \ --region us-central1IPv4 トラフィックと 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-serviceIPv6 トラフィックの場合
IPv6 トラフィックを処理する転送ルールを作成します。ステップ 1 で予約した IPv6 アドレス範囲を、ロードバランサの静的外部 IP アドレスとして使用します。使用するサブネットは、外部 IPv6 サブネット範囲を持つデュアルスタック サブネットまたは 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 アドレスを調べる
コンソール
Google Cloud コンソールで、[ロード バランシングのコンポーネント] ページに移動します。
[転送ルール] タブで、ロードバランサが使用する転送ルールを見つけます。
[外部 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 コンソールで、[ロード バランシング] ページに移動します。
[ロードバランサ] タブで、バックエンド サービスの名前をクリックして [編集] をクリックします。
[外部パススルー ネットワーク ロードバランサの編集] ページで、[バックエンドの構成] をクリックします。
[セッション アフィニティ] リストからオプションを選択します。
[更新] をクリックします。
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 update コマンドを使用して、バックエンド サービスの接続トラッキング ポリシーを更新します。
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
プレースホルダを有効な値に置き換えます。
STEERING_FORWARDING_RULE_BSまたはSTEERING_FORWARDING_RULE_TI: 作成するステアリング転送ルールの名前。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 とポート] セクションで、次の情報を指定します。
- 必要なプロトコルを選択します。
- [IP バージョン] フィールドで、[IPv6] を選択します。
- [IPv6 範囲のソース] フィールドで、[BYOIP] を選択します。
- [IP コレクション] リストで、転送ルール オプションを有効にして、前の手順で作成したサブプレフィックスを選択します。
- [IPv6 範囲] フィールドに IPv6 アドレス範囲を入力します。IPv6 アドレス範囲のプレフィックスは、関連付けられたサブプレフィックスで指定された割り振り可能なプレフィックス長と一致している必要があります。
- [ポート] フィールドにポート番号を入力します。
- [完了] をクリックします。
- [更新] をクリックします。
gcloud
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のいずれかです。REGION_A: 転送ルールのリージョン。IPV6_CIDR_RANGE: 転送ルールが対象とする IPv6 アドレス範囲。IPv6 アドレス範囲のプレフィックスは、関連付けられたサブプレフィックスで指定された割り振り可能なプレフィックス長と一致している必要があります。BACKEND_SERVICE: バックエンド サービスの名前。PDP_NAME: パブリック委任プレフィックスの名前。PDP は、EXTERNAL_IPV6_FORWARDING_RULE_CREATION モードのサブプレフィックスでなければなりません。
次のステップ
- 外部パススルー ネットワーク ロードバランサをターゲット プール バックエンドからリージョン バックエンド サービスに移行する。外部パススルー ネットワーク ロードバランサをターゲット プールからバックエンド サービスに移行するをご覧ください。
- 複数の IP プロトコルに外部パススルー ネットワーク ロードバランサを構成する(IPv4 と IPv6 のトラフィックをサポート)。複数の IP プロトコルへの外部パススルー ネットワーク ロードバランサを設定するをご覧ください。
- ゾーン ネットワーク エンドポイント グループ(NEG)バックエンドを使用して外部パススルー ネットワーク ロードバランサを構成し、パケットを VM インスタンスの
nic0以外のネットワーク インターフェースに転送できるようにする。ゾーン NEG を使用して外部パススルー ネットワーク ロードバランサを設定するをご覧ください。 - Cloud Armor を使用して外部パススルー ネットワーク ロードバランサの高度なネットワーク DDoS 対策を構成する。高度なネットワーク DDoS 対策を構成するをご覧ください。
- リソースを削除する。ロード バランシングの設定をクリーンアップするをご覧ください。