内部 TCP / UDP 負荷分散の設定

このガイドでは、サンプルを示しながら、Google Cloud の内部 TCP / UDP 負荷分散の基礎について解説します。このガイドに進む前に、次の内容を理解しておいてください。

権限

このガイドを使用する前に、インスタンスを作成し、プロジェクト内のネットワークを変更しておく必要があります。そのためにはプロジェクトの所有者または編集者であるか、または次の Compute Engine IAM の役割をすべて持っている必要があります。

タスク 必要な役割
ネットワーク、サブネット、負荷分散コンポーネントの作成 ネットワーク管理者
ファイアウォール ルールの追加と削除 セキュリティ管理者
インスタンスの作成 インスタンス管理者

詳細については、次のガイドをご覧ください。

設定

このガイドでは、内部 TCP / UDP ロードバランサの構成とテストの方法を説明します。このセクションでは、以下の構成方法について説明します。

  1. カスタム サブネットを持つ VPC ネットワークのサンプル
  2. バックエンド VM への受信接続を許可するファイアウォール ルール
  3. 4 つのバックエンド VM :
    • ゾーン us-west1-a の非マネージド インスタンス グループ内の 2 つの VM
    • ゾーン us-west1-c の非マネージド インスタンス グループ内の 2 つの VM
  4. 接続のテストに使用する 1 台のクライアント VM
  5. 次の内部 TCP / UDP ロードバランサ コンポーネント:
    • バックエンド サービスのヘルスチェック
    • us-west1 リージョンの内部バックエンド サービス。2 つのゾーン インスタンス グループへの接続分散を管理します。
    • ロードバランサのフロントエンドの内部転送ルールと内部 IP アドレス

この例のアーキテクチャは次のようになります。

内部 TCP / UDP 負荷分散の構成例(クリックして拡大)
内部 TCP / UDP 負荷分散の構成例(クリックして拡大)

ネットワーク、リージョン、サブネットの構成

少なくとも 1 つのサブネットを持つ VPC ネットワークが必要です。内部 TCP / UDP ロードバランサはリージョンで動作します。VPC ネットワーク内のトラフィックは、そのソースがロードバランサと同じリージョンのサブネットからのものである場合に、ロードバランサにルーティングされます。

この例では、次の VPC ネットワーク、リージョン、サブネットを使用します。

  • ネットワーク: ネットワークは、lb-network という名前のカスタムモードの VPC ネットワークです。

  • リージョン: リージョンは、us-west1 です。

  • サブネット: サブネット lb-subnet は、10.1.2.0/24 の IP 範囲です。

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

Console

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

gcloud

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

        gcloud compute networks create lb-network --subnet-mode=custom
        
  2. サブネットを us-west1 リージョン内の lb-network ネットワークに作成します。

        gcloud compute networks subnets create lb-subnet \
            --network=lb-network \
            --range=10.1.2.0/24 \
            --region=us-west1
        

api

networks.insert メソッドに POST リクエストを送信します。

POST https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/global/networks
    {
      "routingConfig": {
        "routingMode": "REGIONAL"
      },
      "name": "lb-network",
      "autoCreateSubnetworks": false
    }
    

subnetworks.insert メソッドに POST リクエストを送信します。

POST https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/regions/us-west1/subnetworks
    {
      "name": "lb-subnet",
      "network": "https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/global/networks/lb-network",
      "ipCidrRange": "10.1.2.0/24",
      "privateIpGoogleAccess": false
    }
    

ファイアウォール ルールの構成

この例では、次のファイアウォール ルールを使用します。

  • fw-allow-lb-subnet: VPC ネットワーク内のすべてのターゲットに適用される上り(内向き)ルールで、10.1.2.0/24 の範囲の送信元からのトラフィックを許可します。このルールを使用すると、lb-subnet 内の送信元から負荷分散されているインスタンス(VM)への受信トラフィックが許可されます。

  • fw-allow-ssh: 負荷分散されたインスタンスに適用される内向きルール。任意のアドレスから TCP ポート 22 への SSH 接続が許可されます。このルールには、送信元 IP 範囲をより限定的に指定できます。たとえば、SSH セッションを開始するシステムの IP 範囲のみを許可するように指定できます。この例では、ターゲットタグ allow-ssh を使用して、適用する VM を識別させています。

  • fw-allow-health-check: 負荷分散されているインスタンスに適用される上り(内向き)ルール。Google Cloud ヘルスチェック システム(130.211.0.0/2235.191.0.0/16) からのトラフィックを許可します。この例では、ターゲットタグ allow-health-check を使用して、適用するインスタンスが識別されます。

これらのファイアウォール ルールがない場合は、デフォルトの上り(内向き)拒否ルールによってバックエンド インスタンスへの受信トラフィックがブロックされます。

Console

  1. Google Cloud Console の [ファイアウォール ルール] ページに移動します。
    [ファイアウォール ルール] ページに移動
  2. [ファイアウォール ルールを作成] をクリックして次の情報を入力し、サブネット トラフィックを許可するルールを作成します。
    • 名前: fw-allow-lb-subnet
    • ネットワーク: lb-network
    • 優先度: 1000
    • トラフィックの方向: 上り
    • 一致したときのアクション: 許可
    • ターゲット: ネットワーク内のすべてのインスタンス
    • ソースフィルタ: IP ranges
    • ソース IP の範囲: 10.1.2.0/24
    • プロトコルとポート: すべて許可
  3. [作成] をクリックします。
  4. [ファイアウォール ルールを作成] を再度クリックして、SSH 接続の受信を許可するルールを作成します。
    • 名前: fw-allow-ssh
    • ネットワーク: lb-network
    • 優先度: 1000
    • トラフィックの方向: 上り
    • 一致したときのアクション: 許可
    • ターゲット: 指定されたターゲットタグ
    • ターゲットタグ: allow-ssh
    • ソースフィルタ: IP ranges
    • ソース IP の範囲: 0.0.0.0/0
    • プロトコルとポート: 指定されたプロトコルとポートを選択してから、次のように入力します。tcp:22
  5. [作成] をクリックします。
  6. [ファイアウォール ルールを作成] をもう一度クリックして、Google Cloud ヘルスチェックを許可するルールを作成します。
    • 名前: fw-allow-health-check
    • ネットワーク: lb-network
    • 優先度: 1000
    • トラフィックの方向: 上り
    • 一致したときのアクション: 許可
    • ターゲット: 指定されたターゲットタグ
    • ターゲットタグ: allow-health-check
    • ソースフィルタ: IP ranges
    • 送信元 IP 範囲: 130.211.0.0/2235.191.0.0/16
    • プロトコルとポート: すべて許可
  7. [作成] をクリックします。

