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

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

これらのタスクが完了したら、必要に応じて追加のサービス(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 の概要で説明されているように動作します。

ファイアウォール ルールを設定する

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

  • オンプレミス環境またはその他のクラウド環境で上り(内向き)許可ファイアウォール ルールを作成して、リージョンのプロキシ専用サブネットからのトラフィックがエンドポイントに到達できるようにします。
  • ハイブリッド NEG では、Google のヘルスチェック プローブ範囲を許可リストに登録する必要はありません。ただし、1 つのバックエンド サービスでハイブリッド NEG とゾーン NEG の組み合わせを使用している場合は、ゾーン NEG の Google ヘルスチェック プローブ範囲を許可リストに登録する必要があります。

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

  • リージョンのプロキシ専用サブネットの範囲。

Google Cloud 環境を設定する

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

また、使用するリージョン(この手順では REGION)が Cloud VPN トンネルまたは Cloud Interconnect VLAN アタッチメントの作成に使用したリージョンと同じであることを確認します。

プロキシ専用サブネットを構成する

このプロキシ専用サブネットは、REGION リージョン内のすべてのリージョン外部アプリケーション ロードバランサで使用されます。

コンソール

  1. Google Cloud コンソールの [VPC ネットワーク] ページに移動します。
    [VPC ネットワーク] に移動
  2. 環境間のハイブリッド接続の構成に使用されたネットワークに移動します。
  3. [サブネットを追加] をクリックします。
  4. 名前PROXY_ONLY_SUBNET_NAME)を入力します。
  5. リージョンREGION)を選択します。
  6. [目的] を [リージョン マネージド プロキシ] に設定します。
  7. IP アドレス範囲PROXY_ONLY_SUBNET_RANGE)を入力します。
  8. [追加] をクリックします。

gcloud

gcloud compute networks subnets create コマンドを使用して、プロキシ専用サブネットを作成します。

gcloud compute networks subnets create PROXY_ONLY_SUBNET_NAME \
  --purpose=REGIONAL_MANAGED_PROXY \
  --role=ACTIVE \
  --region=REGION \
  --network=NETWORK \
  --range=PROXY_ONLY_SUBNET_RANGE

ロードバランサのサブネットを構成する

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

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

Cloud コンソール

  1. Google Cloud コンソールの [VPC ネットワーク] ページに移動します。
    [VPC ネットワーク] に移動
  2. 環境間のハイブリッド接続の構成に使用されたネットワークに移動します。
  3. [サブネット] セクションで次の設定を行います。
    • [サブネット作成モード] を [カスタム] に設定します。
    • [新しいサブネット] セクションに、次の情報を入力します。
      • 名前: LB_SUBNET_NAME
      • リージョン: REGION
      • IP アドレス範囲: LB_SUBNET_RANGE
    • [完了] をクリックします。
  4. [作成] をクリックします。

gcloud

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

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

ロードバランサの IP アドレスを予約する

ロードバランサに外部 IP アドレスを予約します。この手順では、スタンダード ティアにロードバランサの IP アドレスを作成します。リージョン外部アプリケーション ロードバランサは、プレミアムとスタンダードの両方の Network Service Tiers をサポートします。ただし、Google Cloud コンソールでは、このロードバランサをプレミアム ティアに作成することはできません。代わりに gcloud または REST API を使用してください。

Cloud コンソール

  1. Google Cloud コンソールで、[静的アドレスの予約] ページに移動します。

    [静的アドレスの予約] に移動

  2. 名前LB_IP_ADDRESS)を入力します。

  3. [ネットワーク サービス ティア] で [スタンダード] を選択します。

  4. [IP バージョン] で [IPv4] を選択します。

  5. [タイプ] で [リージョン] を選択します。

  6. アドレスを作成する REGION を選択します。

  7. [接続先] オプションを [なし] に設定したままにします。ロードバランサを作成すると、この IP アドレスがロードバランサの転送ルールに関連付けられます。

  8. [予約] をクリックして IP アドレスを予約します。

gcloud

  1. 次のように、リージョン静的外部 IP アドレスを予約します。

    gcloud compute addresses create LB_IP_ADDRESS  \
       --region=REGION \
       --network-tier=STANDARD
    
  2. 結果を表示するには、compute addresses describe コマンドを使用します。

    gcloud compute addresses describe LB_IP_ADDRESS  \
       --region=REGION
    

ゾーン NEG にファイアウォール ルールを作成する

