外部バックエンドを使用するリージョン内部アプリケーション ロードバランサを設定する

このガイドでは、外部バックエンドにリクエストをプロキシするリージョン内部アプリケーション ロードバランサの構成方法について説明します。外部バックエンドは Google Cloud の外部にあるエンドポイントです。

このガイドに進む前に、インターネット NEG の概要制限事項を含む)を理解しておいてください。

次のアーキテクチャ図は、外部バックエンドを使用するリージョン内部アプリケーション ロードバランサのフロントエンドを示しています。

外部バックエンドを使用するリージョン内部アプリケーション ロードバランサ。
図 1. 外部バックエンドを使用するリージョン内部アプリケーション ロードバランサ(クリックして拡大)

権限

このガイドに記載された操作を行う前に、インターネット NEG を作成し、プロジェクト内のアプリケーション ロードバランサを作成するか、変更しておく必要があります。そのためには、プロジェクトのオーナーまたは編集者roles/owner または roles/editor)であるか、次の Compute Engine IAM のロールがすべて必要です。

タスク 必要なロール
ロードバランサ コンポーネントの作成と変更 Compute ネットワーク管理者
roles/compute.networkAdmin
NEG の作成と変更 Compute インスタンス管理者
roles/compute.instanceAdmin

Google Cloud の外部で外部バックエンド環境を設定する

外部バックエンド環境を設定するには、次のセクションをご覧ください。

ネットワーク エンドポイントを構成する

外部バックエンドを Google Cloud に公開するようにネットワーク エンドポイントを構成します。IP:Port の組み合わせ、または完全修飾ドメイン名(FQDN)とポートのいずれかが、インターネット経由で到達可能であることを確認します。このエンドポイントは、後でインターネット NEG から参照されます。

インターネット NEG エンドポイントの構成要件の詳細については、インターネット NEG の概要をご覧ください。

外部バックエンドに Google Cloud からのトラフィックの受信を許可する

この手順は、プロキシ専用サブネットを作成し、Cloud NAT ゲートウェイを設定してから完了できます。

Google Cloud からのリクエストが外部バックエンドに到達できるようにするには、次の操作を行う必要があります。

  1. Google Cloud からの下り(外向き)トラフィックに使用される IP アドレスを使用して Cloud NAT ゲートウェイを構成します。ゲートウェイは、プロキシ専用サブネットの範囲を外部 IP アドレスにマッピングします。手順については、Cloud NAT ゲートウェイを設定するをご覧ください。
  2. Google Cloud からのトラフィックが外部バックエンドに到達できるように、外部バックエンド環境が構成されていることを確認します。たとえば、NAT ゲートウェイに事前予約した IP アドレスを使用した場合は、外部環境でこれらの IP アドレスを許可リストに登録します。この設定を行うには、外部環境のネットワーク管理者またはセキュリティ管理者との連携が必要になる場合があります。

Google Cloud 環境を設定する

2 つのサブネット(ロードバランサ コンポーネント用のサブネットと、リージョンのプロキシ専用サブネット)を持つ VPC ネットワークが必要です。次に、インターネット NEG バックエンドを使用するロードバランサを作成します。

VPC ネットワークとサブネットを作成する

このサブネットは、ロードバランサのコンポーネントの作成に使用されます。

Cloud コンソール

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

gcloud

  1. gcloud compute networks create コマンドを使用して、カスタム VPC ネットワークを作成します。

    gcloud compute networks create LB_NETWORK \
      --subnet-mode=custom
    
  2. LB_NETWORK ネットワークにサブネットを作成します。

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

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

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

コンソール

  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=LB_NETWORK \
  --range=PROXY_ONLY_SUBNET_RANGE

Cloud NAT ゲートウェイを設定する

Cloud NAT ゲートウェイを構成する前に、関連する制限事項と料金に関する考慮事項を確認してください。詳細については、リージョン NEG: Cloud NAT ゲートウェイを使用するをご覧ください。

次のコマンドは、Cloud NAT ゲートウェイを設定する方法を示しています。Cloud NAT ゲートウェイは、自動 NAT の外部 IP アドレス(オンデマンドで割り当て)を使用するか、手動で事前予約された一連の外部 IP アドレスを使用するように構成できます。ゲートウェイは、プロキシ専用サブネットの範囲を外部 IP アドレスにマッピングします。