gcloud

  1. fw-allow-lb-subnet ファイアウォール ルールを作成して、サブネットとの通信を許可します。

        gcloud compute firewall-rules create fw-allow-lb-subnet \
            --network=lb-network \
            --action=allow \
            --direction=ingress \
            --source-ranges=10.1.2.0/24 \
            --rules=tcp,udp,icmp
        
  2. ネットワーク タグ allow-ssh を使用して、VM との SSH 接続を許可する fw-allow-ssh ファイアウォール ルールを作成します。source-ranges を省略すると、Google Cloud は任意の送信元としてルールを解釈します。

        gcloud compute firewall-rules create fw-allow-ssh \
            --network=lb-network \
            --action=allow \
            --direction=ingress \
            --target-tags=allow-ssh \
            --rules=tcp:22
        
  3. fw-allow-health-check ルールを作成して Google Cloud ヘルスチェックを許可します。

        gcloud compute firewall-rules create fw-allow-health-check \
            --network=lb-network \
            --action=allow \
            --direction=ingress \
            --target-tags=allow-health-check \
            --source-ranges=130.211.0.0/22,35.191.0.0/16 \
            --rules=tcp,udp,icmp
        

api

firewalls.insertメソッドに POST リクエストを送信して、fw-allow-lb-subnet ファイアウォール ルールを作成します。

POST https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/global/firewalls
    {
      "name": "fw-allow-lb-subnet",
      "network": "https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/global/networks/lb-network",
      "priority": 1000,
      "sourceRanges": [
        "10.1.2.0/24"
      ],
      "allowed": [
        {
          "IPProtocol": "tcp"
        },
        {
          "IPProtocol": "udp"
        },
        {
          "IPProtocol": "icmp"
        }
      ],
      "direction": "INGRESS",
      "logConfig": {
        "enable": false
      },
      "disabled": false
    }
    

firewalls.insertメソッドに POST リクエストを送信して、fw-allow-ssh ファイアウォール ルールを作成します。

POST https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/global/firewalls
    {
      "name": "fw-allow-ssh",
      "network": "https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/global/networks/lb-network",
      "priority": 1000,
      "sourceRanges": [
        "0.0.0.0/0"
      ],
      "targetTags": [
        "allow-ssh"
      ],
      "allowed": [
       {
         "IPProtocol": "tcp",
         "ports": [
           "22"
         ]
       }
      ],
     "direction": "INGRESS",
     "logConfig": {
       "enable": false
     },
     "disabled": false
    }
    

firewalls.insertメソッドに POST リクエストを送信して、fw-allow-health-check ファイアウォール ルールを作成します。

POST https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/global/firewalls
    {
      "name": "fw-allow-health-check",
      "network": "https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/global/networks/lb-network",
      "priority": 1000,
      "sourceRanges": [
        "130.211.0.0/22",
        "35.191.0.0/16"
      ],
      "targetTags": [
        "allow-health-check"
      ],
      "allowed": [
        {
          "IPProtocol": "tcp"
        },
        {
          "IPProtocol": "udp"
        },
        {
          "IPProtocol": "icmp"
        }
      ],
      "direction": "INGRESS",
      "logConfig": {
        "enable": false
      },
      "disabled": false
    }
    

バックエンド VM とインスタンス グループの作成

この例では、2 つのバックエンド(サーバー)VM を持つ 2 つの非マネージド インスタンスを使用しています。内部 TCP / UDP 負荷分散のリージョン特性を示すために、2 つのインスタンス グループが別々のゾーン(us-west1-aus-west1-c)に配置されています。

  • インスタンス グループ ig-a には、次の 2 つの VM が含まれています。
    • vm-a1
    • vm-a2
  • インスタンス グループ ig-c には、次の 2 つの VM が含まれています。
    • vm-c1
    • vm-c2

4 つのバックエンド VM へのトラフィックがすべて負荷分散されます。4 つはそれぞれ TCP ポート 80 と 443 で Apache ウェブサーバーを実行します。lb-subnet の内部 IP アドレスと外部(公開)エフェメラル IP アドレスがそれぞれ割り当てられます。外部 IP アドレスは後で削除できます。

バックエンド VM がインターネットから Apache をダウンロードできる、および SSH 経由で接続しやすいという理由からこの例では使用していますが、バックエンド VM の外部 IP アドレスは必須ではありません。

デフォルトでは、Apache は任意の IP アドレスにバインドされます。内部 TCP / UDP ロードバランサは、宛先 IP を保持してパケットを配信します。バックエンド VM で実行中のサーバー ソフトウェアが、ロードバランサの内部転送ルールの IP アドレスをリッスンしていることを確認してください。複数の内部転送ルールを構成している場合、ソフトウェアによってそれぞれに関連付けられた内部 IP アドレスがリッスンされます。内部 TCP / UDP ロードバランサによってバックエンド VM に配信されるパケットの宛先 IP アドレスは、転送ルールの内部 IP アドレスです。

