ハイブリッド接続でグローバル外部アプリケーション ロードバランサを設定する

このページでは、グローバル外部アプリケーション ロードバランサをデプロイして、オンプレミスまたは他のパブリック クラウドにあり、ハイブリッド接続経由で到達可能なネットワーク エンドポイントにトラフィックをロード バランシングする方法について説明します。

これらのタスクが完了したら、必要に応じて追加のサービス(Cloud CDN、Google Cloud Armor など)と高度なトラフィック管理機能を有効にできます。

まだ行っていない場合は、ハイブリッド接続 NEG の概要を確認して、ハイブリッド ロード バランシングを設定するためのネットワーク要件を把握してください。

設定の概要

このページの例では、次のサンプル デプロイメントを設定します。

ハイブリッド接続の外部アプリケーション ロードバランサの例。
ハイブリッド接続用の外部アプリケーション ロードバランサの例(クリックして拡大)

ハイブリッド ロード バランシングのデプロイを試す前に、ハイブリッド接続を構成する必要があります。このドキュメントでは、ハイブリッド接続の設定について説明しません。

Cloud VPN または Cloud Interconnect(Dedicated または Partner)のどちらのハイブリッド接続プロダクトを選択したかに応じて、関連するプロダクトのドキュメントを使用して構成してください。

権限

ハイブリッド ロード バランシングを設定するには、次の権限が必要です。

  • Google Cloud

    • Google Cloud とオンプレミス環境または他のクラウド環境との間のハイブリッド接続を確立する権限。必要な権限の一覧については、関連する Network Connectivity プロダクトのドキュメントをご覧ください。
    • ハイブリッド接続 NEG とロードバランサを作成する権限。このガイドで説明するタスクの実行に必要な権限は、Compute ロードバランサ管理者のロールroles/compute.loadBalancerAdmin)に含まれています。
  • オンプレミス環境または Google Cloud 以外のクラウド環境

    • IP:Port の組み合わせで Google Cloud からオンプレミス環境または他のクラウド環境のサービスに到達できるように、ネットワーク エンドポイントを構成する権限。詳細については、お使いの環境のネットワーク管理者に問い合わせてください。
    • Google のヘルスチェック プローブがエンドポイントに到達することを許可するように、ファイアウォール ルールをオンプレミス環境または他のクラウド環境に作成する権限。

さらに、このページの手順を完了するには、ハイブリッド接続 NEG、ロードバランサ、ゾーン NEG(およびそれらのエンドポイント)を作成して、ロードバランサの Google Cloud ベースのバックエンドとして機能させる必要があります。

そのためには、プロジェクトのオーナーまたは編集者であるか、次の Compute Engine IAM のロールが必要です。

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

ハイブリッド接続を確立する

オンプレミス環境または他のクラウド環境と Google Cloud を接続するには、Cloud Router とともに Cloud Interconnect VLAN アタッチメントまたは Cloud VPN トンネルを使用して、ハイブリッド接続を確立する必要があります。高可用性接続の使用をおすすめします。

グローバル動的ルーティングが有効になっている Cloud Router は、Border Gateway Protocol(BGP)を通じて特定のエンドポイントを学習し、Google Cloud VPC ネットワークにプログラムします。リージョン動的ルーティングはサポートされていません。静的ルートもサポートされていません。

Cloud Interconnect と Cloud VPN のいずれかの構成に使用する VPC ネットワークは、ハイブリッド ロード バランシングのデプロイに使用するものと同じネットワークです。VPC ネットワークのサブネットの CIDR 範囲がリモートの CIDR 範囲と競合しないようにしてください。IP アドレスが重複する場合、リモート接続よりもサブネット ルートが優先されます。

手順については、次のドキュメントをご覧ください。

Google Cloud の外部にある環境を設定する

次の手順で、ハイブリッド ロード バランシング用のオンプレミス環境またはその他のクラウド環境を設定します。

  • オンプレミス サービスを Google Cloud(IP:Port)に公開するようにネットワーク エンドポイントを構成します。
  • オンプレミス環境または他のクラウド環境でファイアウォール ルールを構成します。
  • プライベート環境への特定の必要なルートをアドバタイズするように Cloud Router を構成します。

