バックエンド サービスを使用したネットワーク ロードバランサの設定

このガイドでは、リージョン バックエンド サービスを使用して基本的なネットワーク負荷分散のデプロイを作成する手順を説明します。この例では、TCP または UDP トラフィックのいずれかをサポートするネットワーク ロードバランサを作成します。TCP や UDP だけでなく、TCP、UDP、ESP、GRE、ICMP、ICMPv6 のトラフィックを負荷分散するネットワーク ロードバランサを作成する場合は、複数の IP プロトコルを使用するネットワーク ロードバランサの設定をご覧ください。

この例では、ロードバランサを使用して、us-central1 リージョンの 2 つのゾーン マネージド インスタンス グループ内のバックエンド VM に TCP トラフィックを分散させます。同様に有効な方法として、単一のリージョン マネージド インスタンス グループを us-central1 リージョンに使用することもできます。

ゾーン インスタンス グループを使用したネットワーク ロードバランサ
ゾーン マネージド インスタンス グループを使用したネットワーク負荷分散

このシナリオでは、正常に動作しているインスタンスに TCP トラフィックを分散します。この例をサポートするために、TCP ヘルスチェックは、正常なインスタンスにのみトラフィックが送信されるように構成されています。TCP ヘルスチェックは、バックエンド サービスベースのロードバランサでのみサポートされています。ターゲット プールベースのロードバランサは、レガシー HTTP ヘルスチェックのみを使用できます。

この例では、TCP トラフィックのロード バランシングを行いますが、ネットワーク ロード バランシングを使用して UDP、SSL、HTTP(S) のトラフィックをロードバランスできます。

ネットワーク ロードバランサはリージョン ロードバランサです。すべてのロードバランサ コンポーネント(バックエンド VM、バックエンド サービス、転送ルール)は同じリージョン内に存在している必要があります。

準備

Google Cloud CLI をインストールします。ツールの完全な概要については、gcloud CLI の概要をご覧ください。ロード バランシングに関連するコマンドについては、API と gcloud のリファレンス ガイドをご覧ください。

Google Cloud CLI を初めて実行する場合は、最初に gcloud init を実行して認証します。

このガイドは、bash の知識があることを前提としています。

ネットワークとサブネットを設定する

このページの例では、lb-network という名前のカスタムモード VPC ネットワークを使用します。IPv4 トラフィックのみを処理する場合は、自動モード ネットワークを使用できます。ただし、IPv6 トラフィックの場合、カスタムモードのサブネットが必要です

IPv6 トラフィックには、デュアルスタックのサブネット(stack-typeIPv4_IPv6 に設定)も必要です。カスタムモードの VPC ネットワークでデュアルスタック サブネットを作成する場合は、サブネットに IPv6 アクセスタイプを選択します。この例では、サブネットの ipv6-access-type パラメータを EXTERNAL に設定します。つまり、このサブネット上の新しい VM には、外部 IPv4 アドレスと外部 IPv6 アドレスの両方を割り当てることができます。

この例で使用するバックエンド インスタンス グループとロードバランサ コンポーネントは、次のリージョンとサブネットに存在します。

  • リージョン: us-central1
  • サブネット: lb-subnet(プライマリ IPv4 アドレス範囲 10.1.2.0/24)。サブネットで構成する IPv4 アドレス範囲を選択しますが、IPv6 アドレス範囲は自動的に割り当てられます。Google では、固定サイズ(/64)の IPv6 CIDR ブロックを提供しています。

サンプルのネットワークとサブネットを作成する手順は次のとおりです。

Console

IPv4 トラフィックと IPv6 トラフィックの両方をサポートするには、次の手順を実施します。

  1. Google Cloud Console で、[VPC ネットワーク] ページに移動します。
    [VPC ネットワーク] に移動
  2. [VPC ネットワークを作成] をクリックします。
  3. [名前] に「lb-network」を入力します。
  4. [サブネット] セクションで次の設定を行います。
    • [サブネット作成モード] を [カスタム] に設定します。
    • [新しいサブネット] セクションで、次のフィールドを構成します。
      • 名前: lb-subnet
      • リージョン: us-central1
      • IP スタック タイプ: IPv4 および IPv6(デュアル スタック)
      • IPv4 範囲: 10.1.2.0/24
        サブネットの IPv4 アドレス範囲を構成できますが、サブネットの IPv6 アドレスの範囲は選択できません。Google では、固定サイズ(/64)の IPv6 CIDR ブロックを提供しています。
      • IPv6 アクセスタイプ: 外部
      • [完了] をクリックします。
  5. [作成] をクリックします。