これらのバックエンド VM では、説明を簡単にするため、Debian GNU/Linux 9 を実行します。

Console

バックエンド VM の作成

  1. Google Cloud Console の [VM インスタンス] ページに移動します。
    [VM インスタンス] ページに移動
  2. 次の手順を繰り返し、4 つの VM を作成します。次のような名前とゾーンの組み合わせを使用します。
    • 名前: vm-a1、ゾーン: us-west1-a
    • 名前: vm-a2、ゾーン: us-west1-a
    • 名前: vm-c1、ゾーン: us-west1-c
    • 名前: vm-c2、ゾーン: us-west1-c
  3. [インスタンスを作成] をクリックします。
  4. ステップ 2 に示したように [名前] を設定します。
  5. [リージョン] には、us-west1 を選択し、手順 2 に示したゾーンを選択します。
  6. [ブートディスク] セクションで、ブートディスク オプションに Debian オペレーティング システムと 9 Stretch バージョンが選択されていることを確認します。必要に応じてイメージを変更するには、[選択] をクリックします。
  7. [管理、セキュリティ、ディスク、ネットワーク、単一テナンシー] をクリックして、次のように変更します。

    • [ネットワーク] をクリックして、ネットワーク タグ allow-sshallow-health-check を追加します。
    • [ネットワーク インターフェース] にある編集ボタンをクリックして、次の変更を行い、[完了] をクリックします。
      • ネットワーク: lb-network
      • サブネット: lb-subnet
      • プライマリ内部 IP: エフェメラル(自動)
      • 外部 IP: エフェメラル
    • [管理] をクリックします。[起動スクリプト] フィールドに、次のスクリプトの内容をコピーして貼り付けます。スクリプトの内容は 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://169.254.169.254/computeMetadata/v1/instance/name)"
          echo "Page served from: $vm_hostname" | \
          tee /var/www/html/index.html
          systemctl restart apache2
          
  8. [作成] をクリックします。

インスタンス·グループの作成

  1. Google Cloud Console の [インスタンス グループ] ページに移動します。
    [インスタンス グループ] ページに移動
  2. 次の手順を繰り返し、それぞれが 2 つの VM を持つ 2 つの非マネージド インスタンス グループを作成します。以下のような組み合わせを使用します。
    • インスタンス グループ: ig-a、ゾーン: us-west1-a、VM: vm-a1vm-a2
    • インスタンス グループ: ig-c、ゾーン: us-west1-c、VM: vm-c1vm-c2
  3. [インスタンス グループを作成] をクリックします。
  4. ステップ 2 に示したように [名前] を設定します。
  5. [ロケーション] セクションで、[シングルゾーン] を選択して、[リージョン] には us-west1 を選択し、手順 2 に示したゾーンを選択します。
  6. [グループタイプ] セクションで [非マネージド インスタンス グループ] を選択します。
  7. [ネットワーク] に「lb-network」と入力します。
  8. [サブネットワーク] に「lb-subnet」と入力します。
  9. [VM インスタンス] セクションに、ステップ 2 で示した VM を追加します。
  10. [作成] をクリックします。

gcloud

  1. [VM-NAME][ZONE] の 4 つの組み合わせを使用して、次のコマンドを 4 回実行して 4 つの VM を作成します。スクリプトの内容は 4 つの VM ですべて同じです。

    • vm-a1[VM-NAME]us-west1-a[ZONE]
    • vm-a2[VM-NAME]us-west1-a[ZONE]
    • vm-c1[VM-NAME]us-west1-c[ZONE]
    • vm-c2[VM-NAME]us-west1-c[ZONE]
        gcloud compute instances create [VM-NAME] \
            --zone=[ZONE] \
            --image-family=debian-9 \
            --image-project=debian-cloud \
            --tags=allow-ssh,allow-health-check \
            --subnet=lb-subnet \
            --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. 各ゾーンに次の 2 つの非マネージド インスタンス グループを作成します。

        gcloud compute instance-groups unmanaged create ig-a \
            --zone=us-west1-a
        gcloud compute instance-groups unmanaged create ig-c \
            --zone=us-west1-c
        
  3. 適切なインスタンス グループに VM を追加します。

        gcloud compute instance-groups unmanaged add-instances ig-a \
            --zone=us-west1-a \
            --instances=vm-a1,vm-a2
        gcloud compute instance-groups unmanaged add-instances ig-c \
            --zone=us-west1-c \
            --instances=vm-c1,vm-c2
        

api

4 つの VM の場合は、次の VM 名とゾーンを使用します。

  • vm-a1[VM-NAME]us-west1-a[ZONE]
  • vm-a2[VM-NAME]us-west1-a[ZONE]
  • vm-c1[VM-NAME]us-west1-c[ZONE]
  • vm-c2[VM-NAME]us-west1-c[ZONE]

4 つのバックエンド VM を作成するには、instances.insert メソッドに 4 つの POST リクエストを送信します。

POST https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instances
    {
      "name": "[VM-NAME]",
      "tags": {
        "items": [
          "allow-health-check",
          "allow-ssh"
        ]
      },
      "machineType": "https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/machineTypes/n1-standard-1",
      "canIpForward": false,
      "networkInterfaces": [
        {
          "network": "https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/global/networks/lb-network",
          "subnetwork": "https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/regions/us-west1/subnetworks/lb-subnet",
          "accessConfigs": [
            {
              "type": "ONE_TO_ONE_NAT",
              "name": "external-nat",
              "networkTier": "PREMIUM"
            }
          ]
        }
      ],
      "disks": [
        {
          "type": "PERSISTENT",
          "boot": true,
          "mode": "READ_WRITE",
          "autoDelete": true,
          "deviceName": "[VM-NAME]",
          "initializeParams": {
            "sourceImage": "projects/debian-cloud/global/images/debian-9-stretch-v20190618",
            "diskType": "projects/[PROJECT_ID]/zones/us-west1-a/diskTypes/pd-standard",
            "diskSizeGb": "10"
          }
        }
      ]
      "metadata": {
        "items": [
          {
            "key": "startup-script",
            "value": "#! /bin/bash\napt-get update\napt-get install apache2 -y\na2ensite default-ssl\na2enmod ssl\nvm_hostname=\"$(curl -H \"Metadata-Flavor:Google\" \\\nhttp://169.254.169.254/computeMetadata/v1/instance/name)\"\necho \"Page served from: $vm_hostname\" | \\\ntee /var/www/html/index.html\nsystemctl restart apache2"
          }
        ]
      },
      "scheduling": {
        "preemptible": false
      },
      "deletionProtection": false
    }
    