自動 NAT 割り振り IP アドレスを設定する

NAT IP アドレスの自動割り振りを使用して Cloud NAT ゲートウェイを作成する場合、Cloud NAT ゲートウェイが IP アドレスを割り振る Network Service Tiers(プレミアム ティアまたはスタンダード ティア)を指定できます。

コンソール

  1. Google Cloud コンソールで、[Cloud NAT] ページに移動します。

    [Cloud NAT] に移動

  2. [開始] または [Cloud NAT ゲートウェイを作成] をクリックします。

  3. ゲートウェイ名 LB_NAT_CONFIG を入力します。

  4. [NAT タイプ] で [公開] を選択します。

  5. [ネットワーク] リストで、[LB_NETWORK] を選択します。

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

  7. リージョンに Cloud Router を作成します。

  8. [送信元エンドポイントのタイプ] で、[マネージド プロキシ ロードバランサ] を選択します。

  9. [ソース] リストで [カスタム] を選択します。

    • [サブネット] で [PROXY_ONLY_SUBNET_NAME] を選択します。
  10. [Cloud NAT IP アドレス] リストで、[自動(推奨)] を選択します。

  11. [ネットワーク サービス ティア] で、[プレミアム] と [スタンダード] のどちらかを選択します。

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

gcloud

外部バックエンド環境でトラフィックを外部バックエンドに送信できる特定の Google Cloud IP アドレスを許可リストに登録する必要がない場合は、動的に割り振られる IP アドレスを使用します。

  1. Cloud Router を作成します。

    gcloud beta compute routers create ROUTER_NAME \
      --network=LB_NETWORK \
      --region=REGION
  2. Cloud NAT ゲートウェイを設定します。

    gcloud beta compute routers nats create LB_NAT_CONFIG \
      --router=ROUTER_NAME \
      --endpoint-types=ENDPOINT_TYPE_MANAGED_PROXY_LB \
      --nat-custom-subnet-ip-ranges=PROXY_ONLY_SUBNET_NAME \
      --auto-allocate-nat-external-ips \
      --region=REGION
    

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

  • LB_NAT_CONFIG: NAT 構成の名前。

  • ROUTER_NAME: Cloud Router の名前。

  • REGION: 作成する NAT のリージョン。指定しない場合、リージョンの選択を求められる場合があります(インタラクティブ モードのみ)。

  • PROXY_ONLY_SUBNET_NAME: プロキシ専用サブネットの名前。

手動で割り振られた IP アドレスを設定する

手動で割り振られた IP アドレスは、外部バックエンド環境で特定の Google Cloud IP アドレスの許可リストを使用する必要がある場合にのみ使用します。外部バックエンド環境で許可リストが必要ない場合は、前述のように動的割り振りを使用します。

Cloud NAT ゲートウェイを作成するときに、特定の条件に応じて、プレミアム ティア、スタンダード ティア、またはその両方から NAT IP アドレスの手動割り当てを選択できます。

コンソール

  1. Google Cloud コンソールで、[Cloud NAT] ページに移動します。

    [Cloud NAT] に移動

  2. [開始] または [Cloud NAT ゲートウェイを作成] をクリックします。

  3. ゲートウェイ名 LB_NAT_CONFIG を入力します。

  4. [ネットワーク] リストで、[LB_NETWORK] を選択します。

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

  6. リージョンの Cloud Router を選択または作成します。

  7. [送信元エンドポイントのタイプ] で、[マネージド プロキシ ロードバランサ] を選択します。

  8. [ソース] リストで [カスタム] を選択します。

    • [サブネット] で [PROXY_ONLY_SUBNET_NAME] を選択します。
  9. [Cloud NAT IP アドレス] リストで、[手動] を選択します。

  10. [ネットワーク サービス ティア] で、[プレミアム] と [スタンダード] のどちらかを選択します。

  11. NAT に使用する予約された静的外部 IP アドレスを選択または作成します。

  12. 追加の IP アドレスを指定する場合は、[IP アドレスを追加] をクリックし、予約した静的外部 IP アドレスを選択または作成します。

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