この例では、Google Cloud 上のゾーン NEG バックエンド用に次のファイアウォール ルールを作成します。

  • fw-allow-health-check: ロード バランシングされているインスタンスに適用される上り(内向き)ファイアウォール ルール。ロードバランサと Google Cloud ヘルスチェック システム(130.211.0.0/2235.191.0.0/16)からのトラフィックを許可します。この例では、ターゲットタグ allow-health-check を使用して、適用するバックエンド VM が識別されます。ハイブリッド NEG では、Google のヘルスチェック プローブ範囲を許可リストに登録する必要はありません。ただし、1 つのバックエンド サービスでハイブリッド NEG とゾーン NEG の組み合わせを使用している場合は、ゾーン NEG の Google ヘルスチェック プローブ範囲を許可リストに登録する必要があります。
  • fw-allow-proxy-only-subnet: バックエンドにプロキシ専用サブネットからの接続を許可する上り(内向き)ファイアウォール ルール。この例では、ターゲットタグ allow-proxy-only-subnet を使用して、適用するバックエンド 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」と入力します。
    9. [作成] をクリックします。
  3. [ファイアウォール ルールを作成] を再度クリックして、プロキシ専用サブネットからの受信接続を許可するルールを作成します。
    1. 名前: fw-allow-ssh
    2. ネットワーク: NETWORK
    3. 優先度: 1000
    4. トラフィックの方向: 上り(内向き)
    5. 一致したときのアクション: 許可
    6. ターゲット: 指定されたターゲットタグ
    7. ターゲットタグ: allow-proxy-only-subnet
    8. ソースフィルタ: IPv4 の範囲
    9. 送信元 IPv4 範囲: PROXY_ONLY_SUBNET_RANGE
    10. プロトコルとポート: [指定したプロトコルとポート] を選択します。
    11. [TCP] を選択し、ポート番号に「80」と入力します。
    12. [作成] をクリックします。

gcloud

  1. Google Cloud ヘルスチェックが TCP ポート 80 でバックエンド インスタンスに到達できるように fw-allow-health-check-and-proxy ルールを作成します。

    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. ロードバランサが TCP ポート 80 でバックエンド インスタンスと通信することを許可するプロキシ専用サブネットの上り(内向き)許可ファイアウォール ルールを作成します。

    gcloud compute firewall-rules create fw-allow-proxy-only-subnet \
        --network=NETWORK \
        --action=allow \
        --direction=ingress \
        --target-tags=allow-proxy-only-subnet \
        --source-ranges=PROXY_ONLY_SUBNET_RANGE \
        --rules=tcp:80
    

ゾーン NEG を設定する

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

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

VM を作成する

コンソール

  1. Google Cloud コンソールの [VM インスタンス] ページに移動します。
    [VM インスタンス] に移動
  2. [インスタンスを作成] をクリックします。
  3. [名前] を vm-a1 に設定します。
  4. [リージョン] に REGION を選択し、任意のゾーンを選択します。この手順では GCP_NEG_ZONE とします。
  5. [ブートディスク] セクションで、ブートディスク オプションに Debian オペレーティング システムと 10 (buster) バージョンが選択されていることを確認します。必要に応じてイメージを変更するには、[選択] をクリックします。
  6. [詳細オプション] をクリックして、次の変更を行います。

    • [ネットワーキング] をクリックして、[ネットワーク タグ] に allow-sshallow-health-checkallow-proxy-only-subnet を追加します。
    • [ネットワーク インターフェース] にある編集ボタン をクリックして、次の変更を行い、[完了] をクリックします。
      • ネットワーク: NETWORK
      • サブネット: LB_SUBNET_NAME
    • [管理] をクリックします。[起動スクリプト] フィールドに、次のスクリプトの内容をコピーして貼り付けます。スクリプトの内容は 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
      
  7. [作成] をクリックします。

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

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

gcloud

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

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

    gcloud compute instances create VM_NAME \
        --zone=GCP_NEG_ZONE \
        --image-family=debian-10 \
        --image-project=debian-cloud \
        --tags=allow-ssh,allow-health-check,allow-proxy-only-subnet \
        --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 コンソールの [ネットワーク エンドポイント グループ] ページに移動します。
    [ネットワーク エンドポイント グループ] ページに移動
  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. 新しいネットワーク エンドポイントの IP アドレスを入力します。
  6. ポートタイプを選択します。
    1. [デフォルト] を選択すると、エンドポイントはネットワーク エンドポイント グループのすべてのエンドポイントにデフォルト ポート 80 を使用します。この例では、Apache サーバーがポート 80 でリクエストを配信しているため、これで十分です。
    2. [カスタム] を選択した場合は、使用するエンドポイントのポート番号を入力します。
  7. 他のエンドポイントを追加するには、[ネットワーク エンドポイントを追加] をクリックし、前の手順を繰り返します。
  8. すべてのエンドポイントを追加したら、[作成] をクリックします。

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,port=80' \
        --add-endpoint='instance=vm-a2,port=80'
    

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

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

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