instanceGroups.insert メソッドに POST リクエストを送信して、2 つのインスタンス グループを作成します。

POST https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/us-west1-a/instanceGroups
    {
      "name": "ig-a",
      "network": "https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/global/networks/lb-network",
      "subnetwork": "https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/regions/us-west1/subnetworks/lb-subnet"
    }

    POST https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/us-west1-c/instanceGroups
    {
      "name": "ig-c",
      "network": "https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/global/networks/lb-network",
      "subnetwork": "https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/regions/us-west1/subnetworks/lb-subnet"
    }
    

instanceGroups.addInstances メソッドに POST リクエストを送信して、各インスタンス グループにインスタンスを追加します。

POST https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/us-west1-a/instanceGroups/ig-a/addInstances
    {
      "instances": [
        {
          "instance": "https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/us-west1-a/instances/vm-a1",
          "instance": "https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/us-west1-a/instances/vm-a2"
        }
      ]
    }

    POST https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/us-west1-c/instanceGroups/ig-c/addInstances
    {
      "instances": [
        {
          "instance": "https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/us-west1-c/instances/vm-c1",
          "instance": "https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/us-west1-c/instances/vm-c2"
        }
      ]
    }
    

クライアント VM の作成

この例では、クライアント VM(vm-client)を、バックエンド(サーバー)VM と同じリージョンに作成します。クライアントは、ロードバランサの構成を検証し、テストセクションで説明されている想定される動作を示すために使用します。

Console

  1. Google Cloud Console の [VM インスタンス] ページに移動します。
    [VM インスタンス] ページに移動
  2. [インスタンスを作成] をクリックします。
  3. [名前] を vm-client に設定します。
  4. [ゾーン] を us-west1-a に設定します。
  5. [管理、セキュリティ、ディスク、ネットワーク、単一テナンシー] をクリックして、次のように変更します。
    • [ネットワーキング] をクリックして allow-sshネットワーク タグに追加します。
    • [ネットワーク インターフェース] にある編集ボタンをクリックして、次の変更を行い、[完了] をクリックします。
      • ネットワーク: lb-network
      • サブネット: lb-subnet
      • プライマリ内部 IP: エフェメラル(自動)
      • 外部 IP: エフェメラル
  6. [作成] をクリックします。

gcloud

クライアント VM はロードバランサと同じリージョン内の任意のゾーンにあり、そのリージョン内の任意のサブネットを使用できます。この例では、クライアントは us-west1-a ゾーンにあり、バックエンド VM と同じサブネットを使用しています。

    gcloud compute instances create vm-client \
        --zone=us-west1-a \
        --image-family=debian-9 \
        --image-project=debian-cloud \
        --tags=allow-ssh \
        --subnet=lb-subnet
    

api

instances.insert メソッドに POST リクエストを送信します。

POST https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/us-west1-a/instances
    {
      "name": "vm-client",
      "tags": {
        "items": [
          "allow-ssh"
        ]
      },
      "machineType": "https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/us-west1-a/machineTypes/n1-standard-1",
      "canIpForward": false,
      "networkInterfaces": [
        {
          "network": "https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/global/networks/lb-network",
          "subnetwork": "https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/regions/us-west1/subnetworks/lb-subnet",
          "accessConfigs": [
            {
              "type": "ONE_TO_ONE_NAT",
              "name": "external-nat",
              "networkTier": "PREMIUM"
            }
          ]
        }
      ],
      "disks": [
        {
          "type": "PERSISTENT",
          "boot": true,
          "mode": "READ_WRITE",
          "autoDelete": true,
          "deviceName": "[VM-NAME]",
          "initializeParams": {
            "sourceImage": "projects/debian-cloud/global/images/debian-9-stretch-v20190618",
            "diskType": "projects/[PROJECT_ID]/zones/us-west1-a/diskTypes/pd-standard",
            "diskSizeGb": "10"
          }
        }
      ]
      "scheduling": {
        "preemptible": false
      },
      "deletionProtection": false
    }
    

ロードバランサのコンポーネントを構成する

この手順では、ヘルスチェックとバックエンド サービス、フロントエンド コンポーネントなどの内部 TCP / UDP ロードバランサ コンポーネントを構成します。

  • ヘルスチェック: この例では、HTTP ヘルスチェックで HTTP 200(OK)レスポンスを確認します。詳細については、内部 TCP / UDP 負荷分散の概要のヘルスチェックのセクションをご覧ください。

  • バックエンド サービス: HTTP トラフィックが内部ロードバランサに渡されるため、UDP ではなく TCP を指定します。

  • 転送ルール: この例では、内部転送ルールを 1 つ作成します。

  • 内部 IP アドレス: この例では、転送ルールを作成する際に内部 IP アドレス(10.1.2.99)を指定しています。

Console

