GSP1317
總覽
您可以使用 Network Connectivity Center (NCC),透過虛擬私有雲(VPC) 輪輻大規模建立 VPC 之間的連線。將 VPC 定義為 VPC 輪輻後,即可透過 NCC 中樞連結多個 VPC 網路。
NCC 是中樞與輪輻的控制層模式,可在 Google Cloud 管理網路連線。中樞資源提供集中式連線管理模式,可互連輪輻。
在本實驗室,您將學習如何使用 gcloud 指令設定 NCC 中樞,並在控制台查看變更。NCC 中樞會做為控制層,負責在每個 VPC 輪輻之間建立路由設定。您也會設定 Private Service Connect 來連至 Cloud SQL。

課程內容
本實驗室將說明如何執行下列工作:
- 使用 NCC 建立全網狀 VPC 連線。
- 設定 Private Service Connect。
- 透過輪輻傳送流量,驗證與 Cloud SQL 的連線。
設定和需求
瞭解以下事項後,再點選「Start Lab」按鈕
請詳閱以下操作說明。實驗室活動會計時,且中途無法暫停。點選「Start Lab」後就會開始計時,顯示可使用 Google Cloud 資源的時間。
您將在真正的雲端環境完成實作實驗室活動,而不是模擬或示範環境。為此,我們會提供新的暫時憑證,供您在實驗室活動期間登入及存取 Google Cloud。
為了順利完成這個實驗室,請先確認:
- 可以使用標準的網際網路瀏覽器 (Chrome 瀏覽器為佳)。
注意事項:請使用無痕模式 (建議選項) 或私密瀏覽視窗執行此實驗室,這可以防止個人帳戶和學員帳戶之間的衝突,避免個人帳戶產生額外費用。
- 是時候完成實驗室活動了!別忘了,活動一旦開始將無法暫停。
注意事項:務必使用實驗室專用的學員帳戶。如果使用其他 Google Cloud 帳戶,可能會產生額外費用。
如何開始研究室及登入 Google Cloud 控制台
-
點選「Start Lab」按鈕。如果實驗室會產生費用,畫面上會出現選擇付款方式的對話方塊。左側的「Lab Details」窗格會顯示下列項目:
- 「Open Google Cloud console」按鈕
- 剩餘時間
- 必須在這個研究室中使用的臨時憑證
- 完成這個實驗室所需的其他資訊 (如有)
-
點選「Open Google Cloud console」;如果使用 Chrome 瀏覽器,也能按一下滑鼠右鍵,選取「在無痕視窗中開啟連結」。
接著,實驗室會啟動相關資源,並開啟另一個分頁,顯示「登入」頁面。
提示:您可以在不同的視窗中並排開啟分頁。
注意:如果頁面中顯示「選擇帳戶」對話方塊,請點選「使用其他帳戶」。
-
如有必要,請將下方的 Username 貼到「登入」對話方塊。
{{{user_0.username | "Username"}}}
您也可以在「Lab Details」窗格找到 Username。
-
點選「下一步」。
-
複製下方的 Password,並貼到「歡迎使用」對話方塊。
{{{user_0.password | "Password"}}}
您也可以在「Lab Details」窗格找到 Password。
-
點選「下一步」。
重要事項:請務必使用實驗室提供的憑證,而非自己的 Google Cloud 帳戶憑證。
注意:如果使用自己的 Google Cloud 帳戶來進行這個實驗室,可能會產生額外費用。
-
按過後續的所有頁面:
- 接受條款及細則。
- 由於這是臨時帳戶,請勿新增救援選項或雙重驗證機制。
- 請勿申請免費試用。
Google Cloud 控制台稍後會在這個分頁開啟。
注意:如要使用 Google Cloud 產品和服務,請點選「導覽選單」,或在「搜尋」欄位輸入服務或產品名稱。
啟動 Cloud Shell
Cloud Shell 是搭載多項開發工具的虛擬機器,提供永久的 5 GB 主目錄,而且在 Google Cloud 中運作。Cloud Shell 提供指令列存取權,方便您使用 Google Cloud 資源。
-
點按 Google Cloud 控制台頂端的「啟用 Cloud Shell」圖示
。
-
系統顯示視窗時,請按照下列步驟操作:
- 繼續操作 Cloud Shell 視窗。
- 授權 Cloud Shell 使用您的憑證發出 Google Cloud API 呼叫。
連線建立完成即代表已通過驗證,而且專案已設為您的 Project_ID:。輸出內容中有一行文字,宣告本工作階段的 Project_ID:
Your Cloud Platform project in this session is set to {{{project_0.project_id | "PROJECT_ID"}}}
gcloud 是 Google Cloud 的指令列工具,已預先安裝於 Cloud Shell,並支援 Tab 鍵自動完成功能。
- (選用) 您可以執行下列指令來列出使用中的帳戶:
gcloud auth list
- 點按「授權」。
輸出內容:
ACTIVE: *
ACCOUNT: {{{user_0.username | "ACCOUNT"}}}
To set the active account, run:
$ gcloud config set account `ACCOUNT`
- (選用) 您可以使用下列指令來列出專案 ID:
gcloud config list project
輸出內容:
[core]
project = {{{project_0.project_id | "PROJECT_ID"}}}
注意:如需 gcloud 的完整說明,請前往 Google Cloud 參閱 gcloud CLI 總覽指南。
事前準備
實驗室中需多次切換兩項專案,請務必確認您位於正確的位置。建議使用 2 個 Cloud Shell 視窗,各對應一項專案。
啟用 Network Connectivity API
您必須先執行下列指令,啟用 Network Connectivity API 後,才能使用 Network Connectivity Center 執行任何工作:
gcloud services enable networkconnectivity.googleapis.com
驗證現有的 Google Cloud 資源
我們已在本實驗室為您建立網路資源。請花點時間透過 Google Cloud 控制台或指令列,查看可用的 VPC 網路和 VM。
您會看到下列資源:
- 2 個 VPC
- 已啟用 Private Service Connect 的 Cloud SQL Postgres 執行個體
設定資料移轉連線
設定資料移轉連線時,您會使用 NCC 建立中樞和輪輻,讓資料能透過 Google Cloud 在不同站點之間移轉。
工作 1:建立中樞
- 執行下列指令來建立 NCC 中樞:
gcloud network-connectivity hubs create ncc-hub
- 描述新建立的 NCC 中樞:
gcloud network-connectivity hubs describe ncc-hub
點選「Check my progress」,確認目標已達成。
建立 NCC 中樞。
工作 2:將 VPC 設為 NCC 輪輻
管理員可排除子網路路由,避免從 VPC 輪輻匯出至 NCC 中樞的路由表。您將根據匯總前置字串建立排除匯出規則,避免 VPC1 的子網路匯出至 NCC 中樞路由表。
- 使用這個
gcloud 指令,列出屬於 VPC1 的所有子網路:
gcloud config set accessibility/screen_reader false
gcloud compute networks subnets list --network=vpc1-ncc
- 將 VPC1 設為 NCC 輪輻,並使用
export-exclude-ranges 關鍵字來篩選該特定範圍的 /24 匯總路由,以免 /25 子網路配對匯入中樞路由表:
gcloud network-connectivity spokes linked-vpc-network create vpc1-spoke1 \
--hub=ncc-hub \
--vpc-network=vpc1-ncc \
--exclude-export-ranges=10.1.2.0/24 \
--global
- 列出 NCC 中樞預設路由表的內容:
gcloud network-connectivity hubs route-tables routes list --hub=ncc-hub --route_table=default --filter="NEXT_HOP:vpc1-ncc"
- 將 VPC2 設為 NCC 輪輻:
gcloud network-connectivity spokes linked-vpc-network create vpc2-spoke2 \
--hub=ncc-hub \
--vpc-network=vpc2-ncc \
--exclude-export-ranges=10.3.3.0/24 \
--global
- 列出 NCC 中樞預設路由表的內容,並檢查輸出內容:
gcloud network-connectivity hubs route-tables routes list --hub=ncc-hub --route_table=default
點選「Check my progress」,確認目標已達成。
將 VPC 設為 NCC 輪輻。
工作 3:驗證 IPv4 資料路徑連線
- 依序前往「Compute Engine」>「VM 執行個體」,然後透過 SSH 連至 vm1-vpc1-ncc。執行下列指令,啟動 TCP 傾印,追蹤來自 vm2-vpc2-ncc 的 ICMP 封包。提醒您,這個 VM 位於 VPC2。
vm1-vpc1-ncc
sudo tcpdump -i any icmp -v -e -n
- 建立連至 vm2-vpc2-ncc 的 SSH 工作階段,並連線偵測 (ping)
vm1-vpc1-ncc 的 IP 位址。
vm2-vpc2-ncc
ping 10.1.1.2
工作 4:設定 Private Service Connect
Private Service Connect (PSC) 這項功能可讓您使用自己的內部 IP 位址,在 VPC 網路之間建立私密安全連線。
預留內部 IP 位址
- 在環境變數 REGION 參照的 Google Cloud 區域中,找出 VPC 子網路 CIDR 範圍,並在其中選擇 Private Service Connect 端點的可用 IP 位址。
gcloud compute networks subnets describe vpc2-ncc-subnet1 \
--region={{{project_0.default_region | REGION}}} \
--project={{{project_0.project_id|PROJECT_ID}}} \
--format="value(ipCidrRange)"
- 在上述取得的 VPC 子網路 CIDR 範圍中,為 Private Service Connect 端點預留內部 IP 位址。
將 [ADDRESS] 換成前一個指令輸出的 CIDR 範圍內的 IP 位址。
gcloud compute addresses create cloudsql-psc \
--project={{{project_0.project_id|PROJECT_ID}}} \
--region={{{project_0.default_region | REGION}}} \
--subnet=vpc2-ncc-subnet1 \
--addresses=[ADDRESS]
注意:如果遇到「Could not fetch resource: IP 'X.X.X.X' is already being used by another resource」錯誤,請嘗試使用相同 CIDR 範圍內的其他 IP 位址。此外,也能依序前往「Compute Engine」>「VM 執行個體」,並使用與 vm2-vpc2-ncc 和 cloudsql-client VM 執行個體內部 IP 位址不同的 IP 位址。
- 確認已預留內部 IP 位址,且狀態為「RESERVED」。請記下 [ADDRESS/RANGE],稍後會用到。
gcloud compute addresses list \
--project={{{project_0.project_id|PROJECT_ID}}} \
--filter="name=cloudsql-psc"
取得服務連結 URI
建立啟用 Private Service Connect 的 Cloud SQL 執行個體後,請取得服務連結 URI,並使用該 URI 和上述預留的內部 IP 位址,建立 Private Service Connect 端點。
gcloud sql instances describe {{{project_0.startup_script.postgres-instance}}} \
--project={{{project_0.project_id|PROJECT_ID}}} \
--format="value(pscServiceAttachmentLink)"
建立 Private Service Connect
- 建立 Private Service Connect 端點,並指向 Cloud SQL 服務連結 URI。
將 [Service_Attachment_URI] 換成前一個指令輸出的服務連結 URI。
gcloud compute forwarding-rules create cloudsql-psc-ep \
--address=cloudsql-psc \
--project={{{project_0.project_id|PROJECT_ID}}} \
--region={{{project_0.default_region | REGION}}} \
--network=vpc2-ncc \
--target-service-attachment=[Service_Attachment_URI] \
--allow-psc-global-access
- 確認端點可連至服務連結。
gcloud compute forwarding-rules describe cloudsql-psc-ep \
--project={{{project_0.project_id|PROJECT_ID}}} \
--region={{{project_0.default_region | REGION}}} \
--format="value(pscConnectionStatus)"
設定 DNS 代管區域
如要為 Cloud SQL 執行個體新增建議的 DNS 名稱,建議您在對應的 VPC 網路中建立私人 DNS 區域。
gcloud dns managed-zones create cloudsql-dns \
--project={{{project_0.project_id|PROJECT_ID}}} \
--description="DNS zone for the Cloud SQL instances" \
--dns-name={{{project_0.default_region | REGION}}}.sql.goog. \
--networks=vpc2-ncc \
--visibility=private
為 Private Service Connect 新增 DNS 記錄
- 取得 Cloud SQL 執行個體的建議 DNS 記錄。
gcloud sql instances describe {{{project_0.startup_script.postgres-instance}}} \
--project={{{project_0.project_id|PROJECT_ID}}} \
--format="value(dnsName)"
從輸出內容找出 DNS 記錄,下一個步驟會用到。
- 將建議的 DNS 記錄新增至 DNS 代管區域。
將 [DNS_RECORD] 換成建議的 DNS 記錄,並將 [ADDRESS/RANGE] 換成前一個指令輸出的位址/範圍。
gcloud dns record-sets create [DNS_RECORD] \
--project={{{project_0.project_id|PROJECT_ID}}} \
--type=A \
--rrdatas=[ADDRESS/RANGE] \
--zone=cloudsql-dns
點選「Check my progress」,確認目標已達成。
設定 Private Service Connect。
工作 5:透過 Private Service Connect 連至 Cloud SQL
- 連至
cloudsql-client VM 執行個體:
gcloud compute ssh --zone {{{project_0.default_zone | ZONE}}} "cloudsql-client" \
--tunnel-through-iap --project {{{project_0.project_id|PROJECT_ID}}}
- 連至執行個體,換掉
[DNS_RECORD],密碼則使用 changeme:
psql "sslmode=disable dbname=postgres user=postgres host=[DNS_RECORD]"
- 建立資料庫:
CREATE DATABASE company;
- 現在列出所有資料庫:
\l
- 連至員工資料庫:
\c company
- 在公司資料庫中建立資料表:
CREATE TABLE employees (
id SERIAL PRIMARY KEY,
first VARCHAR(255) NOT NULL,
last VARCHAR(255) NOT NULL,
salary DECIMAL (10, 2)
);
- 將資料插入公司資料庫的員工資料表:
INSERT INTO employees (first, last, salary) VALUES
('Max', 'Mustermann', 5000.00),
('Anna', 'Schmidt', 7000.00),
('Peter', 'Mayer', 6000.00);
- 查詢員工資料表:
SELECT * FROM employees;
- 退出 Postgres 資料庫和 VM,然後返回 Cloud Shell:
\q
exit
點選「Check my progress」,確認目標已達成。
透過 Private Service Connect 連至 Cloud SQL。
工作 6:刪除資源
在正式環境中,您必須刪除未使用的資源,以免產生費用。以下說明如何輕鬆移除本實驗室所用的輪輻和中樞:
刪除輪輻和中樞
- 刪除 NCC 輪輻:
gcloud network-connectivity spokes delete vpc1-spoke1 --global --quiet
gcloud network-connectivity spokes delete vpc2-spoke2 --global --quiet
- 刪除 NCC 中樞:
gcloud network-connectivity hubs delete ncc-hub --quiet
- 刪除 DNS 記錄:
gcloud dns record-sets delete [DNS_RECORD] \
--project={{{project_0.project_id|PROJECT_ID}}} \
--type=A \
--zone=cloudsql-dns
- 刪除 DNS 代管區域:
gcloud dns managed-zones delete cloudsql-dns \
--project={{{project_0.project_id|PROJECT_ID}}} \
--quiet
恭喜!
您已瞭解如何使用 Network Connectivity Center,為現有的 Google Cloud 資源建立中樞和輪輻,並驗證資料是否能透過 NCC 移轉。
Google Cloud 教育訓練與認證
協助您瞭解如何充分運用 Google Cloud 的技術。我們的課程會介紹專業技能和最佳做法,讓您可以快速掌握要領並持續進修。我們提供從基本到進階等級的訓練課程,並有隨選、線上和虛擬課程等選項,方便您抽空參加。認證可協助您驗證及證明自己在 Google Cloud 技術方面的技能和專業知識。
使用手冊上次更新日期:2025 年 6 月 12 日
實驗室上次測試日期:2025 年 6 月 12 日
Copyright 2026 Google LLC 保留所有權利。Google 和 Google 標誌是 Google LLC 的商標,其他公司和產品名稱則有可能是其關聯公司的商標。