gcloud

  1. IP アドレスを作成します。ゲートウェイは 1 対 1 の NAT 変換を行うため、予約された IP アドレスのプールが予想されるトラフィック量の処理に十分な大きさであることを確認する必要があります。NAT IP アドレスの割り振りが不十分な場合、トラフィックが失われる可能性があります。

    gcloud compute addresses create IP_ADDRESS_NAME_1 IP_ADDRESS_NAME_2 [IP_ADDRESS_NAME_3 ...] \
      --region=REGION
    
  2. Cloud Router を作成します。

    gcloud compute routers create ROUTER_NAME \
      --network=LB_NETWORK \
      --region=REGION
  3. Cloud NAT ゲートウェイを設定します。

    gcloud beta compute routers nats create LB_NAT_CONFIG \
      --router=ROUTER_NAME \
      --endpoint-types=ENDPOINT_TYPE_MANAGED_PROXY_LB \
      --nat-custom-subnet-ip-ranges=PROXY_ONLY_SUBNET_NAME \
      --nat-external-ip-pool=IP_ADDRESS_NAME_1,IP_ADDRESS_NAME_2,[IP_ADDRESS_NAME_3 ...] \
      --region=REGION
    

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

  • LB_NAT_CONFIG: NAT 構成の名前。

  • ROUTER_NAME: Cloud Router の名前。

  • PROXY_ONLY_SUBNET_NAME: プロキシ専用サブネットの名前。

  • REGION: 作成する NAT のリージョン。指定しない場合、リージョンの選択を求められる場合があります(インタラクティブ モードのみ)。

詳細については、Cloud NAT のドキュメントの NAT のサブネット範囲を指定するをご覧ください。

外部バックエンドが Google Cloud からのトラフィックを受信できるように、外部バックエンド環境で NAT IP アドレス範囲の許可リストを使用してください。

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

ロードバランサの内部 IP アドレスを予約します。

コンソール

Google Cloud コンソールを使用してスタンドアロンの内部 IP アドレスを予約できます。

  1. [VPC ネットワーク] ページに移動します。

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

  2. 環境間のハイブリッド接続の構成に使用したネットワークをクリックします。
  3. [静的内部 IP アドレス] をクリックして、[静的アドレスを予約] をクリックします。
  4. 名前LB_IP_ADDRESS)を入力します。
  5. [サブネット] で [LB_SUBNET_NAME] を選択します。
  6. 予約する IP アドレスを指定する場合は、[静的 IP アドレス] の下で、[自分で選択] を選択し、[カスタム IP アドレス] に入力します。それ以外の場合、サブネットの IP アドレスは自動的に割り当てられます。
  7. この IP アドレスを複数の転送ルールで使用する場合は、[目的] で [共有] を選択します。
  8. [予約] をクリックして、プロセスを終了します。

gcloud

  1. gcloud CLI を使用して compute addresses create コマンドを実行します。

    gcloud compute addresses create LB_IP_ADDRESS \
      --region=REGION \
      --subnet=LB_SUBNET_NAME
    
  2. 割り振られた IP アドレスを表示するには、compute addresses describe コマンドを使用します。

    gcloud compute addresses describe LB_IP_ADDRESS \
      --region=REGION
    

インターネット NEG を設定する

インターネット NEG は、INTERNET_FQDN_PORT エンドポイントまたは INTERNET_IP_PORT エンドポイントを使用して作成できます。

コンソール

INTERNET_FQDN_PORT エンドポイントを含む NEG を作成する

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

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

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

  3. インターネット NEG の INTERNET_NEG_NAME を指定します。詳しくは、リソースの命名規則をご覧ください。

  4. [ネットワーク エンドポイント グループの種類] リストで、[ネットワーク エンドポイント グループ(インターネット)] を選択して、次の操作を行います。

    • [範囲] リストで、[リージョン] を選択します。
    • 省略可: [リージョン] リストで、この NEG の REGION を変更します。
    • [ネットワーク] リストで、[LB_NETWORK] を選択します。
    • [デフォルト ポート] ボックスに「DEFAULT_PORT_NUMBER」と入力します。
    • [エンドポイントの追加] リストで、[完全修飾ドメイン名とポート] を選択します。
  5. [作成] を選択します。

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

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

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

  2. [INTERNET_NEG_NAME] をクリックします。
  3. 完全修飾ドメイン名を入力します(myorg.example.com など)。FQDN オブジェクトは、標準の FQDN 構文で指定する必要があります。

  4. 省略可: [ポートタイプ] で [カスタム] を選択します。[ポートタイプ] が Default の場合、NEG のデフォルト ポートが使用されます。

  5. [ポート番号] ボックスに「PORT_NUMBER_1」と入力します。
  6. [作成] を選択します。