ネットワーク エンドポイントを設定する

ハイブリッド接続を設定したら、オンプレミス環境または他のクラウド環境内に、IP:port の組み合わせを使用して Cloud Interconnect または Cloud VPN を通じて到達可能なネットワーク エンドポイントを構成します。この IP:port の組み合わせは、このプロセスの後半で Google Cloud で作成されるハイブリッド接続 NEG の 1 つ以上のエンドポイントとして構成されます。

IP エンドポイントへのパスが複数ある場合、ルーティングは Cloud Router の概要で説明されているように動作します。

ファイアウォール ルールの設定

オンプレミス環境またはその他のクラウド環境に、次のファイアウォール ルールを作成する必要があります。

  • 上り(内向き)許可ファイアウォール ルールを作成して、Google のヘルスチェック プローブからエンドポイントへのトラフィックを許可します。許可される送信元 IP アドレスの範囲は 35.191.0.0/16130.211.0.0/22 です。詳細については、プローブの IP 範囲とファイアウォール ルールをご覧ください。

オンプレミス環境または他のクラウド環境に次のカスタム IP 範囲をアドバタイズするように、Cloud Router を構成します。

  • Google のヘルスチェック プローブで使用される範囲(35.191.0.0/16130.211.0.0/22)。

Google Cloud 環境を設定する

以降のステップでは、環境間のハイブリッド接続の構成に使用した VPC ネットワーク(この手順では NETWORK)を使用します。

バックエンドのサブネットを作成する

このサブネットは、ロードバランサのゾーン NEG バックエンド、フロントエンド、内部 IP アドレスの作成に使用されます。

環境間のハイブリッド接続の構成に使用した NETWORK ネットワーク内にサブネットを作成します。

コンソール

IPv4 トラフィックと IPv6 トラフィックの両方をサポートするには、次の操作を行います。

  1. Google Cloud コンソールの [VPC ネットワーク] ページに移動します。

    [VPC ネットワーク] に移動

  2. 環境間のハイブリッド接続の構成に使用されたネットワークに移動します。

    • [編集] をクリックします。
    • [サブネット作成モード] で [カスタム] をクリックします。
    • [保存] をクリックします。
  3. 省略可: このネットワークのサブネットで内部 IPv6 アドレス範囲を構成する場合は、次の手順を完了します。

    1. [VPC ネットワーク ULA の内部 IPv6 範囲] で、[有効] を選択します。
    2. [内部 IPv6 範囲の割り当て] で、[自動] または [手動] を選択します。

      [手動] を選択した場合は、fd20::/20 の範囲内の /48 の範囲を入力します。範囲が使用されている場合は、別の範囲を指定するように求めるプロンプトが表示されます。

  4. [サブネット] タブで [サブネットを追加] をクリックします。

  5. [サブネットの追加] パネルで、次のフィールドを構成します。

    1. [名前] フィールドに、サブネットの名前を入力します。
    2. [リージョン] フィールドでリージョンを選択します。
    3. [IP アドレス範囲] フィールドに IP アドレス範囲を入力します。
    4. [IP スタックタイプ] には、[IPv4 と IPv6(デュアルスタック)] を選択します。
    5. [IPv6 アクセスタイプ] フィールドで [外部] を選択します。
    6. [Add] をクリックします。

IPv4 トラフィックをサポートするには、次の操作を行います。

  1. Google Cloud コンソールの [VPC ネットワーク] ページに移動します。

    [VPC ネットワーク] に移動

  2. 環境間のハイブリッド接続の構成に使用されたネットワークに移動します。

    • [編集] をクリックします。
    • [サブネット作成モード] で [カスタム] をクリックします。
    • [保存] をクリックします。
  3. [サブネット] タブで [サブネットを追加] をクリックします。

  4. [サブネットを追加] パネルで、次の情報を入力します。

    • [名前] フィールドに、サブネットの名前を入力します。
    • [リージョン] フィールドでリージョンを選択します。
    • [IP アドレス範囲] フィールドに IP アドレス範囲を入力します。
    • [IP スタックタイプ] フィールドで、[IPv4(シングルスタック)] を選択します。
    • [Add] をクリックします。