使用可能なリージョンとゾーンについては、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. オンプレミス バックエンド VM のエンドポイントを ON_PREM_NEG_NAME に追加します。

    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. バックエンドのヘルスチェックを作成します。
       gcloud compute health-checks create http HTTP_HEALTH_CHECK_NAME \
           --region=REGION \
           --use-serving-port
       
    ハイブリッド NEG バックエンドのヘルスチェック プローブはプロキシ専用サブネットの Envoy プロキシから発信され、ゾーン NEG バックエンドのプローブは [Google の中央プローブ IP 範囲](/load-balancing/docs/health-check-concepts#ip-ranges)から発信されます。
  2. バックエンド サービスを作成します。このバックエンド サービスに、ゾーン NEG とハイブリッド接続 NEG の両方をバックエンドとして追加します。
      gcloud compute backend-services create BACKEND_SERVICE \
          --load-balancing-scheme=EXTERNAL_MANAGED \
          --protocol=HTTP \
          --health-checks=HTTP_HEALTH_CHECK_NAME \
          --health-checks-region=REGION \
          --region=REGION
      
  3. ゾーン NEG をバックエンドとしてバックエンド サービスに追加します。
    gcloud compute backend-services add-backend BACKEND_SERVICE \
        --region=REGION \
        --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 パラメータをご覧ください。
  4. ハイブリッド NEG をバックエンドとしてバックエンド サービスに追加します。
    gcloud compute backend-services add-backend BACKEND_SERVICE \
        --region=REGION \
        --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
    
    バランシング モードの構成の詳細については、gcloud CLI のドキュメントで --max-rate-per-endpoint パラメータをご覧ください。
  5. 受信リクエストをバックエンド サービスに転送するための URL マップを作成します。
    gcloud compute url-maps create URL_MAP_NAME \
        --default-service BACKEND_SERVICE \
        --region=REGION
    
  6. 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
    
  7. URL マップにリクエストを転送するターゲット HTTP(S) プロキシを作成します。

    HTTP ロードバランサの場合は、HTTP ターゲット プロキシを作成します。
    gcloud compute target-http-proxies create TARGET_HTTP_PROXY_NAME \
        --url-map=URL_MAP_NAME \
        --url-map-region=REGION \
        --region=REGION
    
    HTTPS ロードバランサの場合は、HTTPS ターゲット プロキシを作成します。プロキシはロードバランサの一部であり、HTTPS ロード バランシング用の SSL 証明書を保持するため、この手順で証明書も読み込みます。
    gcloud compute target-https-proxies create TARGET_HTTPS_PROXY_NAME \
        --ssl-certificates=SSL_CERTIFICATE_NAME \
        --url-map=URL_MAP_NAME \
        --url-map-region=REGION \
        --region=REGION
    
  8. 受信リクエストをプロキシに転送する転送ルールを作成します。転送ルールの作成には、プロキシ専用サブネットを使用しないでください。

    HTTP ロードバランサの場合:
      gcloud compute forwarding-rules create HTTP_FORWARDING_RULE_NAME \
          --load-balancing-scheme=EXTERNAL_MANAGED \
          --network=NETWORK \
          --subnet=LB_SUBNET_NAME \
          --address=LB_IP_ADDRESS \
          --ports=80 \
          --region=REGION \
          --target-http-proxy=TARGET_HTTP_PROXY_NAME \
          --target-http-proxy-region=REGION
    
    HTTPS ロードバランサの場合:
      gcloud compute forwarding-rules create HTTPS_FORWARDING_RULE_NAME \
          --load-balancing-scheme=EXTERNAL_MANAGED \
          --network=NETWORK \
          --subnet=LB_SUBNET_NAME \
          --address=LB_IP_ADDRESS \
          --ports=443 \
          --region=REGION \
          --target-http-proxy=TARGET_HTTPS_PROXY_NAME \
          --target-http-proxy-region=REGION
    

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

ロードバランサが作成されたら、ロードバランサに関連付けられた 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

Google Domains を使用している場合は、Google Domains のヘルプで詳細をご確認ください。

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

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

  1. Google Cloud コンソールの [ロード バランシング] ページに移動します。
    [ロード バランシング] に移動
  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 エンドポイントを介して公開したサービスによって異なります。

次のステップ