ハイブリッド接続でリージョン外部プロキシ ネットワーク ロードバランサを設定する

リージョン外部プロキシ ネットワーク ロードバランサは、プロキシベースのリージョン レイヤ 4 ロードバランサであり、外部リージョン IP アドレスの背後にある単一のリージョンで TCP サービス トラフィックを実行し、スケーリングできます。これらのロードバランサは、インターネットから同じリージョンのバックエンドに外部 TCP トラフィックを分散します。

このページでは、ハイブリッド接続で接続されているオンプレミス環境または他のクラウド環境でバックエンドにトラフィックをロードバランスするように、リージョン外部プロキシ ネットワーク ロードバランサを構成する方法について説明します。ネットワークを Google Cloud に接続するためのハイブリッド接続の構成は、このページの対象外です。

開始する前に、外部プロキシ ネットワーク ロードバランサの概要をご覧ください。

この例では、ロードバランサを使用して、オンプレミスまたは他のクラウド環境にあるバックエンド VM に TCP トラフィックを分散します。

この例では、次の図に示すデプロイメントを構成します。

ハイブリッド NEG バックエンドがある外部プロキシ ネットワーク ロードバランサの構成例
ハイブリッド NEG バックエンドがある外部プロキシ ネットワーク ロードバランサの構成例

これはリージョン ロードバランサです。すべてのロードバランサ コンポーネント(バックエンド インスタンス グループ、バックエンド サービス、ターゲット プロキシ、転送ルール)は、同じリージョンに配置されている必要があります。

権限

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

  • 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)を使用します。このネットワークから任意のサブネットを選択して、ロードバランサの IP アドレスを予約し、ロードバランサを作成できます。この手順では、このサブネットを LB_SUBNET とします。

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

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

プロキシ専用サブネットには、Google がユーザーに代わって Envoy プロキシを実行する際に使用する一連の IP アドレスが用意されています。このプロキシは、クライアントからの接続を終端し、バックエンドへの新しい接続を作成します。

このプロキシ専用サブネットは、VPC ネットワーク(NETWORK)のリージョン(REGION)内のすべての Envoy ベースのリージョン ロードバランサで使用されます。

リージョンごと、VPC ネットワークごとにアクティブなプロキシ専用サブネットは 1 つだけです。このリージョンにプロキシ専用サブネットがすでに存在する場合は、この手順をスキップできます。

コンソール

Google Cloud コンソールを使用している場合は、しばらく待ってから、[ロード バランシング] ページでプロキシ専用サブネットを作成できます。

プロキシ専用サブネットを今すぐ作成する場合は、次の操作を行います。

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

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

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

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

  4. [名前] に「proxy-only-subnet」と入力します。

  5. [リージョン] で、us-west1 を選択します。

  6. [目的] を [リージョン マネージド プロキシ] に設定します。

  7. [IP アドレス範囲] に「10.129.0.0/23」と入力します。

  8. [追加] をクリックします。

gcloud

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

gcloud compute networks subnets create proxy-only-subnet \
    --purpose=REGIONAL_MANAGED_PROXY \
    --role=ACTIVE \
    --region=us-west1 \
    --network=NETWORK \
    --range=10.129.0.0/23

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

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

コンソール

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

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

  2. 新しいアドレスの名前を指定します。

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

  4. [IP バージョン] で [IPv4] を選択します。IPv6 アドレスはサポートされません。

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

  6. [リージョン] で us-west1 を選択します。

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

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

gcloud

  1. 静的外部 IP アドレスを予約するには、gcloud compute addresses create コマンドを使用します。

    gcloud compute addresses create ADDRESS_NAME  \
       --region=us-west1 \
       --network-tier=STANDARD
    

    ADDRESS_NAME は、このアドレスに付ける名前に置き換えます。

  2. 結果を表示するには、gcloud compute addresses describe コマンドを使用します。

    gcloud compute addresses describe ADDRESS_NAME
    

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

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

さらに、NEG の作成に使用するゾーンは、Cloud VPN トンネルまたは Cloud Interconnect VLAN アタッチメントがハイブリッド接続用に構成されているリージョンと同じリージョンにする必要があります。

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

コンソール