gcloud

環境間のハイブリッド接続の構成に使用した NETWORK ネットワーク内にサブネットを作成します。

IPv4 と IPv6 トラフィック両方の場合は、次のコマンドを使用します。

gcloud compute networks update NETWORK \
    [ --enable-ula-internal-ipv6 [ --internal-ipv6-range=ULA_IPV6_RANGE ]] \
    --switch-to-custom-subnet-mode
gcloud compute networks subnets create LB_SUBNET_NAME \
    --network=NETWORK \
    --range=LB_SUBNET_RANGE \
    --region=REGION \
    --stack-type=IPV4_IPV6 \
    --ipv6-access-type=EXTERNAL

IPv4 トラフィックの場合は、次のコマンドを使用します。

gcloud compute networks subnets create LB_SUBNET_NAME \
    --network=NETWORK \
    --range=LB_SUBNET_RANGE \
    --region=REGION

次のように置き換えます。

  • NETWORK: VPC ネットワークの名前。

  • LB_SUBNET_NAME: サブネットの名前。

  • REGION: リージョンの名前。

  • ULA_IPV6_RANGE: Google が内部 IPv6 サブネット範囲に使用する fd20::/20 範囲内の /48 プレフィックス。--internal-ipv6-range フラグを使用しない場合は、Google によってネットワークの /48 接頭辞が選択されます。

ファイアウォール ルールを作成する

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

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

コンソール

  1. Google Cloud コンソールで [ファイアウォール ポリシー] ページに移動します。

    [ファイアウォール ポリシー] に移動

  2. [ファイアウォール ルールを作成] をクリックします。

    1. [名前] に「fw-allow-health-check」を入力します。
    2. [ネットワーク] セクションで、NETWORK を選択します。
    3. [ターゲット] で [指定されたターゲットタグ] を選択します。
    4. [ターゲットタグ] フィールドに「allow-health-check」を入力します。
    5. [ソースフィルタ] を [IPv4 範囲] に設定します。
    6. [送信元 IPv4 範囲] を 130.211.0.0/2235.191.0.0/16 に設定します。
    7. [プロトコルとポート] で [指定したプロトコルとポート] をオンにします。
    8. [TCP] の横にあるチェックボックスをオンにして、ポート番号に「80」と入力します。
  3. [作成] をクリックします。

  4. IPv6 サブネット トラフィックを許可するには、もう一度 [ファイアウォール ルールを作成] をクリックして、次の情報を入力します。

    1. 名前: fw-allow-lb-access-ipv6
    2. ネットワーク: NETWORK
    3. 優先度: 1000
    4. トラフィックの方向: 上り(内向き)
    5. ターゲット: 指定されたターゲットタグ
    6. [ターゲットタグ] フィールドに「allow-health-check-ipv6」と入力します。
    7. ソースフィルタ: IPv6 範囲
    8. 送信元 IPv6 範囲: 2600:2d00:1:b029::/64,2600:2d00:1:1::/64
    9. プロトコルとポート: すべて許可
  5. [作成] をクリックします。

gcloud

  1. ロードバランサと Google Cloud ヘルスチェックが TCP ポート 80 でバックエンド システムと通信ができるように、fw-allow-health-check-and-proxy ルールを作成します。

    NETWORK は、ハイブリッド接続の構成に使用する VPC ネットワークの名前に置き換えます。

    gcloud compute firewall-rules create fw-allow-health-check \
        --network=NETWORK \
        --action=allow \
        --direction=ingress \
        --target-tags=allow-health-check \
        --source-ranges=130.211.0.0/22,35.191.0.0/16 \
        --rules=tcp:80
    
  2. Google Cloud IPv6 ヘルスチェックを許可する fw-allow-health-check-ipv6 ルールを作成します。

    gcloud compute firewall-rules create fw-allow-health-check-ipv6 \
       --network=NETWORK \
       --action=allow \
       --direction=ingress \
       --target-tags=allow-health-check-ipv6 \
       --source-ranges=2600:2d00:1:b029::/64,2600:2d00:1:1::/64 \
       --rules=tcp,udp,icmp
    

ゾーン NEG を設定する

