1. 簡介
在本程式碼研究室中,您將建立第 7 層區域內部應用程式負載平衡器和 Private Service Connect 後端,以取得 Looker 的北向存取權。如要從北向存取 Looker,必須將 Consumer VPC 列入 Looker PSC 執行個體的許可清單。
Private Service Connect 是 Google Cloud 網路功能,可讓消費者從虛擬私有雲網路內,以私密方式存取代管服務。同樣地,代管服務生產端也能在各自獨立的虛擬私有雲網路中代管這些服務,並為消費者提供私人連線。舉例來說,如果您使用 Private Service Connect 存取 Looker,您就是服務使用者,而 Google 則是服務供應商,如圖 1 所示。
圖 1.

南向存取權 (也稱為反向 PSC) 可讓消費者以生產者身分建立已發布的服務,允許 Looker 存取地端、虛擬私有雲、代管服務和網際網路上的端點。無論 Looker PSC 部署在哪個區域,您都可以在任何區域部署南向連線,如圖 2 所示。
圖 2.

課程內容
- 網路需求
- 更新 Looker 許可清單,允許北向存取
- 在消費者虛擬私有雲中建立 Private Service Connect 後端
- Google 憑證與自行簽署的憑證
軟硬體需求
- 具備「擁有者」權限的 Google Cloud 專案
- 已註冊網域
- 現有的 Looker PSC 執行個體

2. 建構項目
您將建立允許的 Consumer 網路 (looker-psc-demo),以部署需要 Google 或自行管理憑證的區域內部 L7 應用程式負載平衡器和 PSC 後端 NEG。詳情請參閱負載平衡器和憑證摘要頁面。
3. 網路需求
以下是網路需求明細:
元件 | 說明 |
虛擬私有雲 (looker-psc-demo) | 自訂模式虛擬私有雲 |
PSC NEG 子網路 | 用於為網路端點群組分配 IP 位址 |
僅限 Proxy 子網路 | 系統會指派一個內部 IP 位址給每個負載平衡器的Proxy 。從 Proxy 傳送到後端 VM 或端點的封包,其來源 IP 位址來自僅限 Proxy 的子網路。 |
後端服務 | 後端服務是負載平衡器與後端資源之間的橋樑。在本教學課程中,後端服務會與 PSC NEG 建立關聯。 |
4. 程式碼研究室拓撲

5. 設定和需求
自修實驗室環境設定
- 登入 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 圖示:

佈建並連線至環境的作業需要一些時間才能完成。完成後,您應該會看到如下的內容:

這部虛擬機器搭載各種您需要的開發工具,並提供永久的 5GB 主目錄,而且可在 Google Cloud 運作,大幅提升網路效能並強化驗證功能。您可以在瀏覽器中完成本程式碼研究室的所有作業。您不需要安裝任何軟體。
6. 事前準備
啟用 API
在 Cloud Shell 中,確認專案 ID 已設定完畢:
gcloud config list project
gcloud config set project [YOUR-PROJECT-ID]
project=[YOUR-PROJECT-ID]
region=[YOUR-REGION]
echo $project
echo $region
啟用所有必要服務:
gcloud services enable compute.googleapis.com
7. 消費者網路
在下一節中,您將建立用戶網路,並在 Looker PSC 虛擬私有雲允許清單中更新。
虛擬私有雲網路
在 Cloud Shell 中執行下列操作:
gcloud compute networks create looker-psc-demo --subnet-mode custom
建立子網路
在 Cloud Shell 中,建立消費者網路端點群組子網路:
gcloud compute networks subnets create consumer-psc-neg-subnet --network looker-psc-demo --range 172.16.30.0/28 --region $region --enable-private-ip-google-access
在 Cloud Shell 中,建立內部應用程式負載平衡器子網路:
gcloud compute networks subnets create consumer-ilb-subnet --network looker-psc-demo --range 172.16.40.0/28 --region $region --enable-private-ip-google-access
在 Cloud Shell 中,建立生產者區域專屬的僅限 Proxy 子網路:
gcloud compute networks subnets create $region-proxy-only-subnet \
--purpose=REGIONAL_MANAGED_PROXY \
--role=ACTIVE \
--region=$region \
--network=looker-psc-demo \
--range=10.10.10.0/24
8. 建立自訂網域
如要建立自訂網域,請按照下列步驟操作:
在下方範例中,looker.cosmopup.com 是自訂網域