INTERNET_IP_PORT エンドポイントを含む NEG を作成する

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

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

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

  3. インターネット NEG の名前 INTERNET_NEG_NAME を指定します。詳しくは、リソースの命名規則をご覧ください。

  4. [ネットワーク エンドポイント グループの種類] リストで、[ネットワーク エンドポイント グループ(インターネット)] を選択して、次の操作を行います。

    • [範囲] リストで、[リージョン] を選択します。
    • 省略可: [リージョン] リストで、この NEG の REGION を変更します。
    • [ネットワーク] リストで、[LB_NETWORK] を選択します。
    • [デフォルト ポート] ボックスに「DEFAULT_PORT_NUMBER」と入力します。
    • [エンドポイントの追加] リストで、[IP とポート] を選択します。
  5. [作成] を選択します。

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

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

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

  2. [INTERNET_NEG_NAME] をクリックします。
  3. [IP アドレス] フィールドに「IP_ADDRESS_1」と入力します。
  4. 省略可: [ポートタイプ] リストで、[カスタム] を選択します。[ポートタイプ] が Default の場合、NEG のデフォルト ポートが使用されます。

  5. [ポート番号] フィールドに「PORT_NUMBER_1」と入力します。
  6. [作成] を選択します。

gcloud

INTERNET_FQDN_PORT エンドポイントを含む NEG を作成するには:

  1. NEG リソースを作成します。

    gcloud beta compute network-endpoint-groups create INTERNET_NEG_NAME \
        --network-endpoint-type=INTERNET_FQDN_PORT \
        --default-port=DEFAULT_PORT_NUMBER \
        --network=LB_NETWORK \
        --region=REGION
    
  2. エンドポイントを NEG に追加します。ポートが指定されていない場合は、NEG のデフォルト ポートが使用されます。

    gcloud beta compute network-endpoint-groups update INTERNET_NEG_NAME \
        --add-endpoint="fqdn=FULLY_QUALIFIED_DOMAIN_NAME_1,port=PORT_NUMBER_1" \
        [--add-endpoint="fqdn=FULLY_QUALIFIED_DOMAIN_NAME_2,port=PORT_NUMBER_2" \]
        --region=REGION
    

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

    • FULLY_QUALIFIED_DOMAIN_NAME: エンドポイントの完全修飾ドメイン名
    • PORT_NUMBER: エンドポイントのポート番号

    NEG ごとに最大 256 個のエンドポイントを追加できます。

ドメインがインターネット経由で解決できる場合は、DNS の設定に他の構成は必要ありません。ただし、プライベート FQDN を使用している場合は、DNS の解決が容易になるように Cloud DNS を構成する必要があります。この名前は Cloud DNS でホストされているか、Cloud DNS からオンプレミス DNS への DNS 転送によって解決できる必要があります。

まず、プロジェクトで DNS レコードをホストする Cloud DNS ゾーンを作成します。次に、DNS レコードを追加します。具体的な構成手順については、Cloud DNS のドキュメントをご覧ください。

INTERNET_IP_PORT エンドポイントを含む NEG を作成するには:

  1. NEG リソースを作成します。

    gcloud beta compute network-endpoint-groups create INTERNET_NEG_NAME \
        --network-endpoint-type=INTERNET_IP_PORT \
        --default-port=DEFAULT_PORT_NUMBER \
        --network=LB_NETWORK \
        --region=REGION
    
  2. エンドポイントを NEG に追加します。ポートが指定されていない場合は、NEG のデフォルト ポートが使用されます。

    gcloud beta compute network-endpoint-groups update INTERNET_NEG_NAME \
        --add-endpoint="ip=IP_ADDRESS_1,port=PORT_NUMBER_1" \
        [--add-endpoint="ip=IP_ADDRESS_2,port=PORT_NUMBER_2" \]
        --region=REGION
    

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

    • IP_ADDRESS: エンドポイントの IP アドレス
    • PORT_NUMBER: エンドポイントのポート番号

    この手順を繰り返して、NEG ごとに最大 256 個のエンドポイントを追加できます。