Google Cloud ベースのバックエンドの場合は、ハイブリッド接続を構成したリージョンに複数のゾーン NEG を構成することをおすすめします。

1 つ以上の GCE_VM_IP_PORT タイプのエンドポイントを含むゾーン NEG は、デュアルスタックをサポートします。

この例では、REGION リージョンにゾーン NEG を設定します(GCE_VM_IP_PORT タイプのエンドポイント)。まず、GCP_NEG_ZONE ゾーンに VM を作成します。次に、同じ GCP_NEG_ZONE にゾーン NEG を作成し、VM のネットワーク エンドポイントを NEG に追加します。

VM を作成する

コンソール

  1. Google Cloud Console の [VM インスタンス] ページに移動します。
    [VM インスタンス] に移動

  2. [インスタンスを作成] をクリックします。

  3. [名前] を vm-a1 に設定します。

  4. [リージョン] で [REGION] を選択します。

  5. [ゾーン] で [GCP_NEG_ZONE] を選択します。

  6. [ブートディスク] セクションで、ブートディスク オプションとして Debian GNU/Linux 12 (bookworm) が選択されていることを確認します。必要に応じて [選択] をクリックし、イメージを変更します。

  7. [詳細オプション] をクリックして、次の変更を行います。

    • [ネットワーク] をクリックして、ネットワーク タグ allow-health-check を追加します。
    • [ネットワーク インターフェース] にある編集ボタン をクリックして、次の変更を行い、[完了] をクリックします。
      • ネットワーク: NETWORK
      • サブネット: LB_SUBNET_NAME
      • IP スタックタイプ: IPv4 と IPv6(デュアルスタック)
    • [管理] をクリックします。[起動スクリプト] フィールドに、次のスクリプトの内容をコピーして貼り付けます。スクリプトの内容は 4 つの VM ですべて同じです。

      #! /bin/bash
      apt-get update
      apt-get install apache2 -y
      a2ensite default-ssl
      a2enmod ssl
      vm_hostname="$(curl -H "Metadata-Flavor:Google" \
      http://metadata.google.internal/computeMetadata/v1/instance/name)"
      echo "Page served from: $vm_hostname" | \
      tee /var/www/html/index.html
      systemctl restart apache2
      
  8. [作成] をクリックします。

  9. 以下の手順を繰り返し、次の名前とゾーンの組み合わせを使用して、2 つ目の VM を作成します。

    • 名前: vm-a2、ゾーン: GCP_NEG_ZONE

gcloud

VM とそのゾーンの名前にこれらの組み合わせを使用して、次のコマンドを 2 回実行して VM を作成します。スクリプトの内容は両方の VM で同じです。

  • vm-a1VM_NAME と任意の GCP_NEG_ZONE ゾーン
  • vm-a2VM_NAME と同じ GCP_NEG_ZONE ゾーン

    IPv4 トラフィックと IPv6 トラフィックの両方をサポートするには、次のコマンドを実行します。

    gcloud compute instances create VM_NAME \
        --zone=GCP_NEG_ZONE \
        --image-family=debian-10 \
        --image-project=debian-cloud \
        --tags=allow-health-check,allow-health-check-ipv6 \
        --ipv6-network-tier=PREMIUM \
        --stack-type=IPv4_IPv6 \
        --subnet=LB_SUBNET_NAME \
        --metadata=startup-script='#! /bin/bash
          apt-get update
          apt-get install apache2 -y
          a2ensite default-ssl
          a2enmod ssl
          vm_hostname="$(curl -H "Metadata-Flavor:Google" \
          http://metadata.google.internal/computeMetadata/v1/instance/name)"
          echo "Page served from: $vm_hostname" | \
          tee /var/www/html/index.html
          systemctl restart apache2'
    

ゾーン NEG を作成する

コンソール

ゾーン ネットワーク エンドポイント グループを作成するには:

  1. Google Cloud Console の [ネットワーク エンドポイント グループ] ページに移動します。
    [ネットワーク エンドポイント グループ] ページに移動
  2. [ネットワーク エンドポイント グループを作成] をクリックします。
  3. ゾーン NEG の名前を入力します。この手順では GCP_NEG_NAME とします。
  4. ネットワーク エンドポイント グループの種類: ネットワーク エンドポイント グループ(ゾーン)を選択します。
  5. [ネットワーク] で NETWORK を選択します。
  6. [サブネット] で LB_SUBNET_NAME を選択します。
  7. [ゾーン] で GCP_NEG_ZONE を選択します。
  8. [デフォルト ポート: 80] を入力します。
  9. [作成] をクリックします。

