ワークステーションにアクセスするには、cloudworkstations.dev ドメインを使用するのではなく、信頼できるカスタム ドメインを指定します。
アーキテクチャ
カスタム ホスト名で Cloud Workstations を使用するには、プライベート クラスタを設定すると、限定公開クラスタの HTTP Ingress 用にPrivate Service Connect(PSC)エンドポイントを設定するの手順を行います。また、プライベート クラスタ用に作成された PSC エンドポイントをターゲットとする PSC バックエンドを持つアプリケーション ロードバランサも作成する必要があります。このアプリケーション ロードバランサは外部または内部のいずれかで、カスタム ドメインの SSL 証明書を管理します。
次の図は、カスタム ドメインが設定されたクラスタを示しています。
準備
Cloud Workstations のカスタム ドメインを設定する手順は次のとおりです。
プライベート クラスタを作成し、
gcloudCLI または REST API コマンドを使用して信頼できるカスタム ドメインを指定します。ワークステーション クラスタ プロジェクトで使用した同じプロジェクトに Private Service Connect(PSC)バックエンドを持つアプリケーション ロードバランサを作成します。次の点にご注意ください。
ワークステーションを限定公開(公共のインターネットからアクセスできない)にするには、内部ロードバランサを作成してください。これを行うには、プライベート DNS ゾーンを作成し、ロードバランサが使用する内部 IP アドレスにドメインをマッピングするレコードを追加します。内部ロードバランサの作成方法の詳細については、内部アプリケーション ロードバランサをご覧ください。
ロードバランサで参照する必要があるサービス アタッチメントは、クラスタの作成後にワークステーション クラスタ リソースで取得できます。
証明書を取得し、ドメインのワイルドカード証明書(
*.us-west1-cluster1.example.comなど)としてロードバランサに指定します。選択したロードバランサでサポートされている証明書の種類については、証明書と Google Cloud ロードバランサをご覧ください。PrivateClusterConfig.allowedProjectsリストに追加するだけで、別のプロジェクトにロードバランサを作成することもできます。組織に複数のワークステーション クラスタがある場合は、別々のバックエンド サービス、証明書、ルーティング ルールで単一のロードバランサを使用できます。
ドメイン ネーム システム(DNS)を設定します。これはユーザーが管理するドメインであるため、指定したドメインのすべてのサブドメインをロードバランサにマッピングして、このドメインの DNS を設定します。たとえば、
us-west1-cluster1.example.comの DNS ゾーンを作成し、ロードバランサが使用する外部 IP アドレスに*.us-west1-cluster1.example.comをマッピングするエントリを追加します。カスタム ドメインを使用してワークステーションにアクセスするには、作成したクラスタを使用してワークステーション構成を作成し、そのワークステーション構成を使用してワークステーションを作成します。
ワークステーションを起動して URL を確認します。カスタム ドメインを指定すると、ワークステーションの URL は次の形式になります。
https://PORT-WORKSTATION_NAME.DOMAINURL の次の部分は構成によって異なります。
PORT: ポート番号。デフォルトはポート80です。WORKSTATION_NAME: ワークステーション名。DOMAIN: クラスタ固有のドメイン名。
プライベート クラスタを作成する
プライベート エンドポイントを持つ限定公開ワークステーション クラスタを作成します。
gcloud
始める前に、
gcloud initを実行してgcloudCLI を初期化し、デフォルトのプロジェクトを指定していることを確認してください。続く例では、デフォルト プロジェクトが設定されていることを前提としています。限定公開ワークステーション クラスタを作成するには、次のコマンドを実行します。
gcloud workstations clusters create WORKSTATION_CLUSTER \ --region=REGION \ --domain=DOMAIN \ --network=NETWORK \ --subnetwork=SUBNETWORK \ --enable-private-endpoint
以下を置き換えます。
WORKSTATION_CLUSTER: 作成するワークステーション クラスタの名前。REGION: クラスタのリージョンの名前。DOMAIN: Cloud Workstations が HTTP 上り(内向き)に使用するドメイン名。このクラスタに固有のサブドメイン(us-west1-cluster1.example.comなど)を使用します。NETWORK: VPC ネットワークの名前。省略すると、デフォルトの VPC ネットワークが使用されます。SUBNETWORK: VPC ネットワーク内のサブネットワークの名前。ネットワークとサブネットワークの両方を省略すると、デフォルトの VPC ネットワークが使用され、指定されたREGIONのデフォルトのサブネットワークが使用されます。
この gcloud CLI コマンドの詳細については、gcloud workstations clusters create のリファレンス ドキュメントをご覧ください。
curl
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" -d '{"domain_config": {"domain": "DOMAIN"}, "private_cluster_config": {"enable_private_endpoint":true}, "network": "NETWORK", "subnetwork": "SUBNETWORK"}' https://workstations.googleapis.com/v1/projects/PROJECT_NAME/locations/REGION/workstationClusters?workstation_cluster_id=WORKSTATION_CLUSTER
以下を置き換えます。
DOMAIN: Cloud Workstations が HTTP 上り(内向き)に使用するドメイン名。これは、このクラスタに固有のサブドメイン(例:us-west1-cluster1.example.com)にする必要があります。NETWORK: VPC ネットワークの名前。省略すると、デフォルトの VPC ネットワークが使用されます。SUBNETWORK: VPC ネットワーク内のサブネットワークの名前。ネットワークとサブネットワークの両方を省略すると、デフォルトの VPC ネットワークが使用され、指定されたREGIONのデフォルトのサブネットワークが使用されます。PROJECT_NAME: プロジェクトの名前。REGION: クラスタのリージョンの名前。WORKSTATION_CLUSTER: 作成するワークステーション クラスタの名前。
この API メソッドの詳細については、workstationClusters.create リファレンス ドキュメントをご覧ください。
REST
POST https://workstations.googleapis.com/v1/projects/PROJECT_NAME/locations/REGION/workstationClusters?workstationClusterId=WORKSTATION_CLUSTER
{
"domainConfig": {
"domain": "DOMAIN"
},
"privateClusterConfig": {
"enablePrivateEndpoint": true
},
"network": "NETWORK",
"subnetwork": "SUBNETWORK"
}
以下を置き換えます。
PROJECT_NAME: プロジェクトの名前。REGION: クラスタのリージョンの名前。WORKSTATION_CLUSTER: 作成するワークステーション クラスタの名前。DOMAIN: Cloud Workstations が HTTP 上り(内向き)に使用するドメイン名。これは、このクラスタに固有のサブドメイン(例:us-west1-cluster1.example.com)にする必要があります。NETWORK: VPC ネットワークの名前。省略すると、デフォルトの VPC ネットワークが使用されます。SUBNETWORK: VPC ネットワーク内のサブネットワークの名前。ネットワークとサブネットワークの両方を省略すると、デフォルトの VPC ネットワークが使用され、指定されたREGIONのデフォルトのサブネットワークが使用されます。
この API メソッドの詳細については、workstationClusters.create リファレンス ドキュメントをご覧ください。
PSC バックエンドを持つアプリケーション ロードバランサを作成する
以下の gcloud CLI と REST API の手順に沿って、PSC バックエンドを持つアプリケーション ロードバランサを作成します。
- 公開サービスに接続するための NEG を作成する
- グローバル外部アプリケーション ロードバランサにバックエンドを追加する
- 受信リクエストをバックエンド サービスに転送するための URL マップを作成する
- ターゲット HTTPS プロキシを作成する
- グローバル アドレスの作成
- 転送ルールの作成
- 省略可: リージョンまたは内部アプリケーション ロードバランサを構成する
公開サービスに接続するための NEG を作成する
公開サービスを参照する NEG を作成する場合は、そのサービスのサービス アタッチメント URI が必要です。このサービス アタッチメントの形式は projects/SERVICE_PROJECT/regions/REGION/serviceAttachments/SERVICE_NAME のようになります。URI は、ワークステーション クラスタ リソースで確認できます。
gcloud
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: ネットワーク エンドポイント グループを作成する VPC ネットワーク。省略すると、デフォルト ネットワークが使用されます。SUBNET: ネットワーク エンドポイント グループを作成するサブネット。サブネットは、ターゲット サービスと同じリージョンに存在する必要があります。ネットワークを指定する場合は、サブネットを指定する必要があります。ネットワークとサブネットの両方を省略すると、デフォルト ネットワークが使用され、指定されたREGIONのデフォルトのサブネットが使用されます。
この gcloud CLI コマンドの詳細については、gcloud compute network-endpoint-groups create のリファレンス ドキュメントをご覧ください。
REST
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/regions/REGION/networkEndpointGroups
{
"pscTargetService": "TARGET_SERVICE",
"networkEndpointType": "PRIVATE_SERVICE_CONNECT",
"name": "NEG_NAME",
"network": "https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/global/networks/NETWORK",
"subnetwork": "https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/regions/REGION/subnetworks/SUBNET"
}
以下を置き換えます。
PROJECT_NAME: プロジェクトの名前。REGION: ネットワーク エンドポイント グループを作成するリージョン。リージョンは、ターゲット サービスと同じリージョンにする必要があります。TARGET_SERVICE: サービス アタッチメントの URI。NEG_NAME: ネットワーク エンドポイント グループの名前。NETWORK: ネットワーク エンドポイント グループを作成する VPC ネットワーク。省略すると、デフォルト ネットワークが使用されます。SUBNET: ネットワーク エンドポイント グループを作成するサブネット。サブネットは、ターゲット サービスと同じリージョンに存在する必要があります。ネットワークを指定する場合は、サブネットを指定する必要があります。ネットワークとサブネットの両方を省略すると、デフォルト ネットワークが使用され、指定されたREGIONのデフォルトのサブネットが使用されます。
グローバル外部アプリケーション ロードバランサにバックエンドを追加する
gcloud
ターゲット サービスのバックエンド サービスを作成します。
gcloud compute backend-services create BACKEND_SERVICE_NAME \ --load-balancing-scheme=EXTERNAL_MANAGED \ --protocol=HTTPS \ --global
BACKEND_SERVICE_NAMEは、バックエンド サービスの名前に置き換えます。ターゲット サービスを指す Private Service Connect 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: ネットワーク エンドポイント グループのリージョン。
この gcloud CLI コマンドの詳細については、gcloud compute backend-services create と gcloud compute backend-services add-backend のリファレンス ドキュメントをご覧ください。
REST
ターゲット サービスのバックエンド サービスを作成します。
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/global/backendServices { "protocol": "HTTPS", "loadBalancingScheme": "EXTERNAL_MANAGED", "name": "BACKEND_SERVICE_NAME" }BACKEND_SERVICE_NAMEは、バックエンド サービスの名前に置き換えます。ターゲット サービスを指す Private Service Connect NEG を追加します。
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/global/backendServices/BACKEND_SERVICE_NAME { "backends": [ { "group": "https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/regions/NEG_REGION/networkEndpointGroups/NEG_NAME " } ] }以下を置き換えます。
PROJECT_NAME: プロジェクトの名前。BACKEND_SERVICE_NAME: バックエンド サービスの名前。NEG_REGION: ネットワーク エンドポイント グループのリージョン。NEG_NAME: ネットワーク エンドポイント グループの名前。
受信リクエストをバックエンド サービスに転送するための URL マップを作成する
gcloud
gcloud compute url-maps create URL_MAP_NAME \ --default-service=BACKEND_SERVICE_NAME \ --global
以下を置き換えます。
URL_MAP_NAME: 作成する URL マップの名前。BACKEND_SERVICE_NAME: この URL マップにマッピングがない場合にリクエストに使用するバックエンド サービスの名前。
この gcloud CLI コマンドの詳細については、gcloud compute url-maps create のリファレンス ドキュメントをご覧ください。
REST
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/global/urlMaps
{
"name": "URL_MAP_NAME",
"defaultService": "https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/global/backendServices/BACKEND_SERVICE_NAME "
}
以下を置き換えます。
PROJECT_NAME: プロジェクトの名前。URL_MAP_NAME: 作成する URL マップの名前。BACKEND_SERVICE_NAME: この URL マップにマッピングがない場合にリクエストに使用するバックエンド サービスの名前。
ターゲット HTTPS プロキシを作成する
URL マップにリクエストの経路を指定するターゲット HTTPS プロキシを作成します。プロキシはロードバランサの一部であり、HTTPS ロードバランシング用の SSL 証明書を保持するため、この手順で証明書も読み込みます。
gcloud
gcloud compute target-https-proxies create TARGET_HTTPS_PROXY_NAME \ --ssl-certificates=SSL_CERTIFICATE_NAME \ --url-map=URL_MAP_NAME \ --global
以下を置き換えます。
TARGET_HTTPS_PROXY_NAME: 作成するターゲット HTTPS プロキシの名前。SSL_CERTIFICATE_NAME: ロードバランサに関連付けられた SSL 証明書。URL_MAP_NAME: URL マップリソース。
この gcloud CLI コマンドの詳細については、gcloud compute target-https-proxies create のリファレンス ドキュメントをご覧ください。
REST
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/global/targetHttpsProxies
{
"sslCertificates": [
"https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/global/sslCertificates/SSL_CERTIFICATE_NAME"
],
"urlMap": "https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/global/urlMaps/URL_MAP_NAME",
"name": "TARGET_HTTPS_PROXY_NAME"
}
以下を置き換えます。
PROJECT_NAME: プロジェクトの名前。SSL_CERTIFICATE_NAME: ロードバランサに関連付けられた SSL 証明書。URL_MAP_NAME: URL マップリソース。TARGET_HTTPS_PROXY_NAME: 作成するターゲット HTTPS プロキシの名前。
グローバル アドレスの作成
ロードバランサで使用する静的 IP アドレスを予約します。
gcloud
gcloud compute addresses create LB_IP_ADDRESS_NAME \ --global
以下を置き換えます。
LB_IP_ADDRESS_NAME: ロードバランサの予約済みの静的外部 IP アドレスまたは内部 IP アドレスの名前。
この gcloud CLI コマンドの詳細については、gcloud compute addresses create のリファレンス ドキュメントをご覧ください。
REST
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/global/addresses
{
"name": "LB_IP_ADDRESS_NAME"
}
以下を置き換えます。
PROJECT_NAME: プロジェクトの名前。LB_IP_ADDRESS_NAME: ロードバランサの予約済みの静的外部 IP アドレスまたは内部 IP アドレスの名前。
転送ルールの作成
受信リクエストをプロキシに転送する転送ルールを作成します。
gcloud
gcloud compute forwarding-rules create HTTPS_FORWARDING_RULE_NAME \ --load-balancing-scheme=EXTERNAL_MANAGED \ --network-tier=PREMIUM \ --address=LB_IP_ADDRESS_NAME \ --target-https-proxy=TARGET_HTTPS_PROXY_NAME \ --global \ --ports=443
以下を置き換えます。
HTTPS_FORWARDING_RULE_NAME: 作成する転送ルールの名前。LB_IP_ADDRESS_NAME: ロードバランサの予約済みの静的外部 IP アドレスまたは内部 IP アドレスの名前。TARGET_HTTPS_PROXY_NAME: トラフィックを受信するターゲット HTTPS プロキシ。
この gcloud CLI コマンドの詳細については、gcloud compute forwarding-rules create のリファレンス ドキュメントをご覧ください。
REST
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/global/forwardingRules
{
"loadBalancingScheme": "EXTERNAL_MANAGED",
"networkTier": "PREMIUM",
"IPAddress": "https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/global/addresses/LB_IP_ADDRESS_NAME",
"target": "https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/global/targetHttpsProxies/TARGET_HTTPS_PROXY_NAME",
"name": "HTTPS_FORWARDING_RULE_NAME",
"portRange": "443-443"
}
以下を置き換えます。
PROJECT_NAME: プロジェクトの名前。LB_IP_ADDRESS_NAME: ロードバランサの予約済みの静的外部 IP アドレスまたは内部 IP アドレスの名前。TARGET_HTTPS_PROXY_NAME: トラフィックを受信するターゲット HTTPS プロキシ。HTTPS_FORWARDING_RULE_NAME: 作成する転送ルールの名前。
リージョンまたは内部アプリケーション ロードバランサを構成する
リージョン外部アプリケーション ロードバランサ(データ所在地要件など)または内部アプリケーション ロードバランサを構成する場合は、次の要件に注意してください。リージョン ロードバランサ リソースを構成する前に、公開サービスに接続する NEG を作成するの説明に従って、ワークステーション クラスタを参照する Private Service Connect NEG を作成していることを確認します。
プロキシ専用サブネットを構成する: リージョン Envoy ベースのロードバランサには、ロードバランサが配置されているリージョンと VPC ネットワークにプロキシ専用サブネットが必要です。転送ルールを作成する前に、プロキシ専用サブネットを作成する必要があります。
gcloud
gcloud compute networks subnets create PROXY_ONLY_SUBNET \ --purpose=REGIONAL_MANAGED_PROXY \ --role=ACTIVE \ --region=REGION \ --network=NETWORK \ --range=PROXY_ONLY_RANGE
次のように置き換えます。
PROXY_ONLY_SUBNET: プロキシ専用サブネットの名前。REGION: ワークステーション クラスタとロードバランサが配置されているリージョン。NETWORK: ワークステーション クラスタとロードバランサが配置されている VPC ネットワーク。PROXY_ONLY_RANGE: VPC ネットワーク内の未使用の CIDR ブロック(10.0.0.0/24など)。最小サイズは/26(64 アドレス)です。
詳細については、Envoy ベースのロードバランサのプロキシ専用サブネットと
gcloud compute networks subnets createリファレンス ドキュメントをご覧ください。REST
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/regions/REGION/subnetworks { "name": "PROXY_ONLY_SUBNET", "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/global/networks/NETWORK", "ipCidrRange": "PROXY_ONLY_RANGE", "purpose": "REGIONAL_MANAGED_PROXY", "role": "ACTIVE" }以下を置き換えます。
PROJECT_NAME: プロジェクトの名前。REGION: ワークステーション クラスタとロードバランサが配置されているリージョン。PROXY_ONLY_SUBNET: プロキシ専用サブネットの名前。NETWORK: ワークステーション クラスタとロードバランサが配置されている VPC ネットワーク。PROXY_ONLY_RANGE: VPC ネットワーク内の未使用の CIDR ブロック(10.0.0.0/24など)。最小サイズは/26(64 アドレス)です。
リージョン ロードバランサ リソースを作成する: バックエンド サービスを作成し、Private Service Connect NEG バックエンドを追加して、URL マップを作成し、ターゲット HTTPS プロキシを作成して、ワークステーション クラスタと同じリージョンに静的 IP アドレスを予約します。
gcloud
リージョン バックエンド サービスを作成します。リージョン外部アプリケーション ロードバランサの場合は
--load-balancing-schemeをEXTERNAL_MANAGEDに設定し、内部アプリケーション ロードバランサの場合はINTERNAL_MANAGEDに設定します。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: ワークステーション クラスタとロードバランサが配置されているリージョン。
ワークステーション クラスタを指す Private Service Connect NEG をバックエンド サービスに追加します。
gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \ --network-endpoint-group=NEG_NAME \ --network-endpoint-group-region=REGION \ --region=REGION
次のように置き換えます。
BACKEND_SERVICE_NAME: バックエンド サービスの名前。NEG_NAME: ネットワーク エンドポイント グループの名前。REGION: ネットワーク エンドポイント グループとバックエンド サービスのリージョン。
受信リクエストをバックエンド サービスに転送するためのリージョン URL マップを作成します。
gcloud compute url-maps create URL_MAP_NAME \ --default-service=BACKEND_SERVICE_NAME \ --region=REGION
次のように置き換えます。
URL_MAP_NAME: URL マップの名前。BACKEND_SERVICE_NAME: バックエンド サービスの名前。REGION: URL マップのリージョン。
リージョン ターゲット HTTPS プロキシを作成します。
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
次のように置き換えます。
TARGET_HTTPS_PROXY_NAME: ターゲット HTTPS プロキシの名前。SSL_CERTIFICATE_NAME: ロードバランサに関連付けられたリージョン SSL 証明書。URL_MAP_NAME: URL マップの名前。REGION: ターゲット HTTPS プロキシと URL マップのリージョン。
ロードバランサに静的 IP アドレスを予約します。
リージョン外部ロードバランサの場合:
gcloud compute addresses create LB_IP_ADDRESS_NAME \ --region=REGION
内部ロードバランサの場合:
gcloud compute addresses create LB_IP_ADDRESS_NAME \ --region=REGION \ --subnet=SUBNET
次のように置き換えます。
LB_IP_ADDRESS_NAME: 予約済みの静的 IP アドレスの名前。REGION: IP アドレスのリージョン。SUBNET: 内部ロードバランサの場合、内部 IP アドレスを予約する VPC サブネット。
REST
リージョン バックエンド サービスを作成します。
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/regions/REGION/backendServices { "name": "BACKEND_SERVICE_NAME", "loadBalancingScheme": "SCHEME", "protocol": "HTTPS" }次のように置き換えます。
PROJECT_NAME: プロジェクトの名前。REGION: バックエンド サービスのリージョン。BACKEND_SERVICE_NAME: バックエンド サービスの名前。SCHEME: ロード バランシング スキーム(リージョン外部アプリケーション ロードバランサの場合はEXTERNAL_MANAGED、内部アプリケーション ロードバランサの場合はINTERNAL_MANAGED)。
ワークステーション クラスタを指す Private Service Connect NEG をバックエンド サービスに追加します。
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/regions/REGION/backendServices/BACKEND_SERVICE_NAME { "backends": [ { "group": "https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/regions/REGION/networkEndpointGroups/NEG_NAME" } ] }次のように置き換えます。
PROJECT_NAME: プロジェクトの名前。REGION: バックエンド サービスと NEG のリージョン。BACKEND_SERVICE_NAME: バックエンド サービスの名前。NEG_NAME: ネットワーク エンドポイント グループの名前。
受信リクエストをバックエンド サービスに転送するためのリージョン URL マップを作成します。
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/regions/REGION/urlMaps { "name": "URL_MAP_NAME", "defaultService": "https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/regions/REGION/backendServices/BACKEND_SERVICE_NAME" }次のように置き換えます。
PROJECT_NAME: プロジェクトの名前。REGION: URL マップのリージョン。URL_MAP_NAME: URL マップの名前。BACKEND_SERVICE_NAME: バックエンド サービスの名前。
リージョン ターゲット HTTPS プロキシを作成します。
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/regions/REGION/targetHttpsProxies { "name": "TARGET_HTTPS_PROXY_NAME", "sslCertificates": [ "https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/regions/REGION/sslCertificates/SSL_CERTIFICATE_NAME" ], "urlMap": "https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/regions/REGION/urlMaps/URL_MAP_NAME" }次のように置き換えます。
PROJECT_NAME: プロジェクトの名前。REGION: ターゲット HTTPS プロキシのリージョン。TARGET_HTTPS_PROXY_NAME: ターゲット HTTPS プロキシの名前。SSL_CERTIFICATE_NAME: リージョン SSL 証明書。URL_MAP_NAME: URL マップリソース。
ロードバランサに静的 IP アドレスを予約します。
リージョン外部ロードバランサの場合:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/regions/REGION/addresses { "name": "LB_IP_ADDRESS_NAME" }内部ロードバランサの場合:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/regions/REGION/addresses { "name": "LB_IP_ADDRESS_NAME", "subnetwork": "https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/regions/REGION/subnetworks/SUBNET", "addressType": "INTERNAL" }次のように置き換えます。
PROJECT_NAME: プロジェクトの名前。REGION: IP アドレスのリージョン。LB_IP_ADDRESS_NAME: 予約済みの静的 IP アドレスの名前。SUBNET: 内部ロードバランサの場合、内部 IP アドレスを予約する VPC サブネット。
転送ルールでネットワークを指定する: 転送ルールを作成するときに、
--networkフラグ(内部ロードバランサの場合は--subnetフラグ)を指定します。gcloud
リージョン外部ロードバランサの場合:
gcloud compute forwarding-rules create HTTPS_FORWARDING_RULE_NAME \ --load-balancing-scheme=EXTERNAL_MANAGED \ --network-tier=PREMIUM \ --network=NETWORK \ --address=LB_IP_ADDRESS_NAME \ --ports=443 \ --region=REGION \ --target-https-proxy=TARGET_HTTPS_PROXY_NAME \ --target-https-proxy-region=REGION
内部ロードバランサの場合:
gcloud compute forwarding-rules create HTTPS_FORWARDING_RULE_NAME \ --load-balancing-scheme=INTERNAL_MANAGED \ --network=NETWORK \ --subnet=SUBNET \ --address=LB_IP_ADDRESS_NAME \ --ports=443 \ --region=REGION \ --target-https-proxy=TARGET_HTTPS_PROXY_NAME \ --target-https-proxy-region=REGION
次のように置き換えます。
HTTPS_FORWARDING_RULE_NAME: 作成する転送ルールの名前。NETWORK: ロードバランサとワークステーション クラスタが配置されている VPC ネットワーク。SUBNET: 内部ロードバランサの場合、予約済みの内部 IP アドレスが配置されている VPC サブネット。LB_IP_ADDRESS_NAME: ロードバランサの予約済みの静的外部 IP アドレスまたは内部 IP アドレスの名前。REGION: 転送ルールとターゲット HTTPS プロキシのリージョン。TARGET_HTTPS_PROXY_NAME: トラフィックを受信するターゲット HTTPS プロキシ。
REST
リージョン外部ロードバランサの場合:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/regions/REGION/forwardingRules { "loadBalancingScheme": "EXTERNAL_MANAGED", "networkTier": "PREMIUM", "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/global/networks/NETWORK", "IPAddress": "https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/regions/REGION/addresses/LB_IP_ADDRESS_NAME", "target": "https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/regions/REGION/targetHttpsProxies/TARGET_HTTPS_PROXY_NAME", "name": "HTTPS_FORWARDING_RULE_NAME", "portRange": "443-443" }内部ロードバランサの場合:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/regions/REGION/forwardingRules { "loadBalancingScheme": "INTERNAL_MANAGED", "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/global/networks/NETWORK", "subnetwork": "https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/regions/REGION/subnetworks/SUBNET", "IPAddress": "https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/regions/REGION/addresses/LB_IP_ADDRESS_NAME", "target": "https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/regions/REGION/targetHttpsProxies/TARGET_HTTPS_PROXY_NAME", "name": "HTTPS_FORWARDING_RULE_NAME", "portRange": "443-443" }次のように置き換えます。
PROJECT_NAME: プロジェクトの名前。REGION: 転送ルールとターゲット HTTPS プロキシのリージョン。NETWORK: ロードバランサとワークステーション クラスタが配置されている VPC ネットワーク。LB_IP_ADDRESS_NAME: ロードバランサの予約済みの静的外部 IP アドレスまたは内部 IP アドレスの名前。TARGET_HTTPS_PROXY_NAME: トラフィックを受信するターゲット HTTPS プロキシ。HTTPS_FORWARDING_RULE_NAME: 作成する転送ルールの名前。SUBNET: 内部ロードバランサの場合、予約済みの内部 IP アドレスが配置されている VPC サブネット。
DNS を構成する
DNS を構成し、*.DOMAIN(*.example.com など)を前の手順で予約した IP アドレスにマッピングするレコードを追加します。
外部アプリケーション ロードバランサ:
*.DOMAINをパブリック DNS ゾーンの予約済みの静的外部 IP アドレスにマッピングする DNS レコードを追加します。Cloud DNS を使用してドメインの DNS を管理している場合は、DNS レコードを追加するをご覧ください。内部アプリケーション ロードバランサ: VPC ネットワークで承認された限定公開 DNS ゾーンの予約済み静的内部 IP アドレスに
*.DOMAINをマッピングする DNS レコードを追加します。Cloud DNS を使用している場合は、限定公開ゾーンを作成すると DNS レコードを追加するをご覧ください。
ワークステーション構成とワークステーションを作成する
カスタム ドメインを使用してワークステーションにアクセスするには、次のようにします。
カスタム ドメインを持つクラスタを使用して、ワークステーション構成を作成します。
カスタム ドメインを含むワークステーション構成を使用して、ワークステーションを作成します。
次のステップ
カスタム ドメインとプライベート クラスタの設定の詳細については、以下をご覧ください。