ロードバランサを作成する

コンソール

構成を開始する

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

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

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

基本構成

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

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

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

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

フロントエンドの構成

  1. [フロントエンドの構成] をクリックします。
  2. [名前] を入力します。
  3. [サブネットワーク] で、[LB_SUBNET_NAME] を選択します。
  4. HTTPS ロードバランサを作成するには、SSL 証明書が必要です。Google マネージド証明書を使用することをおすすめします。

    プロパティ 値(値を入力するか、指定されたオプションを選択)
    プロトコル HTTPS
    IP バージョン IPv4
    IP アドレス 以前に予約した IP アドレス(LB_IP_ADDRESS)を選択します。
    ポート 443
    証明書

    既存の SSL 証明書を選択するか、新しい証明書を作成します。

    HTTPS ロードバランサを作成するには、HTTPS プロキシで使用する SSL 証明書リソースが必要です。

    SSL 証明書リソース(または Google マネージド証明書によって必要とされるドメイン)を設定せずにこのプロセスをテストする場合は、HTTP ロードバランサを設定できます。

    HTTP ロードバランサを作成するには、次のオプションがこれらの値で構成されていることを確認します。

    プロパティ 値(値を入力するか、指定されたオプションを選択)
    プロトコル HTTP
    IP バージョン IPv4
    IP アドレス 以前に予約した IP アドレス(LB_IP_ADDRESS)を選択します。
    ポート 80
  5. [完了] をクリックします。

バックエンドの構成

  1. [バックエンドの構成] をクリックします。
  2. バックエンド サービスとバックエンド バケットをクリックします。
  3. [バックエンド サービスを作成] をクリックします。
  4. 名前を入力します。
  5. [バックエンド タイプ] で [インターネット ネットワーク エンドポイント グループ] を選択します。
  6. [プロトコル] で、ロードバランサからインターネット NEG に接続するプロトコルを選択します。
  7. [バックエンド] の [新しいバックエンド] ウィンドウで、前の手順で作成したリージョン インターネット ネットワーク エンドポイント グループを選択します。
  8. [完了] をクリックします。
  9. ヘルスチェックを構成します。
    1. [ヘルスチェック] で [ヘルスチェックを作成] を選択します。
    2. ヘルスチェックの名前を HTTP_HEALTH_CHECK_NAME に設定します。
    3. [プロトコル] で [HTTP] を選択します。
    4. [ポート] を 80 に設定します。
  10. [作成] をクリックします。

確認と完了

  1. [確認と完了] をクリックします。
  2. 設定に問題がない場合は、[作成] をクリックします。