IPv4 トラフィックのみをサポートするには、次の手順を実施します。

  1. Google Cloud Console で、[VPC ネットワーク] ページに移動します。
    [VPC ネットワーク] に移動
  2. [VPC ネットワークを作成] をクリックします。
  3. [名前] に「lb-network」を入力します。
  4. [サブネット] セクションで次の設定を行います。
    • [サブネット作成モード] を [カスタム] に設定します。
    • [新しいサブネット] セクションで、次のフィールドを構成します。
      • 名前: lb-subnet
      • リージョン: us-central1
      • IP スタック タイプ: IPv4(シングルスタック)
      • IPv4 範囲: 10.1.2.0/24
      • [完了] をクリックします。
  5. [作成] をクリックします。

gcloud

  1. カスタムモードの VPC ネットワークを作成します。

    gcloud compute networks create lb-network \
        --subnet-mode=custom
    
  2. 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-typeIPv4_IPv6 に設定します。VM は、サブネットから ipv6-access-type 設定(この例では EXTERNAL)も継承します。

ネットワーク ロードバランサのバックエンド VM として参加するインスタンスでは、適切な Linux ゲスト環境Windows ゲスト環境、または同等の機能を提供する他のプロセスが実行されている必要があります。

インスタンスの設定

Cloud コンソール

  1. インスタンス テンプレートを作成します。Cloud Console で [インスタンス テンプレート] ページに移動します。

    [インスタンス テンプレート] に移動

    1. [インスタンス テンプレートを作成] をクリックします。
    2. [名前] に「ig-us-template」と入力します。
    3. [ブートディスク] が Debian GNU/Linux 10 (buster) などの Debian イメージに設定されていることを確認します。以降の手順では、apt-get などの Debian でのみ使用できるコマンドを使用します。
    4. [ネットワーキング、ディスク、セキュリティ、管理、単一テナンシー] をクリックします。
    5. [管理] をクリックして、次のスクリプトを [起動スクリプト] フィールドにコピーします。

      #! /bin/bash
      sudo apt-get update
      sudo apt-get install apache2 -y
      sudo a2ensite default-ssl
      sudo a2enmod ssl
      sudo vm_hostname="$(curl -H "Metadata-Flavor:Google" \
      http://169.254.169.254/computeMetadata/v1/instance/name)"
      sudo echo "Page served from: $vm_hostname" | \
      tee /var/www/html/index.html
      sudo systemctl restart apache2
      
    6. [ネットワーキング] をクリックします。

      1. [ネットワーク タグ] で、network-lb を追加します。
      2. [ネットワーク インターフェース] で [デフォルト] インターフェースをクリックし、次のフィールドを構成します。
        1. ネットワーク: lb-network
        2. サブネットワーク: lb-subnet
    7. [作成] をクリックします。

  2. マネージド インスタンス グループを作成します。Cloud コンソールの [インスタンス グループ] ページに移動します。

    [インスタンス グループ] に移動

    1. [インスタンス グループを作成] をクリックします。
    2. [新しいマネージド インスタンス グループ(ステートレス)] を選択します。詳細については、ステートレス MIG とステートフル MIG をご覧ください。
    3. [名前] に「ig-us-1」と入力します。
    4. [ロケーション] で [シングルゾーン] を選択します。
    5. [リージョン] で us-central1 を選択します。
    6. [ゾーン] で us-central1-a を選択します。
    7. [インスタンス テンプレート] で ig-us-template を選択します。
    8. グループ内に作成するインスタンスの数を指定します。

      この例では、[自動スケーリング] で次のオプションを指定します。

      • [自動スケーリング モード] で [Off:do not autoscale] を選択します。
      • [インスタンスの最大数] に「2」と入力します。
    9. [作成] をクリックします。

  3. 上記の手順を繰り返し、次の仕様で us-central1-c ゾーンに次の 2 つのマネージド インスタンス グループを作成します。

    • 名前: ig-us-2
    • ゾーン: us-central1-c
    • インスタンス テンプレート: 前のセクションで作成したものと同じ ig-us-template テンプレートを使用します。

gcloud

このガイドの gcloud の手順は、Cloud Shell または bash がインストールされた別の環境を使用していることを前提としています。

  1. 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-10 \
    --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://169.254.169.254/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-10 \
    --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://169.254.169.254/computeMetadata/v1/instance/name)"
    echo "Page served from: $vm_hostname" | \
    tee /var/www/html/index.html
    systemctl restart apache2'
    
  2. 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
    
  3. 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 アドレス範囲を使用します。