エンドポイントをゾーン NEG に追加します。

  1. Google Cloud コンソールでの [ネットワーク エンドポイント グループ] ページに移動します。
    [ネットワーク エンドポイント グループ] に移動
  2. 前のステップで作成したネットワーク エンドポイント グループの名前GCP_NEG_NAME)をクリックします。ネットワーク エンドポイント グループの詳細ページが表示されます。
  3. [このグループのネットワーク エンドポイント] セクションで [ネットワーク エンドポイントを追加] をクリックします。[ネットワーク エンドポイントの追加] ページが表示されます。
  4. [VM インスタンス] を選択して、ネットワーク エンドポイントとして内部 IP アドレスを追加します。[ネットワーク インターフェース] セクションに、VM の名前、ゾーン、サブネットが表示されます。
  5. [IPv4 アドレス] フィールドに、新しいネットワーク エンドポイントの IPv4 アドレスを入力します。
  6. [IPv6 アドレス] フィールドに、新しいネットワーク エンドポイントの IPv6 アドレスを入力します。
  7. ポートタイプを選択します。
    1. [デフォルト] を選択すると、エンドポイントはネットワーク エンドポイント グループのすべてのエンドポイントにデフォルト ポート 80 を使用します。この例では、Apache サーバーがポート 80 でリクエストを配信しているため、これで十分です。
    2. [カスタム] を選択した場合は、使用するエンドポイントのポート番号を入力します。
  8. 他のエンドポイントを追加するには、[ネットワーク エンドポイントを追加] をクリックし、前の手順を繰り返します。
  9. すべてのエンドポイントを追加したら、[作成] をクリックします。

gcloud

  1. gcloud compute network-endpoint-groups create コマンドを使用して、ゾーン NEG を作成します(GCE_VM_IP_PORT エンドポイントを含む)。

    gcloud compute network-endpoint-groups create GCP_NEG_NAME \
        --network-endpoint-type=GCE_VM_IP_PORT \
        --zone=GCP_NEG_ZONE \
        --network=NETWORK \
        --subnet=LB_SUBNET_NAME
    

    次のステップで説明するように、NEG の作成時に --default-port を指定するか、各エンドポイントのポート番号を指定します。

  2. デュアル スタック エンドポイントを GCP_NEG_NAME に追加します。

    gcloud compute network-endpoint-groups update GCP_NEG_NAME \
       --zone=GCP_NEG_ZONE \
       --add-endpoint='instance=vm-a1,ip=IPv4_ADDRESS, \
                       ipv6=IPv6_ADDRESS,port=80' \
       --add-endpoint='instance=vm-a2,ip=IPv4_ADDRESS, \
                       ipv6=IPv6_ADDRESS,port=80'
    

ハイブリッド接続 NEG を設定する

NEG を作成するときは、Google Cloud とオンプレミスまたは他のクラウド環境との間の地理的距離を最小限に抑える ZONE を使用します。たとえば、ドイツのフランクフルトのオンプレミス環境にサービスをホストする場合、NEG を作成するときに europe-west3-a Google Cloud ゾーンを指定できます。

また、Cloud Interconnect を使用している場合は、NEG の作成に使用する ZONE は、ハイブリッド接続の Cloud Interconnect VLAN アタッチメントが構成されているリージョンに存在している必要があります。

使用可能なリージョンとゾーンについては、Compute Engine のドキュメント: 使用可能なリージョンとゾーンをご覧ください。

コンソール