ロードバランサの作成とバックエンド サービスの構成

  1. Google Cloud Console で [負荷分散] ページに移動します。
    [負荷分散] ページに移動
  2. [ロードバランサを作成] をクリックします。
  3. [TCP 負荷分散] で [構成を開始] をクリックします。
  4. [インターネット接続または内部専用] で [VM 間のみ] を選択します。
  5. [続行] をクリックします。
  6. [名前] を be-ilb に設定します。
  7. [バックエンドの構成] をクリックして、次の変更を行います。
    1. リージョン: us-west1
    2. ネットワーク: lb-network
    3. [バックエンド] の [新しいアイテム] セクションで、ig-a インスタンス グループを選択し、[完了] をクリックします。
    4. [バックエンドを追加] をクリックします。[新しいアイテム] セクションが表示されたら、ig-c インスタンス グループを選択して、[完了] をもう一度クリックします。
    5. [ヘルスチェック] で [別のヘルスチェックを作成] を選択し、次の情報を入力して [保存して次へ] をクリックします。
      • 名前: hc-http-80
      • プロトコル: HTTP
      • ポート: 80
      • プロキシ プロトコル: NONE
      • リクエストパス: /
    6. 続行する前に、[バックエンドの構成] の隣に青いチェックマークがあることを確認します。ない場合は、この手順を確認します。
  8. [フロントエンドの構成] をクリックします。[新しいフロントエンドの IP とポート] セクションで、次の変更を行います。
    1. 名前: fr-ilb
    2. サブネットワーク: lb-subnet
    3. [内部 IP] から、[静的内部 IP アドレスの予約] を選択し、次の情報を入力して [予約] をクリックします。
      • 名前: ip-ilb
      • 静的 IP アドレス: 選択を許可
      • カスタム IP アドレス: 10.1.2.99
    4. ポート: [単一] を選択して、ポート番号80 と入力します。
    5. 続行する前に、[フロントエンドの構成] の隣に青いチェックマークがあることを確認します。ない場合は、この手順を確認します。
  9. [確認と完了] をクリックします。設定を再度確認します。
  10. [作成] をクリックします。

gcloud

  1. 新しい HTTP ヘルスチェックを作成して、ポート 80 で VM との TCP 接続をテストします。

        gcloud compute health-checks create http hc-http-80 \
            --port=80
        
  2. HTTP トラフィックのバックエンド サービスを作成します。

        gcloud compute backend-services create be-ilb \
            --load-balancing-scheme=internal \
            --protocol=tcp \
            --region=us-west1 \
            --health-checks=hc-http-80
        
  3. バックエンド サービスに、2 つのインスタンス グループを追加します。

        gcloud compute backend-services add-backend be-ilb \
            --region=us-west1 \
            --instance-group=ig-a \
            --instance-group-zone=us-west1-a
        gcloud compute backend-services add-backend be-ilb \
            --region=us-west1 \
            --instance-group=ig-c \
            --instance-group-zone=us-west1-c
        
  4. バックエンド サービスの転送ルールを作成します。転送ルールを作成するときは、サブネット内の内部 IP アドレスに 10.1.2.99 を指定します。

        gcloud compute forwarding-rules create fr-ilb \
            --region=us-west1 \
            --load-balancing-scheme=internal \
            --network=lb-network \
            --subnet=lb-subnet \
            --address=10.1.2.99 \
            --ip-protocol=TCP \
            --ports=80 \
            --backend-service=be-ilb \
            --backend-service-region=us-west1
        

api

healthChecks.insert メソッドに POST リクエストを送信してヘルスチェックを作成します。

POST https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/global/healthChecks
    {
      "name": "hc-http-80",
      "type": "HTTP",
      "httpHealthCheck": {
        "port": 80
      }
    }
    

regionBackendServices.insert メソッドに POST リクエストを送信してリージョン バックエンド サービスを作成します。

POST https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/regions/us-west1/backendServices
    {
      "name": "be-ilb",
      "backends": [
        {
          "group": "https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/us-west1-a/instanceGroups/ig-a",
          "balancingMode": "CONNECTION"
        }
        {
          "group": "https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/us-west1-c/instanceGroups/ig-c",
          "balancingMode": "CONNECTION"
        }
      ],
      "healthChecks": [
        "https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/global/healthChecks/hc-http-80"
      ],
      "loadBalancingScheme": "INTERNAL",
      "connectionDraining": {
        "drainingTimeoutSec": 0
      }
    }
    

forwardingRules.insertメソッドに POST リクエストを送信して転送ルールを作成します。

POST https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/regions/us-west1/forwardingRules
    {
      "name": "fr-ilb",
      "IPAddress": "10.1.2.99",
      "IPProtocol": "TCP",
      "ports": [
        "80"
      ],
      "loadBalancingScheme": "INTERNAL",
      "subnetwork": "https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/regions/us-west1/subnetworks/lb-subnet",
      "network": "https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/global/networks/lb-network",
      "backendService": "https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/regions/us-west1/backendServices/be-ilb",
      "networkTier": "PREMIUM"
    }
    

テスト

これらのテストでは、ロードバランサの構成を検証し、想定される動作を確認する方法を示します。

負荷分散のテスト

このテストでは、ロードバランサのバックエンド VM からではなく、個別のクライアント VM からロードバランサに接続します。セッション アフィニティが構成されていないため、トラフィックは 4 つのバックエンド VM に分散されます。

  1. クライアント VM インスタンスに接続します。

        gcloud compute ssh vm-client --zone=us-west1-a
        
  2. curl を使用して IP アドレスに接続するロードバランサへのウェブ リクエストを作成します。レスポンスが異なるバックエンド VM から返ってくることを確認するために、このリクエストを繰り返します。レスポンスを生成する VM の名前が、各バックエンド VM 上で、/var/www/html/index.html のコンテンツによる HTML レスポンスのテキストとして表示されます。想定されるレスポンスは、Page served from: vm-a1Page served from: vm-a2 などです。

        curl http://10.1.2.99
        
    • 内部転送ルールにサービスラベルを追加すると、内部 DNS サービス名を使用してロードバランサに接続できます。

          curl http://web-test.fr-ilb.il4.us-west1.lb.[PROJECT_ID].internal
          