ハイブリッド接続 NEG を作成する

  1. Google Cloud コンソールで、[ネットワーク エンドポイント グループ] ページに移動します。

    [ネットワーク エンドポイント グループ] に移動

  2. [ネットワーク エンドポイント グループを作成] をクリックします。

  3. [名前] に「HYBRID_NEG_NAME」と入力します。

  4. [ネットワーク エンドポイント グループの種類] で、[ハイブリッド接続ネットワーク エンドポイント グループ(ゾーン)] を選択します。

  5. [ネットワーク] で NETWORK を選択します。

  6. [サブネット] で LB_SUBNET を選択します。

  7. [ゾーン] で [HYBRID_NEG_ZONE] を選択します。

  8. [デフォルト ポート] で、デフォルトを選択します。

  9. [最大接続数] に「2」と入力します。

  10. [作成] をクリックします。

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

  1. Google Cloud コンソールで、[ネットワーク エンドポイント グループ] ページに移動します。

    [ネットワーク エンドポイント グループ] に移動

  2. 前の手順で作成したネットワーク エンドポイント グループ(HYBRID_NEG_NAME)の名前をクリックします。

  3. [ネットワーク エンドポイント グループの詳細] ページの [このグループのネットワーク エンドポイント] セクションで、[ネットワーク エンドポイントを追加] をクリックします。

  4. [ネットワーク エンドポイントを追加] ページで、新しいネットワーク エンドポイントの IP アドレスを入力します。

  5. ポートタイプを選択します。

    • [デフォルト] を選択すると、エンドポイントはネットワーク エンドポイント グループのすべてのエンドポイントにデフォルト ポートを使用します。
    • [カスタム] を選択すると、使用するエンドポイントに異なるポート番号を入力できます。
  6. 他のエンドポイントを追加するには、[ネットワーク エンドポイントを追加] をクリックし、前の手順を繰り返します。

  7. Google Cloud 以外のエンドポイントをすべて追加したら、[作成] をクリックします。

gcloud

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

    gcloud compute network-endpoint-groups create HYBRID_NEG_NAME \
        --network-endpoint-type=NON_GCP_PRIVATE_IP_PORT \
        --zone=HYBRID_NEG_ZONE \
        --network=NETWORK
     
  2. オンプレミス IP:Port エンドポイントをハイブリッド NEG に追加します。

    gcloud compute network-endpoint-groups update HYBRID_NEG_NAME \
        --zone=HYBRID_NEG_ZONE \
        --add-endpoint="ip=ENDPOINT_IP_ADDRESS,port=ENDPOINT_PORT"
    

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

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

ロードバランサの構成

コンソール

構成を開始する

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

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

  2. [ロードバランサを作成] をクリックします。
  3. [ロードバランサの種類] で [ネットワーク ロードバランサ(TCP / UDP / SSL)] を選択し、[次へ] をクリックします。
  4. [プロキシまたはパススルー] で [プロキシ ロードバランサ] を選択し、[次へ] をクリックします。
  5. [インターネット接続または内部] で [インターネット接続(外部)] を選択し、[次へ] をクリックします。
  6. [グローバルまたはシングル リージョンのデプロイ] で [リージョン ワークロードに最適] を選択し、[次へ] をクリックします。
  7. [構成] をクリックします。

基本構成

  1. [名前] に、ロードバランサの名前を入力します。
  2. [リージョン] で REGION を選択します。
  3. [ネットワーク] で NETWORK を選択します。

プロキシ専用サブネットを予約する

  1. [サブネットを予約] をクリックします。
  2. [名前] に「proxy-only-subnet」と入力します。
  3. [IP アドレス範囲] に「10.129.0.0/23」と入力します。
  4. [追加] をクリックします。