ハイブリッド接続ネットワーク エンドポイント グループを作成するには:

  1. Google Cloud コンソールでの [ネットワーク エンドポイント グループ] ページに移動します。
    [ネットワーク エンドポイント グループ] に移動
  2. [ネットワーク エンドポイント グループを作成] をクリックします。
  3. ハイブリッド NEG の名前を入力します。この手順では ON_PREM_NEG_NAME とします。
  4. ネットワーク エンドポイント グループの種類: [ハイブリッド接続ネットワーク エンドポイント グループ(ゾーン)] を選択します。
  5. ネットワーク: NETWORK を選択します
  6. [サブネット: LB_SUBNET_NAME] を選択します。
  7. [ゾーン: ON_PREM_NEG_ZONE] を選択します。
  8. [デフォルト ポート] を入力します。
  9. [作成] をクリックします。

ハイブリッド接続 NEG にエンドポイントを追加します。

  1. Google Cloud コンソールでの [ネットワーク エンドポイント グループ] ページに移動します。
    [ネットワーク エンドポイント グループ] ページに移動
  2. 前のステップで作成したネットワーク エンドポイント グループの名前ON_PREM_NEG_NAME)をクリックします。ネットワーク エンドポイント グループの詳細ページが表示されます。
  3. [このグループのネットワーク エンドポイント] セクションで [ネットワーク エンドポイントを追加] をクリックします。[ネットワーク エンドポイントの追加] ページが表示されます。
  4. 新しいネットワーク エンドポイントの IP アドレスを入力します。
  5. ポートタイプを選択します。
    1. [デフォルト] を選択すると、エンドポイントはネットワーク エンドポイント グループのすべてのエンドポイントにデフォルト ポートを使用します。
    2. [カスタム] を選択すると、使用するエンドポイントに異なる [ポート番号] を入力できます。
  6. 他のエンドポイントを追加するには、[ネットワーク エンドポイントを追加] をクリックし、前の手順を繰り返します。
  7. Google Cloud 以外のエンドポイントをすべて追加したら、[作成] をクリックします。

gcloud

  1. gcloud compute network-endpoint-groups create コマンドを使用して、ハイブリッド接続 NEG を作成します。

    gcloud compute network-endpoint-groups create ON_PREM_NEG_NAME \
        --network-endpoint-type=NON_GCP_PRIVATE_IP_PORT \
        --zone=ON_PREM_NEG_ZONE \
        --network=NETWORK
    
  2. エンドポイントを on-prem-neg に追加します。

    gcloud compute network-endpoint-groups update ON_PREM_NEG_NAME \
        --zone=ON_PREM_NEG_ZONE \
        --add-endpoint="ip=ON_PREM_IP_ADDRESS_1,port=PORT_1" \
        --add-endpoint="ip=ON_PREM_IP_ADDRESS_2,port=PORT_2"
    

このコマンドを使用すると、オンプレミスまたはクラウド環境で構成したネットワーク エンドポイントを追加できます。--add-endpoint を必要な回数だけ繰り返します。

必要に応じて、これらの手順を繰り返して複数のハイブリッド NEG を作成できます。

ロードバランサの構成

コンソール