ロードバランサの IP アドレスに対する ping の実行

このテストでは、ロードバランサの IP アドレスに対して ping を実行することはできません。このテストではこの想定される動作が示されます。これは、内部 TCP / UDP ロードバランサが、別々のデバイスではなく、仮想ネットワーク プログラミングで実装されているためです。

  1. クライアント VM インスタンスに接続します。

        gcloud compute ssh vm-client --zone=us-west1-a
        
  2. ロードバランサの IP アドレスに対して ping を試行します。レスポンスが返されず、ping コマンドがこの例では 10 秒後にタイムアウトすることに注意してください。

        timeout 10 ping 10.1.2.99
        

負荷分散された VM からのリクエストの送信

このテストでは、負荷分散されているサーバー VM のバックエンド VM からのロードバランサへのリクエストが、常に同じ VM によって応答されることが示されます。

内部 TCP / UDP 負荷分散は、ゲスト OS の仮想ネットワーク プログラミングと VM 構成を使用して実装されます。Linux VM では、Linux ゲスト環境によってゲスト OS ルーティング テーブルにルートをインストールしてローカル構成が実行されます。ローカルルートのため、ロードバランサの IP アドレスへのトラフィックは、負荷分散された VM 自体に残ります(このローカルルートは VPC ネットワークのルートとは異なるルートです)。

  1. バックエンド VM に接続します(たとえば、vm-a1)。

        gcloud compute ssh vm-a1 --zone=us-west1-a
        
  2. IP アドレスまたはサービス名を指定し curl を使用して、ロードバランサにウェブ リクエストを送信します。リクエストを繰り返します。その際、リクエストを処理するバックエンド VM からレスポンスが送信されることに注意してください。vm-a1 からテストするときに想定されるレスポンスは常に次のとおりです。 Page served from: vm-a1

        curl http://10.1.2.99
        
  3. ローカルのルーティング テーブルを調べて、ロードバランサ自体の IP アドレス(10.1.2.99)に一致する宛先を探します。このルートは内部 TCP / UDP 負荷分散に必須の部分です。これにより、ロードバランサの背後にある VM からのリクエストが常に同じ VM によって応答される理由がわかります。

        ip route show table local | grep 10.1.2.99
        

追加の構成オプション

このセクションでは、代替および追加の構成オプションを提供する構成例を示します。これらのタスクはすべて省略可です。これらは任意の順序で実行できます。

グローバル アクセスの有効化

グローバル アクセスを有効にすると、任意のリージョンのクライアント VM インスタンスが内部 TCP / UDP ロードバランサにアクセスできるようになります。

次の例では、europe-west1 リージョンのクライアント VM が、us-west1 リージョンの内部 TCP / UDP ロードバランサにアクセスします。

グローバル アクセスを構成した内部 TCP / UDP 負荷分散(クリックして拡大)
グローバル アクセスを構成した内部 TCP / UDP 負荷分散(クリックして拡大)

デフォルトでは、VPC ネットワークの送信元のクライアント VM は、内部転送ルールの IP アドレスと関連のバックエンドと同じリージョンに存在する必要があります。このデフォルトの動作を変更するには、グローバル アクセスを有効にします。これにより、任意のリージョンのクライアントがロードバランサのバックエンドにアクセスできるようになります。バックエンド インスタンスはすべてロードバランサと同じ単一リージョンに存在する必要があります。

グローバル アクセスを有効にして、VPC ネットワーク ピアリングで接続している VPC ネットワークから内部 TCP / UDP ロードバランサにアクセスすることで、デプロイメントを拡張できます。詳細については、内部負荷分散と接続ネットワークをご覧ください。

グローバル アクセスを構成するには、次の変更を行います。

Console

ロードバランサの転送ルールを編集する

  1. Google Cloud Console で [負荷分散] ページに移動します。
    [負荷分散] ページに移動
  2. [名前] 列で、内部 TCP / UDP ロードバランサをクリックします。
  3. [編集] をクリックします。
  4. [フロントエンドの構成] をクリックします。
  5. 鉛筆のアイコンをクリックします。
  6. [グローバル アクセス] で [有効] を選択します。
  7. [完了] をクリックします。
  8. [更新] をクリックします。

[ロードバランサの詳細] ページで、フロントエンドの構成がリージョン region で、グローバル アクセスが有効になっていることを確認します。

gcloud

  1. 既存の転送ルール fr-ilb を更新し、--allow-global-access フラグを追加します。

        gcloud compute forwarding-rules update fr-ilb \
           --allow-global-access
        
  2. 転送ルールでグローバル アクセスが許可されていることを確認します。

        gcloud compute forwarding-rules describe fr-ilb
        

    出力は次のようになります。allowGlobalAccess: true

  3. ロードバランサとは別のリージョンにクライアント VM を作成します。この例では、クライアントは europe-west1 リージョンにあります。

        gcloud compute instances create vm-client2 \
           --zone=europe-west1-a \
           --image-family=debian-9 \
           --image-project=debian-cloud \
           --tags=allow-ssh \
           --subnet=lb-subnet
        
  4. クライアント VM インスタンスに接続して、接続をテストします。

        gcloud compute ssh vm-client2 --zone=europe-west1-a
        
        curl http://10.1.2.99
        

api

forwardingRules/patch メソッドに PATCH リクエストを送信します。

PATCH https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/regions/us-west1/forwardingRules/fr-ilb
    {
      "allowGlobalAccess": true
    }
    

マネージド インスタンス グループの構成

この構成例では、非マネージド インスタンス グループが作成されています。内部 TCP / UDP 負荷分散のバックエンドとして、マネージド インスタンス グループ(ゾーンまたはリージョンのマネージド インスタンス グループなど)を使用できます。

