公開サービス バックエンドとエンドポイントを介して公開サービスにアクセスする

サポートされているロードバランサまたはリージョン Cloud Service Mesh を構成して、Private Service Connect エンドポイントを介して公開サービスにトラフィックをルーティングできます。これを行うには、リージョン バックエンド サービスをサービス アタッチメントに関連付けます。この構成は、公開サービス バックエンドと呼ばれます。

このページでは、ロードバランサの公開サービス バックエンドを構成する方法について説明します。リージョン Cloud Service Mesh の公開サービス バックエンドの構成については 、 Cloud Service Mesh の公開サービス バックエンドを構成するをご覧ください。

公開サービス バックエンドは、プロデューサーとコンシューマー VPC ネットワークが同じ 組織に属している場合にのみサポートされます。

始める前に

  • 公開サービス バックエンドについて確認する。
  • サービスをホストするプロデューサー VPC ネットワークが、公開サービス バックエンドを構成するコンシューマー ネットワークと同じ組織に属していることを確認します。
  • アクセスするサービスのサービス アタッチメントを特定します。
  • アクセスするサービスに接続する Private Service Connect エンドポイントを特定または作成します。このエンドポイントは、コンシューマー ロードバランサと同じリージョンに存在する必要があります。
  • 公開サービス バックエンドをサポートするコンシューマー ロードバランサを特定または作成します。 :
    • ロードバランサの転送ルールとバックエンド サービスは、サービス アタッチメントと、サービスに接続する Private Service Connect エンドポイントと同じリージョンに存在する必要があります。
    • 新しいロードバランサを作成する場合は、ロードバランサのバックエンド サービスにバックエンドを追加しないでください。公開サービス バックエンドを構成するときに追加します。
  • プロジェクトで Compute Engine API を有効にします。

必要なロール

Private Service Connect エンドポイントのロード バランシングを構成するために必要な権限を取得するには、プロジェクトに対するCompute ロードバランサ管理者 roles/compute.loadBalancerAdmin)IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織に対するアクセス権の管理をご覧ください。

必要な権限は、カスタム ロールや他の事前定義 ロールから取得することもできます。

公開サービス バックエンドをコンシューマー ロードバランサに追加する

公開サービス バックエンドを作成するには、ロードバランサのリージョン バックエンド サービスをサービス アタッチメントに関連付けます。ロードバランサをエンドポイントに明示的に関連付けることはありません。代わりに、クライアントがロードバランサにリクエストを送信すると、ロードバランサはサービス アタッチメントに接続する ACCEPTED Private Service Connect エンドポイントを介してトラフィックをルーティングします。

gcloud

gcloud beta compute backend-services add-backend コマンドを使用します。

gcloud beta compute backend-services add-backend BACKEND_SERVICE \
    --region=REGION \
    --service=//compute.googleapis.com/projects/PROJECT_ID/locations/REGION/serviceAttachments/SERVICE_ATTACHMENT

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

  • BACKEND_SERVICE: バックエンド サービスの名前
  • REGION: バックエンド サービスのリージョン。サービス アタッチメントのリージョンと一致する必要があります。
  • PROJECT_ID: サービス アタッチメントのプロジェクトのプロジェクト ID
  • SERVICE_ATTACHMENT: バックエンド サービスに関連付けるサービス アタッチメントの名前

API

  1. バックエンド サービスを更新するときは、バックエンド サービスのフィンガープリントを含める必要があります。フィンガープリントを確認するには、 regionBackendServices.get メソッドにリクエストを送信します。

    HTTP メソッドと URL:

    GET https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/backendServices/BACKEND_SERVICE
    

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

    • PROJECT_ID: オブジェクトの ID
    • REGION: バックエンド サービスのリージョン。サービス アタッチメントのリージョンと一致する必要があります。
    • BACKEND_SERVICE: バックエンド サービスの名前

    レスポンスの fingerprint 値をメモします。これは次のステップで必要になります。

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

    次のリクエストは、既存のバックエンドをすべて置き換えます。

    HTTP メソッドと URL:

    PATCH https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/backendServices/BACKEND_SERVICE
    

    リクエストの本文(JSON):

    {
      "backends": [
        {
          "group": "https://www.googleapis.com/compute/beta/projects/PROJECT_ID/locations/REGION/serviceAttachments/SERVICE_ATTACHMENT"
        }
      ],
      "fingerprint": "FINGERPRINT"
    }
    

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

    • SERVICE_ATTACHMENT: バックエンド サービスに関連付けるサービス アタッチメントの名前
    • FINGERPRINT: 前のステップでメモしたフィンガープリント値