OAuth 範例
以下是子網域 looker.cosmopup.com 的授權來源和回呼 OAuth 憑證範例。

9. 憑證
您可以建立 Compute Engine 或 Certificate Manager 憑證。您可以使用下列任一方法,透過 Certificate Manager 建立憑證:
- 區域性自行管理憑證。如要瞭解如何建立及使用區域性自行管理憑證,請參閱部署區域性自行管理憑證。不支援憑證對應。
- 區域性 Google 代管憑證。系統不支援憑證對應。Certificate Manager 支援下列類型的區域性 Google 代管憑證:
- 區域性 Google 代管憑證,並提供專案 DNS 授權。詳情請參閱「部署區域 Google 代管憑證」。
- 透過憑證授權單位服務,使用區域性 Google 代管 (私人) 憑證。詳情請參閱「使用 CA Service 部署區域 Google 代管憑證」。
10. Looker 虛擬私有雲允許清單
查看允許的 VPC
在下一節中,您將使用 Cloud Console 使用者介面查看 Looker 允許的 VPC 清單。
在 Cloud 控制台中,前往:
Looker → Looker 執行個體 → 詳細資料
以下範例顯示「允許的虛擬私有雲」清單中沒有任何項目:

更新允許的 VPC
將 looker-psc-demo 新增為允許的虛擬私有雲,更新 Looker 執行個體以支援北向存取。
在 Cloud 控制台中,前往:
依序點選「Looker」→「Looker 執行個體」→「編輯」

「連線」→「允許的虛擬私有雲」
請務必選取部署 looker-psc-demo 的專案,然後選取 VPC looker-psc-demo,再按一下「繼續」。


驗證允許的虛擬私有雲
查看更新後的「允許的虛擬私有雲」清單
在 Cloud 控制台中,前往:
Looker → Looker 執行個體 → 詳細資料

11. 建立 PSC 後端
Looker PSC 做為服務供應商,會產生服務連結 URI,供服務使用者部署端點和後端,以取得 Looker 的北向存取權。在下一個步驟中,您會找出 Looker PSC 服務附件 URI,然後在 Consumer VPC 中建立 Private Service Connect 網路端點群組 (NEG) 後端。
找出 Looker PSC 服務連結
在 Cloud Console 中,前往並複製服務附件 URI:
Looker → Looker 執行個體 → 詳細資料

建立 PSC 網路端點群組
在 Cloud Shell 中執行下列指令,請務必更新 psc-target-service:
gcloud compute network-endpoint-groups create looker-northbound-neg \
--network-endpoint-type=private-service-connect \
--psc-target-service=[UPDATE WITH YOU LOOKER SERVICE ATTACHMENT URI] \
--region=$region \
--network=looker-psc-demo \
--subnet=consumer-psc-neg-subnet
範例:
gcloud compute network-endpoint-groups create looker-northbound-neg \
--network-endpoint-type=private-service-connect \
--psc-target-service=projects/t7ec792caf2a609d1-tp/regions/us-central1/serviceAttachments/looker-psc-f51982e2-ac0d-48b1-91bb-88656971c183 \
--region=$region \
--network=looker-psc-demo \
--subnet=consumer-psc-neg-subnet
驗證 PSC 網路端點群組建立作業
在 Cloud Shell 中執行下列操作,確保 pscConnectionStatus 為「accepted」:
gcloud compute network-endpoint-groups describe looker-northbound-neg --region=$region | grep -i pscConnectionStatus:
範例:
user@cloudshell$ gcloud compute network-endpoint-groups describe looker-northbound-neg --region=$region | grep -i pscConnectionStatus:
pscConnectionStatus: ACCEPTED
建立區域性內部應用程式負載平衡器
在下列步驟中,您將使用 Cloud Console 建立區域內部應用程式負載平衡器,同時將產生的憑證與前端設定建立關聯。
在 Cloud 控制台中,前往:
「網路服務」→「負載平衡」→「建立負載平衡器」

選取下列選項:

建立後端設定
選取下列選項,並根據部署作業自訂環境:
- 部署網路基礎架構時使用的區域
- 網路:looker-psc-demo
- 系統會根據您的區域和網路,自動填入僅限 Proxy 的子網路




轉送規則
不需要設定

前端設定