マネージド インスタンス グループを使用するには、インスタンス テンプレートを作成する必要があります。この例では、ゾーンの 2 つの非マネージド インスタンス グループを 1 つのリージョン マネージド インスタンス グループに置き換える方法を示しています。リージョンのマネージド インスタンス グループは、複数のゾーンに VM を自動的に作成し、ゾーン間で本番環境トラフィックを分散するのが容易になります。

マネージド インスタンス グループは、自動スケーリング自動修復をサポートします。内部 TCP / UDP 負荷分散で自動スケーリングを使用する場合、負荷分散に基づいてスケーリングすることはできません。

この手順では、内部 TCP / UDP ロードバランサのバックエンド サービスを、リージョンのマネージド インスタンス グループを使用して変更する方法を示します。

Console

インスタンス テンプレート

  1. Google Cloud Console で VM インスタンスのテンプレート ページに移動します。
    VM インスタンス テンプレート ページに移動
  2. [インスタンス テンプレートを作成] をクリックします。
  3. [名前] を template-vm-ilb に設定します。
  4. マシンタイプを選択します。
  5. [ブートディスク] で、[変更] をクリックして、オペレーティングシステムに Debian を選択し、バージョンに 9 Stretch を選択します。
  6. [保存] をクリックして、このブートディスクのオプションを保存します。
  7. [管理、セキュリティ、ディスク、ネットワーク、単一テナンシー] をクリックします。
    • [ネットワーキング] をクリックして、次の変更を行います。
      • ネットワーク: lb-network
      • サブネット: lb-subnet
      • ネットワーク タグ: allow-sshallow-health-check
    • [管理] をクリックします。[起動スクリプト] フィールドに、次のスクリプトの内容をコピーして貼り付けます。
      #! /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
  8. [作成] をクリックします。

マネージド インスタンス グループ

  1. Google Cloud Console で VM インスタンス グループのページに移動します。
    VM インスタンス グループのページに移動
  2. [インスタンス グループを作成] をクリックします。
  3. [名前] を ig-ilb に設定します。
  4. [ロケーション] で [マルチゾーン] を選択し、[リージョン] を us-west1 に設定します。
  5. [インスタンス テンプレート] を template-vm-ilb に設定します。
  6. (省略可)自動スケーリングを構成します。インスタンス グループは内部 TCP / UDP 負荷分散のバックエンドであるため、HTTP 負荷分散の使用に基づいたインスタンス グループの自動スケーリングはできません。
  7. [インスタンスの最小数] を 1、[インスタンスの最大数] を 6 にそれぞれ設定します。
  8. (省略可)自動修復を構成します。自動修復を構成する場合、内部 TCP / UDP ロードバランサのバックエンド サービスで使用されるのと同じヘルスチェックを使用します。この例では、hc-http-80 を使用します。
  9. [作成] をクリックします。

gcloud

  1. インスタンス テンプレートを作成します。必要に応じて、その他のパラメータを設定します。たとえば、イメージ テンプレートには、マシンタイプを設定します。

        gcloud compute instance-templates create template-vm-ilb \
            --image-family=debian-9 \
            --image-project=debian-cloud \
            --tags=allow-ssh,allow-health-check \
            --subnet=lb-subnet \
            --region=us-west1 \
            --network=lb-network \
            --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. 次のテンプレートを使用して、リージョンのマネージド インスタンス グループを 1 つ作成します。

        gcloud compute instance-groups managed create ig-ilb \
            --template=template-vm-ilb \
            --region=us-west1 \
            --size=6
        
  3. リージョンのマネージド インスタンス グループをバックエンドとして作成済みのバックエンド サービスに追加します。

        gcloud compute backend-services add-backend be-ilb \
            --region=us-west1 \
            --instance-group=ig-ilb \
            --instance-group-region=us-west1
        
  4. ゾーンの 2 つの非マネージド インスタンス グループをバックエンド サービスから切断します。

        gcloud compute backend-services remove-backend be-ilb \
            --region=us-west1 \
            --instance-group=ig-a \
            --instance-group-zone=us-west1-a
        gcloud compute backend-services remove-backend be-ilb \
            --region=us-west1 \
            --instance-group=ig-c \
            --instance-group-zone=us-west1-c
        

バックエンド VM から外部 IP アドレスを削除する

バックエンド VM を作成したときに、起動スクリプトを介して Apache をダウンロードできるように、それぞれにエフェメラル外部 IP アドレスが割り当てられました。バックエンド VM は内部ロードバランサのみで使用されるため、外部 IP アドレスは削除できます。外部 IP アドレスを削除すると、バックエンド VM から直接インターネットにアクセスできなくなります。

Console

  1. Google Cloud Console の [VM インスタンス] ページに移動します。
    [VM インスタンス] ページに移動
  2. 各バックエンド VM に対して以下の手順を繰り返します。
  3. バックエンド VM の名前をクリックします。たとえば、vm-a1 をクリックすると、VM インスタンスの詳細ページが表示されます。
  4. [編集] をクリックします。
  5. [ネットワーク インターフェース] セクションで、[編集] ボタンをクリックします。
  6. [外部 IP] ポップアップで [なし] を選択して、[完了] をクリックします。
  7. [保存] をクリックします。

gcloud

  1. インスタンスのゾーンを検索する。たとえば、リージョンのマネージド インスタンス グループを使用している場合、インスタンスごとに次のコマンドを実行してゾーンを判別します。[SERVER-VM] を検索する VM の名前に置き換えます。

        gcloud compute instances list --filter="name=[SERVER-VM]"
        
  2. 各バックエンド VM に対して次の手順を繰り返します。[SERVER-VM] を VM の名前、[ZONE] を VM のゾーンにそれぞれ置き換えます。

        gcloud compute instances delete-access-config [SERVER-VM] \
            --zone=[ZONE] \
            --access-config-name=external-nat
        

