1. はじめに
Google API 用 Private Service Connect(PSC)は、ユーザーが VPC 内のプライベート IP グローバル エンドポイントを介してプライベート アクセスを構成できる Google Cloud ネットワーキング機能です。VPN または Interconnect で Google Cloud に接続されたハイブリッド環境でコードまたはクライアント サイド アプリケーションを実行しているユーザーの場合、PSC はそのプライベート ハイブリッド接続を介して Google API を解決するために使用されます。
Google API 用 PSC は、さまざまなドメインを解決できます。その完全なリストについては、こちらをご覧ください。ほとんどの Google API で使用されるドメインは <API>.googleapis.com です。このドメインとともに、PSC は <API>-<PSC-ENDPOINT-NAME>.**p.**googleapis.com という googleapis.com のバージョンも提供します。このドメインを使用すると、特定の PSC エンドポイントを使用するようにアプリケーションを構成できます。最も一般的なユースケースでは、ユーザーは、ハイブリッド接続を介して Google API トラフィックをルーティングするために PSC エンドポイントを使用するアプリケーションを選択できます。他のアプリケーションは、引き続きパブリック API エンドポイントにトラフィックをルーティングできます。
Gemini は Google Cloud の Vertex AI プロダクト スイートに属し、Google API 用 PSC で解決できる Google API のリストに含まれています。
この Codelab では、シミュレートされたハイブリッド環境を構築し、オンプレミスで Workbench インスタンスをホストし、HA VPN 経由で Gemini API にプライベートにアクセスする Gemini Python コードを実行して、Google APIs エンドポイントの PSC に接続します。
学習内容
- NCC Hub を作成します。
- NCC Hub で VPC スポークを構成します。
- Cloud HA VPN を作成します。
- NCC Hub でハイブリッド スポークを構成します。
- Google API 用の PSC エンドポイントを作成します。
- HA-VPN を介してカスタムルートを構成します。
- DNS ピアリング ゾーンを構成します。
- Vertex Workbench インスタンスを構成する
- Google APIs API エンドポイントに PSC を使用するように Gemini Python コードを構成します。
必要なもの
- 「オーナー」または完全な「編集者」権限を持つ Google Cloud プロジェクト。
2. Codelab のトポロジ
この Codelab では、Google Cloud を使用してハイブリッド環境をシミュレートします。この Codelab には、Google Cloud 固有の手順が含まれています。オンプレミス環境から構成する場合は、手順が異なります。該当する手順は明記されます。
ルーティング VPC を VPC スポークとして持つ NCC ハブを作成します。その VPC では、オンプレミス環境を模倣したオンプレミス VPC に HA-VPN が構成されます。HA-VPN は NCC ハブでハイブリッド スポークとして構成されます。オンプレミス VPC に、Workbench インスタンスがホストされるサブネットを作成します。また、Workbench インスタンスでパッケージをダウンロードするために使用する Cloud NAT も作成します。
最後に、オンプレミス VPC の DNS ピアリング ゾーンを作成して、Google API 用の PSC が自動的に作成する p.googleapis.com の Service Directory プライベート ゾーンを使用できるようにします。
3. 設定と要件
セルフペース型の環境設定
- Google Cloud Console にログインして、プロジェクトを新規作成するか、既存のプロジェクトを再利用します。Gmail アカウントも Google Workspace アカウントもまだお持ちでない場合は、アカウントを作成してください。
- プロジェクト名は、このプロジェクトの参加者に表示される名称です。Google API では使用されない文字列です。いつでも更新できます。
- プロジェクト ID は、すべての Google Cloud プロジェクトにおいて一意でなければならず、不変です(設定後は変更できません)。Cloud コンソールでは一意の文字列が自動生成されます。通常は、この内容を意識する必要はありません。ほとんどの Codelab では、プロジェクト ID(通常は
PROJECT_ID
と識別されます)を参照する必要があります。生成された ID が好みではない場合は、ランダムに別の ID を生成できます。または、ご自身で試して、利用可能かどうかを確認することもできます。このステップ以降は変更できず、プロジェクトを通して同じ ID になります。 - なお、3 つ目の値として、一部の API が使用するプロジェクト番号があります。これら 3 つの値について詳しくは、こちらのドキュメントをご覧ください。
- 次に、Cloud のリソースや API を使用するために、Cloud コンソールで課金を有効にする必要があります。この Codelab の操作をすべて行って、費用が生じたとしても、少額です。このチュートリアルの終了後に請求が発生しないようにリソースをシャットダウンするには、作成したリソースを削除するか、プロジェクトを削除します。Google Cloud の新規ユーザーは、300 米ドル分の無料トライアル プログラムをご利用いただけます。
Cloud Shell を起動する
Google Cloud はノートパソコンからリモートで操作できますが、この Codelab では、Google Cloud Shell(Cloud 上で動作するコマンドライン環境)を使用します。
Google Cloud Console で、右上のツールバーにある Cloud Shell アイコンをクリックします。
プロビジョニングと環境への接続にはそれほど時間はかかりません。完了すると、次のように表示されます。
この仮想マシンには、必要な開発ツールがすべて用意されています。永続的なホーム ディレクトリが 5 GB 用意されており、Google Cloud で稼働します。そのため、ネットワークのパフォーマンスと認証機能が大幅に向上しています。この Codelab での作業はすべて、ブラウザ内から実行できます。インストールは不要です。
4. 始める前に所要時間: 2 分
API を有効にする
Cloud Shell で、プロジェクトが正しく構成されていることを確認し、環境変数を設定します。
Cloud Shell から
gcloud config list project gcloud config set project <project-id> export project=$(gcloud config get-value project) export region=us-central1 export zone=$region-a echo $project echo $region echo $zone
プロジェクトで必要な Google API をすべて有効にします。
Cloud Shell から
gcloud services enable compute.googleapis.com gcloud services enable networkconnectivity.googleapis.com gcloud services enable dns.googleapis.com gcloud services enable notebooks.googleapis.com gcloud services enable servicedirectory.googleapis.com gcloud services enable aiplatform.googleapis.com
5. VPC とサブネットを作成する(所要時間: 5 分)
ネットワークを作成する
Cloud Shell から
gcloud compute networks create routing-vpc \ --subnet-mode=custom
Cloud Shell から
gcloud compute networks create onprem-vpc \ --subnet-mode=custom gcloud compute networks subnets create onprem-$region-subnet \ --network=onprem-vpc \ --range=10.0.0.0/24 \ --region=$region --enable-private-ip-google-access
Cloud Router と Cloud NAT を作成する
routing-vpc で HA VPN と組み合わせて使用する Cloud Router を作成します。
Cloud Shell から
gcloud compute routers create routing-$region-cr \ --network=routing-vpc \ --region=$region \ --asn=64512
onprem-vpc で HA VPN と組み合わせて使用する Cloud Router を作成します。
Cloud Shell から
gcloud compute routers create onprem-$region-cr \ --network=onprem-vpc \ --region=$region \ --asn=64513
onprem-vpc で Cloud NAT と組み合わせて使用する Cloud Router を作成します。
Cloud Shell から
gcloud compute routers create onprem-$region-cr-4nat \ --network=onprem-vpc \ --region=$region
onprem-vpc の Cloud NAT は、後のステップで構成される Vertex AI Workbench インスタンスにパッケージをダウンロードするために使用されます。
Cloud Shell から
gcloud compute routers nats create onprem-$region-nat \ --router=onprem-$region-cr-4nat \ --region=$region \ --nat-all-subnet-ip-ranges \ --auto-allocate-nat-external-ips
6. Cloud HA-VPN を作成する時間: 7 分
VPN ゲートウェイを作成します。
Cloud Shell から
gcloud compute vpn-gateways create routing-gateway \ --network=routing-vpc \ --region=$region \ --stack-type=IPV4_ONLY
Cloud Shell から
gcloud compute vpn-gateways create onprem-gateway \ --network=onprem-vpc \ --region=$region \ --stack-type=IPV4_ONLY
routing-vpc から発信される VPN トンネルを作成します。
Cloud Shell から
gcloud compute vpn-tunnels create routing-to-onprem-tunnel0 \ --peer-gcp-gateway=onprem-gateway \ --region=$region \ --ike-version=2 \ --shared-secret=mysecret \ --router=routing-$region-cr \ --vpn-gateway=routing-gateway \ --interface=0 gcloud compute vpn-tunnels create routing-to-onprem-tunnel1 \ --peer-gcp-gateway=onprem-gateway \ --region=$region \ --ike-version=2 \ --shared-secret=mysecret \ --router=routing-$region-cr \ --vpn-gateway=routing-gateway \ --interface=1
onprem-vpc から発信される VPN トンネルを作成します。
Cloud Shell から
gcloud compute vpn-tunnels create onprem-to-routing-tunnel0 \ --peer-gcp-gateway=routing-gateway \ --region=$region \ --ike-version=2 \ --shared-secret=mysecret \ --router=onprem-$region-cr \ --vpn-gateway=onprem-gateway \ --interface=0 gcloud compute vpn-tunnels create onprem-to-routing-tunnel1 \ --peer-gcp-gateway=routing-gateway \ --region=$region \ --ike-version=2 \ --shared-secret=mysecret \ --router=onprem-$region-cr \ --vpn-gateway=onprem-gateway \ --interface=1
routing-vpc から発信される 2 つのトンネルの BGP セッションを設定します。
Cloud Shell から
gcloud compute routers add-interface routing-$region-cr \ --interface-name=routing-interface0 \ --ip-address=169.254.0.1 \ --mask-length=30 \ --vpn-tunnel=routing-to-onprem-tunnel0 \ --region=$region gcloud compute routers add-bgp-peer routing-$region-cr \ --peer-name=routingtoonprem-bgp0 \ --interface=routing-interface0 \ --peer-ip-address=169.254.0.2 \ --peer-asn=64513 \ --region=$region gcloud compute routers add-interface routing-$region-cr \ --interface-name=routing-interface1 \ --ip-address=169.254.1.1 \ --mask-length=30 \ --vpn-tunnel=routing-to-onprem-tunnel1 \ --region=$region gcloud compute routers add-bgp-peer routing-$region-cr \ --peer-name=routingtoonprem-bgp1 \ --interface=routing-interface1 \ --peer-ip-address=169.254.1.2 \ --peer-asn=64513 \ --region=$region
onprem-vpc から発信される 2 つのトンネルの BGP セッションを設定します。
Cloud Shell から
gcloud compute routers add-interface onprem-$region-cr \ --interface-name=onprem-interface0 \ --ip-address=169.254.0.2 \ --mask-length=30 \ --vpn-tunnel=onprem-to-routing-tunnel0 \ --region=$region gcloud compute routers add-bgp-peer onprem-$region-cr \ --peer-name=onpremtorouting-bgp0 \ --interface=onprem-interface0 \ --peer-ip-address=169.254.0.1 \ --peer-asn=64512 \ --region=$region gcloud compute routers add-interface onprem-$region-cr \ --interface-name=onprem-interface1 \ --ip-address=169.254.1.2 \ --mask-length=30 \ --vpn-tunnel=onprem-to-routing-tunnel1 \ --region=$region gcloud compute routers add-bgp-peer onprem-$region-cr \ --peer-name=onpremtorouting-bgp1 \ --interface=onprem-interface1 \ --peer-ip-address=169.254.1.1 \ --peer-asn=64512 \ --region=$region
コンソールの [ネットワーク接続] > [VPN] ページに移動し、HA-VPN トンネルと BGP セッションが正しく構成されていることを確認します。
7. NCC ハブとスポークを構成する時間:10:00
NCC Hub を作成する
Cloud Shell から
gcloud network-connectivity hubs create ncc-hub \ --project="$project" \ --preset-topology="mesh"
NCC スポークを作成する
NCC gcloud では、すべてのスポークがフルパス名または URI で構成されている必要があります。
Cloud Shell から
gcloud compute networks describe routing-vpc
次のコマンドで使用する routing-vpc のフルパス(URI)をメモします。
出力例
autoCreateSubnetworks: false creationTimestamp: '2025-08-20T11:13:42.233-07:00' id: 'xxx' kind: compute#network name: routing-vpc networkFirewallPolicyEnforcementOrder: AFTER_CLASSIC_FIREWALL routingConfig: bgpBestPathSelectionMode: LEGACY routingMode: REGIONAL selfLink: https://www.googleapis.com/compute/v1/projects/$project/global/networks/routing-vpc selfLinkWithId: https://www.googleapis.com/compute/v1/projects/$project/global/networks/355666541188722361 x_gcloud_bgp_routing_mode: REGIONAL x_gcloud_subnet_mode: CUSTOM
ルーティング VPC スポークを構成する
Cloud Shell から
gcloud network-connectivity spokes linked-vpc-network create routing-vpc \ --hub=ncc-hub \ --vpc-network=projects/$project/global/networks/routing-vpc \ --global
Cloud Shell から
gcloud compute vpn-tunnels describe routing-to-onprem-tunnel0 --region=$region gcloud compute vpn-tunnels describe routing-to-onprem-tunnel1 --region=$region
routing-vpc から発信される VPN トンネルの完全パス(URI)をメモします。
出力例
creationTimestamp: '2025-08-20T11:33:37.494-07:00' description: '' detailedStatus: Tunnel is up and running. id: 'xxx' ikeVersion: 2 kind: compute#vpnTunnel labelFingerprint: xxx localTrafficSelector: - 0.0.0.0/0 name: routing-to-onprem-tunnel0 peerGcpGateway: https://www.googleapis.com/compute/v1/projects/$project/regions/us-central1/vpnGateways/onprem-gateway peerIp: 34.153.54.166 region: https://www.googleapis.com/compute/v1/projects/$project/regions/us-central1 remoteTrafficSelector: - 0.0.0.0/0 router: https://www.googleapis.com/compute/v1/projects/$project/regions/us-central1/routers/routing-us-central1-cr selfLink: https://www.googleapis.com/compute/v1/projects/$project/regions/us-central1/vpnTunnels/routing-to-onprem-tunnel0 sharedSecret: '*************' sharedSecretHash: xxx status: ESTABLISHED vpnGateway: https://www.googleapis.com/compute/v1/projects/$project/regions/us-central1/vpnGateways/routing-gateway vpnGatewayInterface: 0 creationTimestamp: '2025-08-20T11:33:41.829-07:00' description: '' detailedStatus: Tunnel is up and running. id: 'xxx' ikeVersion: 2 kind: compute#vpnTunnel labelFingerprint: xxx localTrafficSelector: - 0.0.0.0/0 name: routing-to-onprem-tunnel1 peerGcpGateway: https://www.googleapis.com/compute/v1/projects/$project/regions/us-central1/vpnGateways/onprem-gateway peerIp: 34.153.246.117 region: https://www.googleapis.com/compute/v1/projects/$project/regions/us-central1 remoteTrafficSelector: - 0.0.0.0/0 router: https://www.googleapis.com/compute/v1/projects/$project/regions/us-central1/routers/routing-us-central1-cr selfLink: https://www.googleapis.com/compute/v1/projects/$project/regions/us-central1/vpnTunnels/routing-to-onprem-tunnel1 sharedSecret: '*************' sharedSecretHash: xxx status: ESTABLISHED vpnGateway: https://www.googleapis.com/compute/v1/projects/$project/regions/us-central1/vpnGateways/routing-gateway vpnGatewayInterface: 1
Cloud Shell から
gcloud network-connectivity spokes linked-vpn-tunnels create $region-vpn-spoke \ --hub=ncc-hub \ --vpn-tunnels=projects/$project/regions/$region/vpnTunnels/routing-to-onprem-tunnel0,projects/$project/regions/$region/vpnTunnels/routing-to-onprem-tunnel1 \ --region=$region
続行する前に、すべてのスポークが正しく構成されていることを確認します。
Cloud Shell から
gcloud network-connectivity hubs list-spokes ncc-hub
出力例
NAME: routing-vpc GROUP: default PROJECT: $project LOCATION: global TYPE: VPC_NETWORK STATE: ACTIVE STATE REASON: ETAG: 2 NAME: us-central1-vpn-spoke GROUP: default PROJECT: $project LOCATION: us-central1 TYPE: VPN_TUNNEL STATE: ACTIVE STATE REASON: ETAG:
8. Google API 用の Private Service Connect を設定する(所要時間: 5 分)
Google API 用の PSC エンドポイントは、リージョン VPC サブネットにないグローバル IP アドレスから作成されます。グローバル IP アドレスは、PRIVATE_SERVICE_CONNECT の目的で明示的に予約する必要があります。
Cloud Shell から
gcloud compute addresses create psc-ip \ --global \ --purpose=PRIVATE_SERVICE_CONNECT \ --addresses=10.100.100.0 \ --network=routing-vpc
Cloud Shell から
gcloud compute forwarding-rules create psc4googep \ --global \ --network=routing-vpc \ --address=psc-ip \ --target-google-apis-bundle=all-apis \ --service-directory-registration=projects/$project/locations/$region
Cloud Shell から
gcloud compute routers update routing-$region-cr \ --project=$project \ --region=$region \ --advertisement-mode custom \ --set-advertisement-groups=ALL_SUBNETS \ --set-advertisement-ranges=10.100.100.0/32
Cloud Shell から
gcloud dns managed-zones create peeringzone \ --description="dns peer onprem to routing" \ --dns-name=p.googleapis.com \ --networks=onprem-vpc \ --target-network=routing-vpc \ --target-project=$project \ --visibility=private
9. Vertex Workbench インスタンスを設定する時間: 5:00
Workbench インスタンスの ID に使用するサービス アカウントを作成します。
Cloud Shell から
gcloud iam service-accounts create workbench-sa \ --display-name="workbench-sa"
サービス アカウントの完全な名前をメモし、Vertex AI/Gemini への呼び出しを実行する権限 aiplatform.admin を付与します。
Cloud Shell から
gcloud iam service-accounts list
出力例
DISPLAY NAME: Compute Engine default service account EMAIL: xxx-compute@developer.gserviceaccount.com DISABLED: False DISPLAY NAME: workbench-sa EMAIL: workbench-sa@$project.iam.gserviceaccount.com DISABLED: False
<your-project-id> は実際のプロジェクト ID に置き換えてください。必要な引用符があるため、ここでは変数 $project を使用できません。
Cloud Shell から
gcloud projects add-iam-policy-binding $project --member='serviceAccount:workbench-sa@<your-project-id>.iam.gserviceaccount.com' --role='roles/aiplatform.admin' --condition=None
Cloud Shell から
gcloud workbench instances create workbench-$region --vm-image-project=cloud-notebooks-managed --vm-image-family=workbench-instances --location=$region-a --network=projects/$project/global/networks/onprem-vpc --subnet=projects/$project/regions/$region/subnetworks/onprem-$region-subnet --subnet-region=$region --disable-public-ip --service-account-email=workbench-sa@$project.iam.gserviceaccount.com
Workbench インスタンスのプロビジョニングには、gcloud コマンドの実行よりも時間がかかることがあります。
10. Gemini をテストする時間: 7:00
UI で [JupyterLab を開く] をクリックします。
JupyterLab で、新しい Python 3 ノートブックを開きます。
ノートブックで次のコードを実行します。コードを更新して、特定のプロジェクトとリージョン情報を含めるようにしてください。
JupyterLab ノートブックから
pip install --upgrade google-genai
ノートブック カーネルを再起動します。
API エンドポイントをメモします。ここでは、API エンドポイント <YOUR_REGION>-aiplatform.googleapis.com を使用しています。これは、Vertex AI の標準 API エンドポイントです。
JupyterLab ノートブックから
PROJECT_ID="YOUR_PROJECT_ID" # Google Cloud Project ID LOCATION_ID="YOUR_REGION" # Enter Vertex AI Gemini region such a s us-central1 API_ENDPOINT="https://<YOUR_REGION>-aiplatform.googleapis.com" # API Endpoint MODEL_ID="gemini-2.0-flash" # Gemini Model ID from google import genai from google.genai.types import ( GenerateContentConfig, HarmBlockThreshold, HarmCategory, Part, SafetySetting, )
JupyterLab ノートブックから
from google import genai client= genai.Client(vertexai=True, project=PROJECT_ID, location=LOCATION_ID, http_options={'base_url': API_ENDPOINT}) prompt = "what weighs more, 1kg of feathers or 1kg of stones" safety_settings = [ SafetySetting( category=HarmCategory.HARM_CATEGORY_DANGEROUS_CONTENT, threshold=HarmBlockThreshold.BLOCK_LOW_AND_ABOVE, ), SafetySetting( category=HarmCategory.HARM_CATEGORY_HARASSMENT, threshold=HarmBlockThreshold.BLOCK_LOW_AND_ABOVE, ), SafetySetting( category=HarmCategory.HARM_CATEGORY_HATE_SPEECH, threshold=HarmBlockThreshold.BLOCK_LOW_AND_ABOVE, ), SafetySetting( category=HarmCategory.HARM_CATEGORY_SEXUALLY_EXPLICIT, threshold=HarmBlockThreshold.BLOCK_LOW_AND_ABOVE, ), ] response = client.models.generate_content( model=MODEL_ID, contents=prompt, config=GenerateContentConfig( safety_settings=safety_settings, ), ) # Response will be `None` if it is blocked. print(response.text)
レスポンスの例
This is a classic trick question! They both weigh the same: 1 kilogram. The difference is in the volume they occupy and the density of the materials.
コードを実行したときに使用した API 名をメモします。YOUR_REGION-aiplatform.googleapis.com は、Vertex AI のデフォルトの API 名です。API 名を変更して、コードを再度実行する必要があります。Workbench インスタンスのターミナルで TCPdump を実行すると、コードが PSC エンドポイントを使用していることを確認できます。
ターミナルで TCPdump を実行する
[ファイル] > [新規] > [ターミナル] をクリックして、Workbench でターミナルを開きます。
ターミナルにテキスト出力が表示されない場合は、ターミナルのテーマを更新する必要があります。[設定] > [ターミナル テーマ] > [ライト] または [ダーク] で設定します。
ターミナルから
sudo tcpdump host 10.100.100.0
Gemini コードを更新する
ノートブックに戻り、API エンドポイントを更新して、コードを再度実行します。API エンドポイントを <YOUR_REGION>-aiplatform**-psc4googep.p**.googleapis.com に変更しました。これは、PSC 固有の API 形式 <service>-<endpointname>.p.googleapis.com に沿ったものです。
JupyterLab ノートブックから
API_ENDPOINT="https://<YOUR_REGION>-aiplatform-psc4googep.p.googleapis.com" # API Endpoint
JupyterLab ノートブックから
from google import genai from google.genai.types import ( GenerateContentConfig, HarmBlockThreshold, HarmCategory, Part, SafetySetting, )
JupyterLab ノートブックから
from google import genai client= genai.Client(vertexai=True, project=PROJECT_ID, location=LOCATION_ID, http_options={'base_url': API_ENDPOINT}) prompt = "what weighs more, 1kg of feathers or 1kg of stones" safety_settings = [ SafetySetting( category=HarmCategory.HARM_CATEGORY_DANGEROUS_CONTENT, threshold=HarmBlockThreshold.BLOCK_LOW_AND_ABOVE, ), SafetySetting( category=HarmCategory.HARM_CATEGORY_HARASSMENT, threshold=HarmBlockThreshold.BLOCK_LOW_AND_ABOVE, ), SafetySetting( category=HarmCategory.HARM_CATEGORY_HATE_SPEECH, threshold=HarmBlockThreshold.BLOCK_LOW_AND_ABOVE, ), SafetySetting( category=HarmCategory.HARM_CATEGORY_SEXUALLY_EXPLICIT, threshold=HarmBlockThreshold.BLOCK_LOW_AND_ABOVE, ), ] response = client.models.generate_content( model=MODEL_ID, contents=prompt, config=GenerateContentConfig( safety_settings=safety_settings, ), ) # Response will be `None` if it is blocked. print(response.text)
レスポンスの例
They weigh the same. 1 kg is 1 kg, regardless of what it's made of.
TCPdump を確認する
ターミナルに戻り、PSC エンドポイント(10.100.100.0)への呼び出しを探します。TCPdump を終了します(Ctrl+C)。
出力例:
listening on ens4, link-type EN10MB (Ethernet), snapshot length 262144 bytes 19:12:01.473886 IP workbench-us-central1.us-central1-a.c.xxx.internal.41886 > 10.100.100.0.https: Flags [S], seq 3367930834, win 65320, options [mss 1420,sackOK,TS val 2933602967 ecr 0,nop,wscale 7], length 0 19:12:01.476561 IP 10.100.100.0.https > workbench-us-central1.us-central1-a.c.xxx.internal.41886: Flags [S.], seq 1863301110, ack 3367930835, win 65535, options [mss 1366,sackOK,TS val 3004118895 ecr 2933602967,nop,wscale 8], length 0 19:12:01.476602 IP workbench-us-central1.us-central1-a.c.xxx.internal.41886 > 10.100.100.0.https: Flags [.], ack 1, win 511, options [nop,nop,TS val 2933602969 ecr 3004118895], length 0 19:12:01.477283 IP workbench-us-central1.us-central1-a.c.xxx.internal.41886 > 10.100.100.0.https: Flags [P.], seq 1:1573, ack 1, win 511, options [nop,nop,TS val 2933602970 ecr 3004118895], length 1572 19:12:01.478836 IP 10.100.100.0.https > workbench-us-central1.us-central1-a.c.xxx.internal.41886: Flags [.], ack 1573, win 1045, options [nop,nop,TS val 3004118898 ecr 2933602970], length 0 19:12:01.480181 IP 10.100.100.0.https > workbench-us-central1.us-central1-a.c.xxx.internal.41886: Flags [P.], seq 1:6041, ack 1573, win 1045, options [nop,nop,TS val 3004118899 ecr 2933602970], length 6040 19:12:01.480183 IP 10.100.100.0.https > workbench-us-central1.us-central1-a.c.xxx.internal.41886: Flags [P.], seq 6041:8378, ack 1573, win 1045, options [nop,nop,TS val 3004118899 ecr 2933602970], length 2337 19:12:01.480215 IP workbench-us-central1.us-central1-a.c.xxx.internal.41886 > 10.100.100.0.https: Flags [.], ack 6041, win 485, options [nop,nop,TS val 2933602973 ecr 3004118899], length 0 19:12:01.480225 IP workbench-us-central1.us-central1-a.c.xxx.internal.41886 > 10.100.100.0.https: Flags [.], ack 8378, win 473, options [nop,nop,TS val 2933602973 ecr 3004118899], length 0 19:12:01.482580 IP workbench-us-central1.us-central1-a.c.xxx.internal.41886 > 10.100.100.0.https: Flags [P.], seq 1573:1653, ack 8378, win 501, options [nop,nop,TS val 2933602975 ecr 3004118899], length 80
SUCCESS!
11. クリーンアップ手順
JupyterLab ノートブックを閉じて Cloud Shell に戻ります。Cloud Shell がタイムアウトしていないことを確認します。変更されている場合は、変数をリセットします。
Cloud Shell から
gcloud config list project gcloud config set project <project-id> export project=$(gcloud config get-value project) export region=us-central1 export zone=$region-a echo $project echo $region echo $zone
すべてのリソースを削除します。
Cloud Shell から
gcloud workbench instances delete workbench-$region --location=$zone -q gcloud iam service-accounts delete workbench-sa@$project.iam.gserviceaccount.com -q gcloud dns managed-zones delete peeringzone -q gcloud compute forwarding-rules delete psc4googep --global -q gcloud compute addresses delete psc-ip --global -q gcloud network-connectivity spokes delete $region-vpn-spoke --region=$region -q gcloud network-connectivity spokes delete routing-vpc --global -q gcloud network-connectivity hubs delete ncc-hub -q gcloud compute vpn-tunnels delete onprem-to-routing-tunnel1 --region=$region --project=$project -q gcloud compute vpn-tunnels delete onprem-to-routing-tunnel0 --region=$region --project=$project -q gcloud compute vpn-tunnels delete routing-to-onprem-tunnel1 --region=$region --project=$project -q gcloud compute vpn-tunnels delete routing-to-onprem-tunnel0 --region=$region --project=$project -q gcloud compute vpn-gateways delete onprem-gateway --region=$region --project=$project -q gcloud compute vpn-gateways delete routing-gateway --region=$region --project=$project -q gcloud compute routers nats delete onprem-$region-nat --router=onprem-$region-cr-4nat --region=$region -q gcloud compute routers delete onprem-$region-cr-4nat --region=$region -q gcloud compute routers delete onprem-$region-cr --region=$region -q gcloud compute routers delete routing-$region-cr --region=$region -q gcloud compute networks subnets delete onprem-$region-subnet --region=$region -q gcloud compute networks delete onprem-vpc -q gcloud compute networks delete routing-vpc -q
12. 完了
以上で、この Codelab は完了です。
学習した内容
- NCC Hub を作成します。
- NCC Hub で VPC スポークを構成します。
- Cloud HA VPN を作成します。
- NCC Hub でハイブリッド スポークを構成します。
- Google API 用の PSC エンドポイントを作成します。
- HA-VPN を介してカスタムルートを構成します。
- DNS ピアリング ゾーンを構成します。
- Vertex Workbench インスタンスを構成する
- Google APIs API エンドポイントに PSC を使用するように Gemini Python コードを構成します。