gcloud

  1. 外部クライアントがトラフィックを送信するグローバル静的外部 IP アドレスを作成します。
      gcloud compute addresses create LB_IP_ADDRESS_NAME \
          --network-tier=PREMIUM \
          --global
      
  2. バックエンドのヘルスチェックを作成します。
      gcloud compute health-checks create http HTTP_HEALTH_CHECK_NAME \
          --use-serving-port
      
  3. バックエンド サービスを作成します。このバックエンド サービスに、ゾーン NEG とハイブリッド接続 NEG の両方をバックエンドとして追加します。
  4.   gcloud beta compute backend-services create BACKEND_SERVICE \
          --health-checks=HTTP_HEALTH_CHECK_NAME \
          --load-balancing-scheme=EXTERNAL_MANAGED \
          --ip-address-selection-policy=PREFER_IPV6 \
          --global
      
  5. ゾーン NEG をバックエンドとしてバックエンド サービスに追加します。
      gcloud beta compute backend-services add-backend BACKEND_SERVICE \
          --global \
          --balancing-mode=RATE \
          --max-rate-per-endpoint=MAX_REQUEST_RATE_PER_ENDPOINT \
          --network-endpoint-group=GCP_NEG_NAME \
          --network-endpoint-group-zone=GCP_NEG_ZONE
       
    バランシング モードの構成の詳細については、gcloud CLI のドキュメントで --max-rate-per-endpoint パラメータをご覧ください。
  6. ハイブリッド NEG をバックエンドとしてバックエンド サービスに追加します。
      gcloud compute backend-services add-backend BACKEND_SERVICE \
          --global \
          --balancing-mode=RATE \
          --max-rate-per-endpoint=MAX_REQUEST_RATE_PER_ENDPOINT \
          --network-endpoint-group=ON_PREM_NEG_NAME \
          --network-endpoint-group-zone=ON_PREM_NEG_ZONE
      
  7. 受信リクエストをバックエンド サービスに転送するための URL マップを作成します。
      gcloud beta compute url-maps create URL_MAP_NAME \
          --default-service BACKEND_SERVICE
      
  8. この手順は、HTTPS ロードバランサを作成する場合にのみ行います。HTTP ロードバランサの場合、必須ではありません。
    HTTPS ロードバランサを作成するには、HTTPS ターゲット プロキシで使用する SSL 証明書リソースが必要です。SSL 証明書リソースは、Google マネージド SSL 証明書またはセルフマネージド SSL 証明書を使用して作成できます。このうち、Google Cloud が自動的に取得、管理、更新する Google マネージド証明書をおすすめします。

    Google マネージド証明書を作成するには、ドメインが必要です。ドメインがない場合は、自己署名 SSL 証明書を使用してテストできます。

    Google マネージド SSL 証明書リソースを作成するには、次のコマンドを実行します。
    gcloud compute ssl-certificates create SSL_CERTIFICATE_NAME \
        --domains DOMAIN
    
    セルフマネージド SSL 証明書リソースを作成するには:
    gcloud compute ssl-certificates create SSL_CERTIFICATE_NAME \
        --certificate CRT_FILE_PATH \
        --private-key KEY_FILE_PATH
    
  9. URL マップにリクエストを転送するターゲット HTTP(S) プロキシを作成します。

    HTTP ロードバランサの場合は、HTTP ターゲット プロキシを作成します。
    gcloud beta compute target-http-proxies create TARGET_HTTP_PROXY_NAME \
        --http-keep-alive-timeout-sec=HTTP_KEEP_ALIVE_TIMEOUT_SEC \
        --url-map=URL_MAP_NAME
    
    HTTPS ロードバランサの場合は、HTTPS ターゲット プロキシを作成します。プロキシはロードバランサの一部であり、HTTPS ロード バランシング用の SSL 証明書を保持するため、このステップで証明書も読み込みます。
    gcloud beta compute target-https-proxies create TARGET_HTTPS_PROXY_NAME \
        --http-keep-alive-timeout-sec=HTTP_KEEP_ALIVE_TIMEOUT_SEC \
        --ssl-certificates=SSL_CERTIFICATE_NAME \
        --url-map=URL_MAP_NAME
    

    以下を置き換えます。

    • TARGET_HTTP_PROXY_NAME: ターゲット HTTP プロキシの名前。
    • TARGET_HTTPS_PROXY_NAME: ターゲット HTTPS プロキシの名前。
    • HTTP_KEEP_ALIVE_TIMEOUT_SEC: クライアント HTTP キープアライブ タイムアウトの指定に使用するオプション フィールドです。タイムアウト値は 5~1,200 秒の範囲で指定してください。デフォルト値は 610 秒です。
    • SSL_CERTIFICATE_NAME: SSL 証明書の名前。
    • URL_MAP_NAME: URL マップの名前。
  10. 受信リクエストをプロキシに転送する転送ルールを作成します。

    HTTP ロードバランサの場合:
    gcloud beta compute forwarding-rules create HTTP_FORWARDING_RULE_NAME \
        --load-balancing-scheme=EXTERNAL_MANAGED \
        --network-tier=PREMIUM \
        --address=LB_IP_ADDRESS_NAME \
        --target-http-proxy=TARGET_HTTP_PROXY_NAME \
        --global \
        --ports=80
    
    HTTPS ロードバランサの場合:
    gcloud beta compute forwarding-rules create HTTPS_FORWARDING_RULE_NAME \
        --load-balancing-scheme=EXTERNAL_MANAGED \
        --network-tier=PREMIUM \
        --address=LB_IP_ADDRESS_NAME \
        --target-https-proxy=TARGET_HTTPS_PROXY_NAME \
        --global \
        --ports=443
    