api

各バックエンド VM の instances.deleteAccessConfig メソッドに POST リクエストを送信します。vm-a1 は VM の名前、us-west1-a は VM のゾーンにそれぞれ置き換えます

POST https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/us-west1-a/instances/v1-a1/deleteAccessConfig?accessConfig=external-nat&networkInterface=None
    

複数のポートでトラフィックを受信する

受信トラフィックのポートを制御するコンポーネントは内部転送ルールです。この手順では、ポート 80 の転送ルールをポート 80 とポート 443 でトラフィックを受け入れるルールに置き換えます。バックエンド VM を作成すると、Apache をインストールして構成する起動スクリプトもポート 443 で HTTPS トラフィックを処理するように構成されます。Google Cloud では転送ルールの更新がサポートされていないため、転送ルールを置き換える必要があります。

gcloud

  1. 既存の転送ルール fr-ilb を削除してください。

        gcloud compute forwarding-rules delete fr-ilb \
            --region=us-west1
        
  2. ポート 80 と 443 に同じ名前の置換転送ルールを作成します。IP アドレスとバックエンド サービスを含む、このルールのその他のパラメータは同じです。

        gcloud compute forwarding-rules create fr-ilb \
            --region=us-west1 \
            --load-balancing-scheme=internal \
            --network=lb-network \
            --subnet=lb-subnet \
            --address=10.1.2.99 \
            --ip-protocol=TCP \
            --ports=80,443 \
            --backend-service=be-ilb \
            --backend-service-region=us-west1
        
  3. クライアント VM インスタンスに接続し、HTTP 接続と HTTPS 接続をテストします。

    • クライアント VM に接続します。

          gcloud compute ssh vm-client --zone=us-west1-a
          
    • HTTP 接続をテストします。

          curl http://10.1.2.99
          
    • HTTPS 接続をテストします。サンプルの設定の Apache サーバー構成では自己署名証明書を使用するため、--insecure フラグが必要です。

          curl https://10.1.2.99 --insecure
          
    • HTTP リクエスト(ポート 80)と HTTPS リクエスト(ポート 443)がすべてのバックエンド VM で処理されることを確認します。

セッション アフィニティの使用

構成例では、バックエンド サービスをセッション アフィニティなしで作成しています。

この手順では、クライアント IP アドレスに基づいてセッション アフィニティを使用するように、内部 TCP / UDP ロードバランサのバックエンド サービスを更新する方法を示します。

クライアントの IP アドレスとロードバランサの IP アドレス(内部転送ルールの内部 IP アドレス)から作成されたハッシュに基づいて、特定のクライアントのリクエストが同じバックエンド VM に転送されます。

Console

  1. Google Cloud Console で [負荷分散] ページに移動します。
    [負荷分散] ページに移動
  2. [be-ilb](この例で作成したバックエンド サービスの名前)をクリックし、[編集] をクリックします。
  3. 内部ロードバランサの編集ページで、バックエンドの構成をクリックします。
  4. [セッション アフィニティ] ポップアップ メニューからクライアント IP を選択します。
  5. [更新] をクリックします。

gcloud

クライアント IP セッション アフィニティを指定して、be-ilb バックエンド サービスを更新するには、次の gcloud コマンドを使用します。

    gcloud compute backend-services update be-ilb \
        --session-affinity CLIENT_IP
    

api

regionBackendServices/patch メソッドに PATCH リクエストを送信します。

PATCH https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/regions/us-west1/backendServices/be-ilb
    {
      "sessionAffinity": "CLIENT_IP"
    }
    

トラフィック分散に影響するセッション アフィニティと各オプションの詳細については、トラフィック分散をご覧ください。

別のサブネットで転送ルールを作成する

この手順では、1 つの内部 TCP / UDP ロードバランサに対して複数の転送ルールを作成できることを示すために、2 つ目の IP アドレスと転送ルールを別のサブネットに作成します。転送ルールのリージョンは、バックエンド サービスのリージョンと一致する必要があります。

ファイアウォール ルールに従うと、リージョン内のサブネット内のクライアントは、内部 TCP / UDP ロードバランサの IP アドレスに接続できます。

  1. us-west1 リージョン内の lb-network ネットワークに 2 つ目のサブネットを作成します。

        gcloud compute networks subnets create second-subnet \
            --network=lb-network \
            --range=10.5.6.0/24 \
            --region=us-west1
        
  2. ポート 80 と 443 に 2 つ目の転送ルールを作成します。IP アドレスやバックエンド サービスなど、このルールのその他のパラメータは、プライマリ転送ルール fr-ilb と同じです。

        gcloud compute forwarding-rules create fr-ilb-2 \
            --region=us-west1 \
            --load-balancing-scheme=internal \
            --network=lb-network \
            --subnet=second-subnet \
            --address=10.5.6.99 \
            --ip-protocol=TCP \
            --ports=80,443 \
            --backend-service=be-ilb \
            --backend-service-region=us-west1
        
  3. クライアント VM インスタンスに接続し、IP アドレスへの HTTP 接続と HTTPS 接続をテストします。

    • クライアント VM に接続します。
        gcloud compute ssh vm-client --zone=us-west1-a
        
    • IP アドレスへの HTTP 接続をテストします。
        curl http://10.1.2.99
        curl http://10.5.6.99
        
    • HTTPS 接続をテストします。サンプル設定の Apache サーバー構成では自己署名証明書を使用するため、--insecure を使用する必要があります。
        curl https://10.1.2.99 --insecure
        curl https://10.5.6.99 --insecure
        
    • リクエストは、使用されているプロトコル(HTTP または HTTPS)や IP アドレスに関係なく、すべてのバックエンド VM で処理されることを確認してください。

次のステップ