Console

  1. Google Cloud Console の [ファイアウォール] ページに移動します。
    [ファイアウォール] ページに移動
  2. IPv4 トラフィックを許可するには、次の手順を行います。
  3. [ファイアウォール ルールを作成] をクリックします。
    1. [名前] に「allow-network-lb-ipv4」と入力します。
    2. ファイアウォール ルールを適用するネットワークlb-network)を選択します。
    3. [ターゲット] で [指定されたターゲットタグ] を選択します。
    4. [ターゲットタグ] フィールドに「lb-tag」と入力します。
    5. [ソースフィルタ] で、[IPv4 範囲] を選択します。
    6. [ソース IPv4 の範囲] を 0.0.0.0/0 に設定します。これにより、任意の送信元からの IPv4 トラフィックが許可されます。これにより、Google のヘルスチェック プローブがバックエンド インスタンスに到達することもできます。
    7. [指定したプロトコルとポート] で、[TCP] の隣にあるチェックボックスをクリックして「80」と入力します。
    8. [作成] をクリックします。新しいファイアウォール ルールが Cloud Console に表示されるまで少し時間がかかる場合があります。表示されない場合は、[更新] をクリックしてルールを表示してみてください。
  4. IPv6 トラフィックを許可するには、次の手順を行います。
    1. もう一度 [ファイアウォール ルールを作成] をクリックします。
    2. [名前] に「allow-network-lb-ipv6」と入力します。
    3. ファイアウォール ルールを適用するネットワークlb-network)を選択します。
    4. [ターゲット] で [指定されたターゲットタグ] を選択します。
      1. [ターゲットタグ] フィールドに「lb-tag」と入力します。
      2. [ソースフィルタ] で、[IPv6 範囲] を選択します。
      3. [ソース IPv6 の範囲] を ::/0 に設定します。これにより、任意の送信元からの IPv6 トラフィックが許可されます。これにより、Google のヘルスチェック プローブがバックエンド インスタンスに到達することもできます。
    5. [指定したプロトコルとポート] で、[TCP] の隣にあるチェックボックスをクリックして「80」と入力します。
    6. [作成] をクリックします。新しいファイアウォール ルールがコンソールに表示されるまで少し時間がかかる場合があります。表示されない場合は、[更新] をクリックしてルールを表示してみてください。

gcloud

  1. 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
  1. IPv6 トラフィックを許可するには、次のコマンドを実行します。

    gcloud compute firewall-rules create allow-network-lb-ipv6 \
      --network=lb-network \
      --target-tags=lb-tag \
      --allow=tcp:80 \
      --source-ranges=::/0
    

ロードバランサの構成

次に、ロードバランサを設定します。

ロードバランサを構成すると、構成した静的外部 IP アドレス宛てのパケットが仮想マシン インスタンスに送信されます。Compute Engine で提供されるイメージを使用する場合は、この IP アドレスを処理するようにインスタンスが自動的に構成されます。その他のイメージを使用する場合は、このアドレスを eth0 のエイリアスまたは各インスタンスのループバックとして構成する必要があります。

Console

  1. Google Cloud Console で [ロードバランサの作成] ページに移動します。
    [ロードバランサの作成] ページに移動
  2. [TCP 負荷分散] で [構成を開始] をクリックします。

  3. [インターネット接続または内部専用] で [From Internet to my VMs] を選択します。

  4. [マルチリージョンまたはシングル リージョン] で [シングル リージョンのみ] を選択します。

  5. [バックエンド タイプ] で [バックエンド サービス] を選択します。

  6. [続行] をクリックします。

バックエンドの構成

  1. 新しい TCP ロードバランサの画面で、新しいロードバランサの [名前] に「tcp-network-lb」と入力します。[リージョン] で [us-central1] を選択します。
  2. [バックエンドの構成] をクリックします。前に入力したロードバランサの名前が表示されますが、変更できません。
  3. [バックエンドの構成] 画面で、次の変更を行います。
    1. [バックエンド] で、[インスタンス グループ] プルダウンを使用して [ig-us-1] を選択します。[完了] をクリックします。[バックエンドを追加] をクリックし、この手順を繰り返して ig-us-2 を追加します。
    2. [ヘルスチェック] で、[ヘルスチェックを作成] または [別のヘルスチェックを作成] を選択して、次の情報を入力します。
      • 名前: tcp-health-check
      • プロトコル: TCP
      • ポート: 80
    3. [保存] をクリックします。
  4. 続行する前に、[バックエンドの構成] の隣に青いチェックマークがあることを確認します。

フロントエンドの構成

  1. [フロントエンドの構成] をクリックします。
  2. [名前] に「network-lb-forwarding-rule」と入力します。
  3. [IP] にあるプルダウン メニューをクリックして、[IP アドレスを作成] を選択します。
    1. [新しい静的 IP アドレスの予約] 画面で、名前に「network-lb-ip」と入力します。
    2. [予約] をクリックします。
  4. [単一] を選択して、ポート番号に「80」を入力します。
  5. [完了] ボタンをクリックします。

    [フロントエンドの設定] の左側にある青い丸のチェックマークが表示されていれば、設定に成功しています。

