Private Service Connect バックエンドを作成する
ポリシーの適用にロードバランサを使用すると、Private Service Connect バックエンドを使用して、サポートされているサービスに接続できます。Private Service Connect ネットワーク エンドポイント グループ(NEG)を含むバックエンドにマッピングされた転送ルールを介してサービスに接続します。
サポートされているサービスと構成の詳細については、Private Service Connect バックエンドについてをご覧ください。
このガイドでは、Private Service Connect NEG をロードバランサに追加して、Google API または公開サービスにアクセスする方法について説明します。このガイドでは、ロードバランサの完全な構成については説明していません。
Private Service Connect バックエンドを使用してロードバランサを作成する手順については、以下をご覧ください。
ロール
このガイドで説明するタスクの実行に必要な権限は、Compute ロードバランサ管理者のロール(roles/compute.loadBalancerAdmin
)に含まれています。
始める前に
接続する API またはサービスを決定します。
Google API の場合は、次のいずれかを行います。
- リージョン サービス エンドポイントを選択します。
- グローバル サービス エンドポイントを選択します。
公開サービスの場合:
独自のサービスを公開する場合は、マネージド サービスを公開するをご覧ください。
Google Cloud またはサードパーティ マネージド サービスに接続している場合は、プロデューサーに以下の情報を問い合わせてください。
接続するサービスのサービス アタッチメントの URI。
リクエストの送信に使用する DNS 名の要件。URL マップの構成で、特定の DNS 名が必要になる場合があります。
接続するサービスをサポートするロードバランサの種類を特定し、更新するロードバランサのことを十分に把握します。このガイドでは、Private Service Connect NEG をロードバランサに追加する方法について説明しますが、他の構成手順が必要になることもあります。
詳細については、サポートされているロードバランサとターゲットをご覧ください。
Private Service Connect NEG を作成する
NEG を作成するときに、接続するターゲットのタイプを選択します。
- 公開サービス
- リージョンの Google API
- グローバルな Google API
公開サービスに接続するための NEG を作成する
公開サービスを参照する Private Service Connect NEG を作成するには、サービスのサービス アタッチメント URI が必要です。このサービス アタッチメントの形式は projects/SERVICE_PROJECT/regions/REGION/serviceAttachments/SERVICE_NAME
のようになります。
この構成でサポートされているロードバランサについては、公開サービスのターゲットをご覧ください。
コンソール
Google Cloud コンソールで、[ネットワーク エンドポイント グループ] ページに移動します。
[ネットワーク エンドポイント グループを作成] をクリックします。
ネットワーク エンドポイント グループの名前を入力します。
[ネットワーク エンドポイント グループの種類] で、[Private Service Connect NEG(リージョン)] を選択します。
ターゲットを構成します。
- [ターゲット] で [公開済みのサービス] を選択します。
- [ターゲット サービス] に、サービス アタッチメントの URI を入力します。
ネットワーク エンドポイント グループを作成するネットワークとサブネットを選択します。
サブネットは、公開済みのサービスと同じリージョンに存在する必要があります。
[作成] をクリックします。
gcloud
gcloud compute network-endpoint-groups create
コマンドを使用します。
gcloud compute network-endpoint-groups create NEG_NAME \ --network-endpoint-type=private-service-connect \ --psc-target-service=TARGET_SERVICE \ --region=REGION \ --network=NETWORK \ --subnet=SUBNET
次のように置き換えます。
NEG_NAME
: ネットワーク エンドポイント グループの名前。TARGET_SERVICE
: サービス アタッチメントの URI。REGION
: ネットワーク エンドポイント グループを作成するリージョン。リージョンは、ターゲット サービスと同じリージョンにする必要があります。NETWORK
: ネットワーク エンドポイント グループを作成するネットワーク。省略すると、デフォルト ネットワークが使用されます。SUBNET
: ネットワーク エンドポイント グループを作成するサブネット。サブネットは、ターゲット サービスと同じリージョンに存在する必要があります。ネットワークを指定する場合は、サブネットを指定する必要があります。ネットワークとサブネットの両方を省略すると、デフォルト ネットワークが使用され、指定されたREGION
のデフォルトのサブネットが使用されます。
NEG を作成してリージョン Google API に接続する
NEG を作成して、リージョンの Google API に接続できます。
この構成でサポートされているロードバランサについては、リージョン Google API のターゲットをご覧ください。
コンソール
Google Cloud コンソールで、[ネットワーク エンドポイント グループ] ページに移動します。
[ネットワーク エンドポイント グループを作成] をクリックします。
ネットワーク エンドポイント グループの名前を入力します。
[ネットワーク エンドポイント グループの種類] で、[Private Service Connect NEG(リージョン)] を選択します。
ターゲットを構成します。
- [ターゲット] で [Google API] を選択します。
- リージョンとターゲット サービスを選択します。
[作成] をクリックします。
gcloud
gcloud compute network-endpoint-groups create
コマンドを使用します。
gcloud compute network-endpoint-groups create NEG_NAME \ --network-endpoint-type=private-service-connect \ --psc-target-service=TARGET_SERVICE \ --region=REGION
次のように置き換えます。
NEG_NAME
: ネットワーク エンドポイント グループの名前。TARGET_SERVICE
: 接続するリージョン サービス エンドポイント。REGION
: ネットワーク エンドポイント グループを作成するリージョン。リージョンは、ターゲット サービスと同じリージョンにする必要があります。
NEG を作成してグローバル Google API に接続する
Private Service Connect NEG を作成して、グローバル Google API に接続できます。NEG は、グローバル API に接続している場合でもリージョンです。この構成では、リージョンは無視されます。
この構成でサポートされているロードバランサについては、グローバル Google API のターゲットをご覧ください。
クロスリージョン内部アプリケーション ロードバランサと Private Service Connect NEG を作成してグローバル Google API にアクセスする手順については、グローバル Google API にアクセスするをご覧ください。
コンソール
Google Cloud コンソールで、[ネットワーク エンドポイント グループ] ページに移動します。
[ネットワーク エンドポイント グループを作成] をクリックします。
ネットワーク エンドポイント グループの名前を入力します。
[ネットワーク エンドポイント グループの種類] で、[Private Service Connect NEG(リージョン)] を選択します。
ターゲットを構成します。
- [ターゲット] で [グローバル Google API] を選択します。
- リージョンとターゲット サービスを選択します。
[作成] をクリックします。
gcloud
gcloud compute network-endpoint-groups create
コマンドを使用します。
gcloud compute network-endpoint-groups create NEG_NAME \ --network-endpoint-type=private-service-connect \ --psc-target-service=TARGET_SERVICE \ --region=REGION
次のように置き換えます。
NEG_NAME
: ネットワーク エンドポイント グループの名前。TARGET_SERVICE
: 接続するグローバル Google API。REGION
: ネットワーク エンドポイント グループを作成するリージョン。
ロードバランサに Private Service Connect バックエンドを追加する
Private Service Connect NEG バックエンドにトラフィックを転送するように、サポートされているロードバランサを構成できます。
サポートされている構成の詳細については、仕様をご覧ください。
アプリケーション ロードバランサにバックエンドを追加する
NEG をグローバル外部アプリケーション ロードバランサ、内部アプリケーション ロードバランサ、リージョン外部アプリケーション ロードバランサ、またはクロスリージョン内部アプリケーション ロードバランサに追加します。
コンソール
ロードバランサを編集する
Google Cloud コンソールで、[ロード バランシング] ページに移動します。
変更するロードバランサをクリックします。
[編集] をクリックします。
バックエンド構成を更新する
- [バックエンドの構成] をクリックします。
- バックエンド サービスのリストを開き、[バックエンド サービスを作成] を選択します。
- バックエンド サービスの名前を入力します。
- [バックエンド タイプ] を Private Service Connect ネットワーク エンドポイント グループに設定します。
- [バックエンド] セクションで [Private Service Connect ネットワーク エンドポイント グループ] リストをクリックし、作成した Private Service Connect NEG を選択します。[完了] をクリックします。
複数のリージョンの公開サービスに接続するようにグローバル外部アプリケーション ロードバランサを構成し、複数の Private Service Connect NEG を作成した場合は、[バックエンドを追加] をクリックして別の NEG を選択します。
このマネージド サービスのすべての NEG がバックエンド サービスに追加されるまで、この手順を繰り返します。
[作成] をクリックします。
ルーティング ルールを更新する
- [ルーティング ルール] をクリックします。
- 追加した各バックエンド サービスのホストとパスを入力します。
- 構成を確認するには、[確認と完了] をクリックします。
- [作成] をクリックします。
gcloud
バックエンド構成を更新する
ターゲット サービスのバックエンド サービスを作成します。
バックエンド サービスをリージョン ロードバランサに追加する場合は、
--region
フラグを使用してロードバランサと同じリージョンを指定します。gcloud compute backend-services create BACKEND_SERVICE_NAME \ --load-balancing-scheme=SCHEME \ --protocol=HTTPS \ --region=REGION
次のように置き換えます。
BACKEND_SERVICE_NAME
: バックエンド サービスの名前。SCHEME
: 変更するロードバランサのロード バランシング スキーム(以下を参照)- リージョン外部アプリケーション ロードバランサの場合は、
EXTERNAL_MANAGED
を使用します。 - 内部アプリケーション ロードバランサの場合は、
INTERNAL_MANAGED
を使用します。
- リージョン外部アプリケーション ロードバランサの場合は、
REGION
: バックエンド サービスのリージョン。NEG と同じリージョンを使用します。
グローバル外部アプリケーション ロードバランサにバックエンド サービスを追加する場合は、
--global
フラグを使用します。gcloud compute backend-services create BACKEND_SERVICE_NAME \ --load-balancing-scheme=EXTERNAL_MANAGED \ --protocol=HTTPS \ --global
BACKEND_SERVICE_NAME
は、バックエンド サービスの名前に置き換えます。
ターゲット サービスを指す Private Service Connect NEG を追加します。
バックエンド サービスをリージョン ロードバランサに追加する場合は、
--region
フラグを使用してロードバランサと同じリージョンを指定します。gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \ --network-endpoint-group=NEG_NAME \ --network-endpoint-group-region=NEG_REGION \ --region=REGION
次のように置き換えます。
BACKEND_SERVICE_NAME
: バックエンド サービスの名前。NEG_NAME
: ネットワーク エンドポイント グループの名前。NEG_REGION
: ネットワーク エンドポイント グループのリージョン。REGION
: バックエンド サービスのリージョン。
グローバル外部アプリケーション ロードバランサにバックエンド サービスを追加する場合は、
--global
フラグを使用します。同じサービスの複数のリージョンに複数の NEG を作成している場合は、この手順を繰り返して、すべての NEG をバックエンド サービスに追加します。
gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \ --network-endpoint-group=NEG_NAME \ --network-endpoint-group-region=NEG_REGION \ --global
次のように置き換えます。
BACKEND_SERVICE_NAME
: バックエンド サービスの名前。NEG_NAME
: ネットワーク エンドポイント グループの名前。NEG_REGION
: ネットワーク エンドポイント グループのリージョン。
ルーティング ルールを更新する
作成したバックエンド サービスごとに、ロードバランサの URL マップにパスマッチャーを追加します。
URL マップがリージョンの場合は、
--region
フラグを使用してリージョンを指定します。gcloud compute url-maps add-path-matcher URL_MAP_NAME \ --path-matcher-name=PATH_MATCHER \ --default-service=BACKEND_SERVICE_NAME \ --region=REGION
次のように置き換えます。
URL_MAP_NAME
: URL マップの名前。PATH_MATCHER
: パスマッチャーの名前。BACKEND_SERVICE_NAME
: バックエンド サービスの名前。REGION
: URL マップのリージョン。
URL マップがグローバルの場合は、
--global
フラグを指定します。gcloud compute url-maps add-path-matcher URL_MAP_NAME \ --path-matcher-name=PATH_MATCHER \ --default-service=BACKEND_SERVICE_NAME \ --global
次のように置き換えます。
URL_MAP_NAME
: URL マップの名前。PATH_MATCHER
: パスマッチャーの名前。BACKEND_SERVICE_NAME
: バックエンド サービスの名前。
ホスト名ごとに、ホストルールを追加します。
各ホストルールが参照できるパスマッチャーは 1 つだけです。また、2 つ以上のホストルールが同じパスマッチャーを参照できます。
URL マップがリージョンの場合は、
--region
フラグを使用してリージョンを指定します。gcloud compute url-maps add-host-rule URL_MAP_NAME \ --hosts=HOST \ --path-matcher-name=PATH_MATCHER \ --region=REGION
次のように置き換えます。
URL_MAP_NAME
: URL マップの名前。HOST
: このサービスのリクエストを送信するホスト名。PATH_MATCHER
: パスマッチャーの名前。REGION
: URL マップのリージョン。
URL マップがグローバルの場合は、
--global
フラグを指定します。gcloud compute url-maps add-host-rule URL_MAP_NAME \ --hosts=HOST \ --path-matcher-name=PATH_MATCHER \ --global
次のように置き換えます。
URL_MAP_NAME
: URL マップの名前。HOST
: このサービスのリクエストを送信するホスト名。PATH_MATCHER
: パスマッチャーの名前。
リージョン内部プロキシ ネットワーク ロードバランサにバックエンドを追加する
NEG が公開サービスを参照している場合、Private Service Connect NEG バックエンドをリージョン内部プロキシ ネットワーク ロードバランサに追加できます。リージョン内部プロキシ ネットワーク ロードバランサは、1 つのバックエンド サービスのみをサポートします。
リージョン内部プロキシ ネットワーク ロードバランサを構成するには、ゾーン バックエンドを使用してリージョン内部プロキシ ネットワーク ロードバランサを設定するの手順に従ってください。ただし、「ゾーン NEG を作成する」の手順とヘルスチェックの構成は行わないでください。ゾーン NEG を構成する代わりに、次の手順で Private Service Connect バックエンドに Private Service Connect NEG を追加します。
コンソール
- 作成するリージョン内部プロキシのネットワーク ロードバランサで、[バックエンドの構成] をクリックします。
- [バックエンド タイプ] で [Private Service Connect ネットワーク エンドポイント グループ] を選択します。
- [新しいバックエンド] で、作成した NEG を選択します。
- 残りのデフォルト値は変更せずに、[完了] をクリックします。
- Google Cloud コンソールで、[バックエンドの構成] の横にチェックマークが表示されていることを確認します。チェックマークがない場合は、すべての手順を完了したことを再度確認します。
gcloud
ターゲット サービスのバックエンド サービスを作成します。
gcloud compute backend-services create BACKEND_SERVICE_NAME \ --load-balancing-scheme=INTERNAL_MANAGED \ --protocol=TCP \ --region=REGION
次のように置き換えます。
BACKEND_SERVICE_NAME
: バックエンド サービスの名前。REGION
: バックエンド サービスのリージョン。NEG と同じリージョンを使用します。
ターゲット サービスを指す Private Service Connect NEG を追加します。
gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \ --network-endpoint-group=NEG_NAME \ --network-endpoint-group-region=NEG_REGION \ --region=REGION
次のように置き換えます。
BACKEND_SERVICE_NAME
: バックエンド サービスの名前。NEG_NAME
: ネットワーク エンドポイント グループの名前。NEG_REGION
: ネットワーク エンドポイント グループのリージョン。REGION
: バックエンド サービスのリージョン。
リージョン外部プロキシ ネットワーク ロードバランサにバックエンドを追加する
NEG が公開サービスを参照している場合、Private Service Connect NEG バックエンドをリージョン外部プロキシ ネットワーク ロードバランサに追加できます。このロードバランサは 1 つのバックエンド サービスのみをサポートします。
ロードバランサを構成するには、ゾーン バックエンドを使用してリージョン外部プロキシ ネットワーク ロードバランサを設定するの手順に従ってください。ただし、「ゾーン NEG を作成する」の手順とヘルスチェックの構成は行わないでください。ゾーン NEG を構成する代わりに、次の手順で Private Service Connect バックエンドに Private Service Connect NEG を追加します。
コンソール
- 作成するリージョン外部プロキシ ネットワーク ロードバランサで、[バックエンドの構成] をクリックします。
- [バックエンド タイプ] で [Private Service Connect ネットワーク エンドポイント グループ] を選択します。
- [新しいバックエンド] で、作成した NEG を選択します。
- 残りのデフォルト値は変更せずに、[完了] をクリックします。
- Google Cloud コンソールで、[バックエンドの構成] の横にチェックマークが表示されていることを確認します。チェックマークがない場合は、すべての手順を完了したことを再度確認します。
gcloud
ターゲット サービスのバックエンド サービスを作成します。
gcloud compute backend-services create BACKEND_SERVICE_NAME \ --load-balancing-scheme=EXTERNAL_MANAGED \ --protocol=TCP \ --region=REGION
次のように置き換えます。
BACKEND_SERVICE_NAME
: バックエンド サービスの名前。REGION
: バックエンド サービスのリージョン。NEG と同じリージョンを使用します。
ターゲット サービスを指す Private Service Connect NEG を追加します。
gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \ --network-endpoint-group=NEG_NAME \ --network-endpoint-group-region=NEG_REGION \ --region=REGION
次のように置き換えます。
BACKEND_SERVICE_NAME
: バックエンド サービスの名前。NEG_NAME
: ネットワーク エンドポイント グループの名前。NEG_REGION
: ネットワーク エンドポイント グループのリージョン。REGION
: バックエンド サービスのリージョン。
バックエンドを一覧取得する
構成済みの Private Service Connect バックエンドの一覧を取得できます。
コンソール
Google Cloud コンソールで [Private Service Connect] ページに移動します。
[接続エンドポイント] タブをクリックします。
Private Service Connect バックエンドが [ロードバランサのエンドポイント] セクションに表示されます。
バックエンドの説明を取得する
Private Service Connect バックエンドの説明を取得して、接続ステータスなどの詳細を表示できます。
コンソール
- 使用可能なバックエンドを一覧取得します。
- 説明を取得するバックエンドをクリックします。
トラブルシューティング
ロードバランサの転送ルールへのアクセス中に発生したエラー
ロードバランサの転送ルールにアクセスしようとしたときに 404
エラーが発生した場合は、次のいずれかの原因が考えられます。
URL マップがまだ伝搬されていない。
ロードバランサを作成したばかりの場合は、数分お待ちください。
リクエストで使用している URL が、URL マップで定義された URL と一致しない。
試行する URL がロードバランサの URL マップ構成と一致していることを確認します。
サービス プロデューサー バックエンドが、アクセスしようとしている URL をサポートしていない
サービスにアクセスする際に使用する URL を確認するように、サービス プロデューサーに依頼してください。