ドメインをロードバランサに接続する

ロードバランサが作成されたら、ロードバランサに関連付けられた IP アドレスをメモします(例: 30.90.80.100)。ドメイン登録サービスを使用して A レコードを作成し、ドメインがロードバランサを参照するようにします。SSL 証明書に複数のドメインを追加する場合は、それぞれについて A レコードを追加して、すべてがロードバランサの IP アドレスを指すようにする必要があります。たとえば、www.example.comexample.comA レコードを作成するには、次のようにします。

NAME                  TYPE     DATA
www                   A        30.90.80.100
@                     A        30.90.80.100

DNS プロバイダとして Cloud DNS を使用する場合は、レコードの追加、変更、削除をご覧ください。

ロードバランサのテスト

ロードバランサを構成したので、ロードバランサの IP アドレスにトラフィックを送信できるようになりました。

  1. Google Cloud Console の [Cloud Load Balancing] ページに移動します。
    [負荷分散] ページに移動

  2. 作成したロードバランサをクリックします。

  3. ロードバランサの IP アドレスをメモします。

  4. ロードバランサにトラフィックを送信する。

    • HTTP ロードバランサを作成した場合は、ウェブブラウザで http://IP_ADDRESS に移動してロードバランサをテストできます。IP_ADDRESS は、ロードバランサの IP アドレスに置き換えます。エンドポイントを介して公開したサービスが表示されます。

    • HTTPS ロードバランサを作成した場合は、次のように curl を使用してロードバランサをテストできます。IP_ADDRESS は、ロードバランサの IP アドレスに置き換えます。エンドポイントを介して公開したサービスが表示されます。

      curl -k https://IP_ADDRESS
      

      結果に問題があり、Google マネージド証明書を使用している場合は、証明書リソースのステータスが ACTIVE であることを確認します。詳しくは、Google マネージド SSL 証明書リソースのステータスをご覧ください。 それから、ロードバランサの IP アドレスを指し示すドメインをテストします。次に例を示します。

      curl -s https://test.example.com
      
  5. Google Cloud 以外のエンドポイントのテストは、ハイブリッド NEG エンドポイントを介して公開したサービスによって異なります。

追加構成

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

クライアント HTTP キープアライブ タイムアウトを更新する

前の手順で作成したロードバランサは、クライアント HTTP キープアライブ タイムアウトのデフォルト値で構成されています。

クライアントの HTTP キープアライブ タイムアウトを更新するには、次の操作を行います。

コンソール

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

    [ロード バランシング] に移動

  2. 変更するロードバランサの名前をクリックします。
  3. [編集] をクリックします。
  4. [フロントエンドの構成] をクリックします。
  5. [高度な機能] を開きます。[HTTP キープアライブ タイムアウト] にタイムアウト値を入力します。
  6. [更新] をクリックします。
  7. 変更を確認するには、[確認と完了] をクリックして、[更新] をクリックします。

gcloud

HTTP ロードバランサの場合は、gcloud compute target-http-proxies update コマンドを使用してターゲット HTTP プロキシを更新します。

    gcloud compute target-http-proxies update TARGET_HTTP_PROXY_NAME \
        --http-keep-alive-timeout-sec=HTTP_KEEP_ALIVE_TIMEOUT_SEC \
        --global
    

HTTPS ロードバランサの場合は、gcloud compute target-https-proxies update コマンドを使用してターゲット HTTPS プロキシを更新します。

    gcloud compute target-https-proxies update TARGET_HTTPS_PROXY_NAME \
        --http-keep-alive-timeout-sec=HTTP_KEEP_ALIVE_TIMEOUT_SEC \
        --global
    

次のように置き換えます。

  • TARGET_HTTP_PROXY_NAME: ターゲット HTTP プロキシの名前。
  • TARGET_HTTPS_PROXY_NAME: ターゲット HTTPS プロキシの名前。
  • HTTP_KEEP_ALIVE_TIMEOUT_SEC: HTTP キープアライブ タイムアウト値(5~600 秒)。

次のステップ