構成を確認する

  1. [確認と確定] ボタンをクリックして、ロードバランサのすべての構成設定を確認します。
  2. 設定が正しい場合は、[作成] をクリックします。ロードバランサの作成には数分かかります。

    [負荷分散] 画面で、新しいロードバランサの [バックエンド] 列に緑色のチェックマークが表示されていれば、新しく作成したロードバランサは正常な状態です。

gcloud

  1. (IPv4 トラフィックのみ)ロードバランサに静的外部 IPv4 アドレスを作成します。

    gcloud compute addresses create network-lb-ipv4 \
        --region us-central1
    

    この例では、IPv6 転送ルールでエフェメラル IP アドレスを使用しています。静的外部 IPv6 アドレスの予約は、まだプレビュー段階です。許可リストに登録されたプロジェクトが必要です。詳細については、外部 IPv6 アドレスの予約をご覧ください。

  2. TCP ヘルスチェックを作成します。

    gcloud compute health-checks create tcp tcp-health-check \
        --region us-central1 \
        --port 80
    
  3. バックエンド サービスを作成します。

    gcloud compute backend-services create network-lb-backend-service \
        --protocol TCP \
        --health-checks tcp-health-check \
        --health-checks-region us-central1 \
        --region us-central1
    
  4. バックエンド サービスに、インスタンス グループを追加します。

    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
    
  5. IPv4 トラフィックと IPv6 トラフィックのどちらを処理するかに応じて、転送ルールを作成します。両方のタイプのトラフィックを処理する両方の転送ルールを作成します。

    1. 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
      
    2. IPv6 トラフィックの場合。 次のコマンドを使用して、エフェメラル IPv6 アドレスを持つ転送ルールを作成します。

      gcloud compute forwarding-rules create network-lb-forwarding-rule-ipv6 \
          --load-balancing-scheme EXTERNAL \
        --region us-central1 \
          --subnet lb-subnet \
          --ip-version IPV6 \
        --ports 80 \
        --backend-service network-lb-backend-service
    

ロードバランサをテストする

負荷分散サービスの構成が完了したので、ロードバランサの外部 IP アドレスにトラフィックの送信を開始できます。また、バックエンド インスタンスに分散されるトラフィックを監視できます。

ロードバランサの外部 IP アドレスを調べる

Console

  1. 負荷分散の [詳細] ページにある [転送ルール] タブに移動します。
    [転送ルール] タブに移動
  2. ロードバランサが使用する転送ルールを探します。
  3. [アドレス] 列に表示された外部 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 に設定)のバックエンド サービスが作成されます。このセクションでは、バックエンド サービスを更新してロードバランサのセッション アフィニティの設定を変更する方法について説明します。

サポートされているセッション アフィニティのタイプについては、セッション アフィニティのオプションをご覧ください。

Console

  1. Google Cloud Console で、[ロード バランシング] ページに移動します。

    [負荷分散] に移動

  2. バックエンド サービスの名前をクリックしてから、[編集] をクリックします。

  3. [TCP ロードバランサの編集] ページで、[バックエンドの構成] をクリックします。

  4. [セッション アフィニティ] プルダウンでオプションを選択します。

  5. [更新] をクリックします。

gcloud

次の gcloud コマンドを使用して、バックエンド サービスのセッション アフィニティを更新します。

gcloud compute backend-services update BACKEND_SERVICE \
    --region=REGION \
    --session-affinity=SESSION_AFFINITY_OPTION

プレースホルダを有効な値に置き換えます。

  • BACKEND_SERVICE: 更新するバックエンド サービス
  • SESSION_AFFINITY_OPTION: 設定するセッション アフィニティ オプション

    ネットワーク ロードバランサでサポートされている値の一覧については、セッション アフィニティのオプションをご覧ください。

接続トラッキング ポリシーを構成する

この構成例では、接続トラッキング ポリシーのデフォルト設定を使用してバックエンド サービスを作成しています。このセクションでは、バックエンド サービスを更新してロードバランサのデフォルトの接続トラッキング ポリシーを変更する方法について説明します。

接続トラッキング ポリシーには次の設定が含まれます。

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 beta compute backend-services 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 beta compute backend-services 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_VIPIP_PROTOCOLPORTS: 作成するステアリング転送ルールの IP アドレス、IP プロトコル、ポート。これらの設定は、既存のベース転送ルールと一致する必要があります。
  • REGION: 作成する転送ルールのリージョン。
  • SOURCE_IP_ADDRESS_RANGES: IP アドレスまたは IP アドレス範囲のカンマ区切りリスト。この転送ルールは、受信パケットの送信元 IP アドレスがここで設定された IP 範囲のいずれかに該当する場合にのみ、トラフィックを転送します。

次のステップ