バックエンドを構成する

  1. [バックエンドの構成] をクリックします。
  2. [バックエンド タイプ] で、[ハイブリッド接続ネットワーク エンドポイント グループ(ゾーン)] を選択します。
  3. [プロトコル] で、[TCP] を選択します。
  4. [新しいバックエンド] で、以前に作成したハイブリッド NEG(HYBRID_NEG_NAME)を選択します。[ネットワーク エンドポイント グループを作成] をクリックして、ハイブリッド NEG を今すぐ作成することもできます。NEG の構成方法については、ハイブリッド NEG の設定をご覧ください。
  5. 残りのデフォルト値は変更せずに、[完了] をクリックします。
  6. ヘルスチェックを構成します。
    • [ヘルスチェック] で [ヘルスチェックを作成] を選択します。
    • [名前] に、ヘルスチェックの名前を入力します。
    • [プロトコル] で、[TCP] を選択します。
    • [ポート] に「80」と入力します。
  7. 残りのデフォルト値は変更せずに、[保存] をクリックします。
  8. Google Cloud コンソールで、[バックエンドの構成] の横にチェックマークが表示されていることを確認します。チェックマークがない場合は、すべての手順を完了したことを再度確認します。

フロントエンドを構成する

  1. [フロントエンドの構成] をクリックします。
  2. [名前] に、転送ルールの名前を入力します。
  3. [IP アドレス] で [LB_IP_ADDRESS] を選択します。
  4. [ポート番号] に、1~65535 のポート番号を入力します。転送ルールは、宛先ポートが一致するパケットのみを転送します。
  5. [プロキシのプロトコル] は、オンプレミスまたは他のクラウド エンドポイントで実行されているサービスで動作する場合にのみ有効にします。たとえば、PROXY プロトコルは Apache HTTP Server ソフトウェアでは動作しません。詳細については、PROXY プロトコルをご覧ください。
  6. [完了] をクリックします。
  7. Google Cloud Console で、[フロントエンドの構成] の横にチェックマークがあることを確認します。チェックマークがない場合には、前のすべてのステップが完了していることを再度確認してください。

確認と完了

  1. [確認と完了] をクリックします。
  2. 設定を再度確認します。
  3. [作成] をクリックします。

gcloud

  1. バックエンドのリージョン ヘルスチェックを作成します。

    gcloud compute health-checks create tcp TCP_HEALTH_CHECK_NAME \
        --region=REGION \
        --use-serving-port
    
  2. バックエンド サービスを作成します。

    gcloud compute backend-services create BACKEND_SERVICE_NAME \
       --load-balancing-scheme=EXTERNAL_MANAGED \
       --protocol=TCP \
       --region=REGION \
       --health-checks=TCP_HEALTH_CHECK_NAME \
       --health-checks-region=REGION
    
  3. ハイブリッド NEG バックエンドをバックエンド サービスに追加します。

    gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \
       --network-endpoint-group=HYBRID_NEG_NAME \
       --network-endpoint-group-zone=HYBRID_NEG_ZONE \
       --region=REGION \
       --balancing-mode=CONNECTION \
       --max-connections=MAX_CONNECTIONS
    

    MAX_CONNECTIONS には、バックエンドで処理する最大同時接続数を入力します。

  4. ターゲット TCP プロキシを作成します。

    gcloud compute target-tcp-proxies create TARGET_TCP_PROXY_NAME \
       --backend-service=BACKEND_SERVICE_NAME \
       --region=REGION
    
  5. 転送ルールを作成します。gcloud compute forwarding-rules create コマンドを使用します。FWD_RULE_PORT は、1~65535 の単一のポート番号に置き換えます。転送ルールは、宛先ポートが一致するパケットのみを転送します。

    gcloud compute forwarding-rules create FORWARDING_RULE \
       --load-balancing-scheme=EXTERNAL_MANAGED \
       --network=NETWORK \
       --subnet=LB_SUBNET \
       --address=LB_IP_ADDRESS \
       --ports=FWD_RULE_PORT \
       --region=REGION \
       --target-tcp-proxy=TARGET_TCP_PROXY_NAME \
       --target-tcp-proxy-region=REGION
    

ロードバランサのテスト

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

  1. ロードバランサの IP アドレスを取得します。

    IPv4 アドレスを取得するには、次のコマンドを実行します。

    gcloud compute addresses describe ADDRESS_NAME
    
  2. 次のコマンドを実行して、トラフィックをロードバランサに送信します。LB_IP_ADDRESS は、ロードバランサの IPv4 アドレスに置き換えます。

    curl -m1 LB_IP_ADDRESS:FWD_RULE_PORT
    

次のステップ