1. 簡介
在本程式碼研究室中,您將部署內部 TCP Proxy 負載平衡器和混合式網路端點群組 (NEG),並發布為 PSC Producer Service。NEG 會包含跨雲端自行代管資料庫 (例如 JIRA、Confluence、Sharepoint) 的 IP 位址和通訊埠。
Private Service Connect 是 Google Cloud 網路功能,可讓消費者從虛擬私有雲網路內,以私密方式存取代管服務。同樣地,代管服務供應商也能在自己的虛擬私有雲或跨雲端網路中代管這些服務,並為消費者提供私人連線。舉例來說,當您使用 Private Service Connect 存取跨雲端資料庫時,您是服務供應商,而 Google (Agentspace) 是服務消費者。
課程內容
- Agentspace 的網路需求
- Agentspace 網路最佳做法
- 建立 Private Service Connect 生產端服務
軟硬體需求
- 具備「擁有者」權限的 Google Cloud 專案
2. 建構項目
您將建立生產者網路 agentspace-psc-demo,部署內部 TCP Proxy 負載平衡器,並透過 Private Service Connect (PSC) 將混合式 NEG 發布為服務。
3. 網路需求
以下是生產端網路的網路需求明細。在本程式碼研究室中,消費端是 Agentspace。
元件 | 說明 |
虛擬私有雲 (agentspace-psc-demo) | 自訂模式虛擬私有雲 |
PSC NAT 子網路 | 來自 Consumer VPC 網路的封包會使用來源 NAT (SNAT) 進行轉譯,因此原始來源 IP 位址會轉換為 Producer VPC 網路中 NAT 子網路的來源 IP 位址。每個服務連結支援一個 /29 子網路。 |
PSC 轉送規則子網路 | 用於為區域內部 TCP Proxy 負載平衡器分配 IP 位址。轉送規則子網路視為一般子網路。 |
僅限 Proxy 的子網路 | 系統會指派一個內部 IP 位址給每個負載平衡器的Proxy 。從 Proxy 傳送到後端 VM 或網路端點群組的封包,來源 IP 位址來自僅限 Proxy 的子網路。建議使用 /23 子網路,但系統支援的最小子網路為 /26。 每個區域都需要一個區域 Proxy 子網路。 |
混合式 NEG | 地端和其他雲端服務會視為其他 Cloud Load Balancing 後端。主要差異在於您使用混合式連線 NEG 來設定這些後端的端點。端點必須是有效的 IP:port 組合,負載平衡器可透過混合式連線產品 (例如 Cloud VPN 或 Cloud Interconnect) 連線至這些端點。 |
後端服務 | 後端服務是負載平衡器與後端資源之間的橋樑。在本教學課程中,後端服務會與混合式 NEG 建立關聯。 |
4. 最佳做法
- AgentSpace 支援跨雲端存取地端部署或運算 (例如 發布為服務供應商時,可使用 AWS EC2 和 Azure VM。
- 跨雲端資料庫的流量會來自區域 Proxy 子網路。因此,您必須更新防火牆規則,將這類流量加入允許清單。
- 雖然 Cloud Router 預設會通告僅限 Proxy 的子網路,但請確認跨雲端網路已瞭解這個子網路。
- 確認 Agentspace 虛擬私有雲網路已瞭解跨雲端資料庫的子網路或主機 IP 位址。
- 建立服務附件前,請先在 Producer 轉送規則中啟用全域存取權。
- 建立 Agentspace 端點時,請啟用全域存取權。
5. 程式碼研究室拓撲
6. 設定和需求
自行設定環境
- 登入 Google Cloud 控制台,然後建立新專案或重複使用現有專案。如果沒有 Gmail 或 Google Workspace 帳戶,請建立帳戶。
- 專案名稱是這個專案參與者的顯示名稱。這是 Google API 未使用的字元字串。你隨時可以更新。
- 專案 ID 在所有 Google Cloud 專案中都是不重複的,而且設定後即無法變更。Cloud 控制台會自動產生專屬字串,通常您不需要理會該字串。在大多數程式碼研究室中,您需要參照專案 ID (通常標示為
PROJECT_ID
)。如果您不喜歡產生的 ID,可以產生另一個隨機 ID。你也可以嘗試使用自己的名稱,看看是否可用。完成這個步驟後就無法變更,且專案期間都會維持這個設定。 - 請注意,有些 API 會使用第三個值,也就是「專案編號」。如要進一步瞭解這三種值,請參閱說明文件。
- 接著,您需要在 Cloud 控制台中啟用帳單,才能使用 Cloud 資源/API。完成這個程式碼研究室的費用不高,甚至可能完全免費。如要關閉資源,避免在本教學課程結束後繼續產生費用,您可以刪除建立的資源或專案。Google Cloud 新使用者可參加價值$300 美元的免費試用計畫。
啟動 Cloud Shell
雖然您可以透過筆電遠端操作 Google Cloud,但在本程式碼研究室中,您將使用 Google Cloud Shell,這是可在雲端執行的指令列環境。
在 Google Cloud 控制台中,點選右上工具列的 Cloud Shell 圖示:
佈建並連線至環境的作業只需幾分鐘即可完成。完成後,您應該會看到如下的內容:
這部虛擬機器搭載各種您需要的開發工具,提供永久的 5 GB 主目錄,而且在 Google Cloud 中運作,可大幅提升網路效能和驗證。您可以在瀏覽器中完成本程式碼研究室的所有作業。您不需要安裝任何軟體。
7. 事前準備
啟用 API
在 Cloud Shell 中,確認專案 ID 已設定完畢:
gcloud config list project
gcloud config set project [YOUR-PROJECT-ID]
project=[YOUR-PROJECT-ID]
region=[YOUR-REGION]
zone=[YOUR-ZONE]
echo $project
echo $region
啟用所有必要服務:
gcloud services enable compute.googleapis.com
8. 建立供應商虛擬私有雲網路
虛擬私有雲網路
在 Cloud Shell 中執行下列操作:
gcloud compute networks create agentspace-psc-demo --subnet-mode custom
建立子網路
PSC 子網路會與 PSC 服務連結建立關聯,以進行網路位址轉譯。
在 Cloud Shell 中,建立 PSC NAT 子網路:
gcloud compute networks subnets create producer-psc-nat-subnet --network agentspace-psc-demo --range 172.16.10.0/28 --region $region --purpose=PRIVATE_SERVICE_CONNECT
在 Cloud Shell 中,建立 Producer 轉送規則子網路:
gcloud compute networks subnets create producer-psc-fr-subnet --network agentspace-psc-demo --range 172.16.20.0/28 --region $region --enable-private-ip-google-access
在 Cloud Shell 中,建立 Producer 區域專屬的 Proxy 子網路,跨雲端資料庫會將其視為來源 IP。
gcloud compute networks subnets create $region-proxy-only-subnet \
--purpose=REGIONAL_MANAGED_PROXY \
--role=ACTIVE \
--region=$region \
--network=agentspace-psc-demo \
--range=10.10.10.0/24
保留負載平衡器的 IP 位址
在 Cloud Shell 中,為負載平衡器保留內部 IP 位址:
gcloud compute addresses create hybrid-neg-lb-ip \
--region=$region \
--subnet=producer-psc-fr-subnet
在 Cloud Shell 中,查看保留的 IP 位址。
gcloud compute addresses describe hybrid-neg-lb-ip \
--region=$region | grep -i address:
輸出內容範例:
gcloud compute addresses describe hybrid-neg-lb-ip --region=$region | grep -i address:
address: 172.16.20.2
設定 Hybrid NEG
建立混合式 NEG,並將 –network-endpoint-type 設為 NON_GCP_PRIVATE_IP_PORT
在 Cloud Shell 中,建立用於存取地端資料庫的混合式 NEG:
gcloud compute network-endpoint-groups create on-prem-hybrid-neg \
--network-endpoint-type=NON_GCP_PRIVATE_IP_PORT \
--network=agentspace-psc-demo \
--zone=$zone
在 Cloud Shell 中,根據參考架構,使用跨雲端資料庫的 IP 位址和通訊埠 (192.168.10.10 和通訊埠 443),更新混合式 NEG:
gcloud compute network-endpoint-groups update on-prem-hybrid-neg \
--add-endpoint=ip=192.168.10.10,port=443 \
--zone=$zone
建立地區健康狀態檢查
在 Cloud Shell 中,建立探測內部部署資料庫通訊埠 443 的健康狀態檢查:
gcloud compute health-checks create tcp on-prem-443-healthcheck \
--region=$region \
--port=443
建立網路防火牆政策和防火牆規則
在 Cloud Shell 中執行下列操作:
gcloud compute network-firewall-policies create agentspace-psc-demo-policy --global
gcloud compute network-firewall-policies associations create --firewall-policy agentspace-psc-demo-policy --network agentspace-psc-demo --name agentspace-psc-demo --global-firewall-policy
下列防火牆規則允許來自 PSC NAT 子網路範圍的流量,連上網路中的所有執行個體。
在 Cloud Shell 中執行下列操作:
gcloud compute network-firewall-policies rules create 2001 --action ALLOW --firewall-policy agentspace-psc-demo-policy --description "allow traffic from PSC NAT subnet" --direction INGRESS --src-ip-ranges 172.16.10.0/28 --global-firewall-policy --layer4-configs=tcp
9. 建立生產端服務
建立負載平衡器元件
在 Cloud Shell 中建立後端服務:
gcloud compute backend-services create producer-backend-svc --region=$region --load-balancing-scheme=INTERNAL_MANAGED --protocol=TCP --region=$region --health-checks=on-prem-443-healthcheck --health-checks-region=$region
在 Cloud Shell 中,將 Hybrid NEG 後端新增至後端服務:
gcloud compute backend-services add-backend producer-backend-svc --network-endpoint-group=on-prem-hybrid-neg --network-endpoint-group-zone=$zone --balancing-mode=CONNECTION --max-connections=100 --region=$region
在 Cloud Shell 中,建立目標 TCP Proxy,將要求轉送至後端服務:
gcloud compute target-tcp-proxies create producer-lb-tcp-proxy \
--backend-service=producer-backend-svc \
--region=$region
在下列語法中,建立已啟用全域存取權的轉送規則 (內部 TCP Proxy 負載平衡器)。
在 Cloud Shell 中執行下列操作:
gcloud compute forwarding-rules create producer-hybrid-neg-fr \
--load-balancing-scheme=INTERNAL_MANAGED \
--network-tier=PREMIUM \
--network=agentspace-psc-demo \
--subnet=producer-psc-fr-subnet \
--address=hybrid-neg-lb-ip \
--target-tcp-proxy=producer-lb-tcp-proxy \
--target-tcp-proxy-region=$region \
--region=$region \
--allow-global-access \
--ports=443
建立服務附件
如要發布服務,必須建立服務連結。您可以發布具有自動核准或明確核准功能的服務。
- 如要發布服務並自動允許任何消費者連線,請按照「發布具有自動核准功能的服務」一文中的操作說明進行。
- 如要發布服務並明確要求消費者核准,請在服務連結連線設定中選取「接受所選專案的連線」,並將「已接受的專案」欄位留空。
- 產生服務附件後,要求存取 Producer 服務的 Consumer 端點一開始會處於待處理狀態。如要授權連線,製作人必須接受發出消費者端點要求的專案。
在 Cloud Shell 中,建立服務附件 cc-database1-svc-attachment,並啟用自動核准:
gcloud compute service-attachments create cc-database1-svc-attachment --region=$region --producer-forwarding-rule=producer-hybrid-neg-fr --connection-preference=ACCEPT_AUTOMATIC --nat-subnets=producer-psc-nat-subnet
接著,取得並記下 selfLink URI 中列出的服務附件 (以 projects 開頭),以便在 Agentspace 中設定 PSC 端點。
selfLink: projects/<your-project-id>/regions/<your-region>/serviceAttachments/cc-database1-svc-attachment
在 Cloud Shell 中執行下列操作:
gcloud compute service-attachments describe cc-database1-svc-attachment --region=$region
預期輸出內容範例:
connectionPreference: ACCEPT_AUTOMATIC
creationTimestamp: '2025-07-06T16:05:14.706-07:00'
description: ''
enableProxyProtocol: false
fingerprint: rXjeAOjb41k=
id: '1726139744351862725'
kind: compute#serviceAttachment
name: cc-database1-svc-attachment
natSubnets:
- https://www.googleapis.com/compute/v1/projects/$project/regions/us-central1/subnetworks/producer-psc-nat-subnet
pscServiceAttachmentId:
high: '54619734758392808'
low: '1726139744351862725'
reconcileConnections: false
region: https://www.googleapis.com/compute/v1/projects/$project/regions/us-central1
selfLink: https://www.googleapis.com/compute/v1/projects/$project/regions/us-central1/serviceAttachments/cc-database1-svc-attachment
targetService: https://www.googleapis.com/compute/v1/projects/$project/regions/us-central1/forwardingRules/producer-hybrid-neg-fr
在 Cloud 控制台中,前往:
「網路服務」→「Private Service Connect」→「已發布的服務」
10. 在 Agentspace 中建立 PSC 端點連線
將 Producer Service Attachment 與 Agentspace 建立關聯前,請務必完成下列驗證:
- 跨雲端網路防火牆會將區域 Proxy 子網路加入允許清單。
- 跨雲端網路已瞭解區域 Proxy 子網路。
- Agentspace VPC 已瞭解跨雲端資料庫子網路或主機 IP。
將生產端服務連結 URI 與 Agentspace 建立關聯,並確保已選取全域存取權。以下是透過參考架構服務附件啟用全域存取權的範例。
如要完成私人網路設定,請參閱 Agentspace 第三方資料來源的進一步說明。
在 Cloud 控制台中驗證 PSC 端點
如要確認 Agentspace (消費者) 和生產者之間的 PSC 連線是否成功,請驗證連結至生產者服務的 Agentspace 租戶專案。這項資訊會顯示在「已連結的專案」下方。系統會隨機指派租戶專案 ID,但一律以「tp」結尾。
您可以在 Cloud 控制台中驗證 PSC 連線。在 Cloud 控制台中,前往:
依序選取「網路服務」→「Private Service Connect」→「已發布的服務」,然後選取服務 cc-database1-svc-attachment。
11. 清除
從單一 Cloud Shell 終端機刪除實驗室元件
gcloud compute service-attachments delete cc-database1-svc-attachment --region=$region -q
gcloud compute forwarding-rules delete producer-hybrid-neg-fr --region=$region -q
gcloud compute target-tcp-proxies delete producer-lb-tcp-proxy --region=$region -q
gcloud compute backend-services delete producer-backend-svc --region=$region -q
gcloud compute network-firewall-policies rules delete 2001 --firewall-policy agentspace-psc-demo-policy --global-firewall-policy -q
gcloud compute network-firewall-policies associations delete --firewall-policy=agentspace-psc-demo-policy --name=agentspace-psc-demo --global-firewall-policy -q
gcloud compute network-firewall-policies delete agentspace-psc-demo-policy --global -q
gcloud compute network-endpoint-groups delete on-prem-hybrid-neg --zone=$zone -q
gcloud compute addresses delete hybrid-neg-lb-ip --region=$region -q
gcloud compute networks subnets delete $region-proxy-only-subnet --region=$region -q
gcloud compute networks subnets delete producer-psc-nat-subnet --region=$region -q
gcloud compute networks subnets delete producer-psc-fr-subnet --region=$region -q
gcloud compute health-checks delete on-prem-443-healthcheck --region=us-central1 -q
gcloud compute networks delete agentspace-psc-demo -q
12. 恭喜
恭喜,您已成功設定並發布使用 Private Service Connect 的 Producer 服務。
您已建立生產端基礎架構,並瞭解如何建立混合式 NEG、生產端服務,以及將服務附件與 Agentspace 建立關聯。
Cosmopup 認為程式碼研究室超讚!
後續步驟
查看一些程式碼研究室…
- 使用 Private Service Connect 發布及使用服務
- 透過 Hybrid Networking、Private Service Connect 和內部 TCP Proxy 負載平衡器連線至地端服務
- 存取所有已發布的 Private Service Connect 程式碼研究室