確認已啟用負載平衡器,並取得 IP 位址。
在 Cloud 控制台 → 網路服務 → 負載平衡 → looker-ilb-alb

12. DNS 解析
自訂網域的 DNS 解析可以是地端部署或 Cloud DNS 的權威解析。在本教學課程中,我們會將 Cloud DNS 定義為 Looker 自訂網域的權威伺服器。如要啟用地端部署到 GCP DNS 的解析功能,必須啟用「傳入伺服器政策」。建立傳入伺服器政策時,Cloud DNS 會在套用伺服器政策的 VPC 網路中,建立傳入伺服器政策進入點。傳入伺服器政策進入點就是內部 IPv4 位址,來自適用 VPC 網路中每個子網路的主要 IPv4 位址範圍,但僅限 Proxy 子網路除外。
在下列章節中,系統會為 Looker 自訂網域 (looker.cosmopup.com) 建立私人 DNS 區域和 A 記錄,其中包含負載平衡器 IP 位址。
13. 建立私人 DNS 區域
在 Cloud Shell 中建立 Cloud DNS 私人區域。
gcloud dns --project=$projectid managed-zones create looker-cosmopup-dns --description="" --dns-name="looker.cosmopup.com." --visibility="private" --networks="https://compute.googleapis.com/compute/v1/projects/$projectid/global/networks/looker-psc-demo"
在 Cloud Shell 中,建立包含負載平衡器 IP 位址的 A 記錄 (該位址是在稍早的步驟中取得)。
gcloud dns --project=$projectid record-sets create looker.cosmopup.com. --zone="looker-cosmopup-dns" --type="A" --ttl="300" --rrdatas="<insert-your-ip>"
範例:
gcloud dns --project=$projectid record-sets create looker.cosmopup.com. --zone="looker-cosmopup-dns" --type="A" --ttl="300" --rrdatas="172.16.20.7"
接著,您必須在 looker-psc-demo 虛擬私有雲和內部部署網路之間設定混合式網路 (例如互連網路、高可用性 VPN),才能啟用連線。
如要建立混合式 NEG 與內部部署環境的連線,請按照下列步驟操作:
- 選擇網路連線產品 | Google Cloud
- 在採用 VPC 對等互連的中樞和輪輻架構中,混合 NEG 會部署在與 Cloud Router 相同的 VPC (中樞) 中
- 請務必更新內部部署防火牆,以配合 Proxy 專用子網路範圍,因為這個子網路會做為與內部部署工作負載通訊的來源 IP 位址
- 將傳入轉送 IP 位址設為 looker.cosomopup.com 的 DNS 解析器,更新地端部署 DNS
存取 Looker 使用者介面
負載平衡器運作後,您就可以透過網路瀏覽器存取自訂 Looker 網域。請注意,您可能會遇到警告,具體情況取決於使用的憑證類型,例如不受信任的憑證與受信任的憑證。
以下是存取 Looker 自訂網域 looker.cosmopup.com 的範例 (不受信任的憑證),可取得 Looker UI 的北向存取權:

14. 清理
在單一 Cloud Shell 終端機中刪除實驗室元件:
gcloud compute forwarding-rules delete regional-internal-alb-fr --region=$region -q
gcloud compute target-https-proxies delete regional-internal-alb-target-proxy --region=$region -q
gcloud compute url-maps delete regional-internal-alb --region=$region -q
gcloud compute backend-services delete looker-psc-neg-backend-svc --region=$region -q
gcloud compute addresses delete regional-alb-static-ip --region=$region -q
gcloud compute network-endpoint-groups delete looker-northbound-neg --region=$region -q
gcloud compute networks delete looker-psc-demo -q
15. 恭喜
恭喜!您已成功設定並驗證使用客戶網域和區域內部應用程式負載平衡器,與 Looker 的北向連線。
您建立了消費者基礎架構、瞭解如何建立 PSC NEG 和自訂網域,並認識不同的憑證選項。許多精彩內容可協助您開始使用 Looker。
Cosmopup 認為程式碼研究室很棒!

後續步驟
查看一些程式碼研究室…
- 使用 Private Service Connect 發布及使用服務
- 透過 Private Service Connect 和內部 TCP Proxy 負載平衡器,透過混合式網路連線至地端服務
- 存取所有已發布的 Private Service Connect 程式碼研究室