gcloud

  1. 省略可: ヘルスチェックを作成します。外部バックエンドのヘルスチェック プローブは分散 Envoy ヘルスチェックを使用し、後で NAT 変換されます。
    gcloud compute health-checks create http HTTP_HEALTH_CHECK_NAME \
        --region=REGION \
        --use-serving-port
    
  2. バックエンド サービスを作成します。
    gcloud compute backend-services create BACKEND_SERVICE \
        --load-balancing-scheme=INTERNAL_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 \
        --network-endpoint-group=INTERNET_NEG_NAME \
        --network-endpoint-group-region=REGION \
        --region=REGION
    
  4. 受信リクエストをバックエンド サービスに転送するための URL マップを作成します。
    gcloud compute url-maps create URL_MAP_NAME \
        --default-service=BACKEND_SERVICE \
        --region=REGION
    
  5. 省略可: この手順は、クライアントとロードバランサ間で HTTPS を使用している場合に行います。HTTP ロードバランサの場合、必須ではありません。

    Compute Engine または Certificate Manager の証明書を作成できます。Certificate Manager を使用して証明書を作成するには、次のいずれかの方法を使用します。

    • リージョン セルフマネージド証明書。リージョン セルフマネージド証明書の作成と使用については、リージョン セルフマネージド証明書をデプロイするをご覧ください。証明書マップはサポートされていません。

    • リージョンの Google マネージド証明書。証明書マップはサポートされていません。

      Certificate Manager では、次のタイプのリージョン Google マネージド証明書がサポートされています。

    • 証明書を作成したら、証明書をターゲット プロキシに直接関連付けます。

      Compute Engine セルフマネージド SSL 証明書リソースを作成するには:
      gcloud compute ssl-certificates create SSL_CERTIFICATE_NAME \
          --certificate CRT_FILE_PATH \
          --private-key KEY_FILE_PATH
      
    • URL マップにリクエストを転送するターゲット HTTP(S) プロキシを作成します。

      HTTP ロードバランサの場合は、HTTP ターゲット プロキシを作成します。

      gcloud compute target-http-proxies create TARGET_HTTP_PROXY_NAME \
          --url-map=URL_MAP_NAME \
          --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 \
          --region=REGION
      
    • 受信リクエストをプロキシに転送する転送ルールを作成します。

      HTTP ロードバランサの場合:

      gcloud compute forwarding-rules create HTTP_FORWARDING_RULE_NAME \
          --load-balancing-scheme=INTERNAL_MANAGED \
          --network-tier=PREMIUM \
          --network=LB_NETWORK \
          --subnet=LB_SUBNET_NAME \
          --address=LB_IP_ADDRESS \
          --target-http-proxy=TARGET_HTTP_PROXY_NAME \
          --target-http-proxy-region=REGION \
          --region=REGION \
          --ports=80
      

      HTTPS ロードバランサの場合:

      gcloud compute forwarding-rules create HTTPS_FORWARDING_RULE_NAME \
          --load-balancing-scheme=INTERNAL_MANAGED \
          --network-tier=PREMIUM \
          --network=LB_NETWORK \
          --subnet=LB_SUBNET_NAME \
          --address=LB_IP_ADDRESS \
          --target-https-proxy=TARGET_HTTPS_PROXY_NAME \
          --target-http-proxy-region=REGION \
          --region=REGION \
          --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 アドレスにトラフィックを送信できるようになりました。

クライアント VM を作成する

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

gcloud

クライアント VM はロードバランサと同じ REGION 内の任意のゾーンにあり、同じ VPC ネットワーク内の任意のサブネットを使用できます。

gcloud compute instances create vm-client \
    --image-family=debian-10 \
    --image-project=debian-cloud \
    --tags=allow-ssh \
    --network=LB_NETWORK \
    --subnet=LB_SUBNET_NAME \
    --zone=ZONE

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

ロードバランサの構成が最初にデプロイされた後、構成が反映されるまでには数分かかることがあります。

  • SSH を使用してクライアント インスタンスに接続します。

    gcloud compute ssh vm-client \
      --zone=ZONE
    
  • 外部バックエンドで実行されているアプリケーションにロードバランサが想定どおり接続していることを確認します。

    HTTP テストの場合は、次のコマンドを実行します。

    curl IP_ADDRESS
    

    HTTPS テストの場合は、次のコマンドを実行します。

    curl -k -s 'https://TEST_DOMAIN_URL:443' --connect-to TEST_DOMAIN_URL:443:IP_ADDRESS:443
    

    TEST_DOMAIN_URL は、アプリケーションに関連付けられているドメインに置き換えます。例: test.example.com

    -k フラグを指定すると、curl は証明書の検証をスキップします。

追加構成

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

グローバル アクセス(クライアントが別のリージョンにある場合)など、リージョン内部アプリケーション ロードバランサでさらに多くの機能を有効にするには、VM インスタンス グループのバックエンドを使用して内部アプリケーション ロードバランサを設定する: 追加の構成をご覧ください。

カスタム ヘッダーを使用してリクエストを認証する

外部バックエンドに送信されるリクエストを認証するには、Google Cloud ロードバランサからのリクエストであることを示すカスタム ヘッダーを設定します。また、Google Cloud からのトラフィックにこのカスタム ヘッダーが使用されるように、外部バックエンドを構成する必要があります。

カスタム ヘッダーの設定方法については、高度なトラフィック管理を設定するをご覧ください。

他の認証方法については、外部バックエンドへのリクエストを認証するをご覧ください。

クライアント 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 \
         --region=REGION
      

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

      gcloud compute target-https-proxies update TARGET_HTTP_PROXY_NAME \
         --http-keep-alive-timeout-sec=HTTP_KEEP_ALIVE_TIMEOUT_SEC \
         --region REGION
      

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

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

次のステップ