本頁面說明如何從設定的虛擬私有雲 (VPC) 外部連線至 Cloud SQL 執行個體。
事前準備
開始之前,請務必完成下列操作:
- 建立 Cloud SQL 執行個體。
- 設定執行個體使用內部 IP 位址,而非外部 IP 位址。
關於外部連線
Cloud SQL 執行個體由 Google 代管虛擬私有雲中的多個節點組成。建立執行個體時,您也必須在其中一個虛擬私有雲,與包含新執行個體的 Google 代管虛擬私有雲之間,設定私人服務存取權或 Private Service Connect。透過這個對等互連連線,您可以使用內部 IP 位址存取執行個體虛擬私有雲上的資源,就像這些資源屬於您自己的虛擬私有雲一樣。
在下列情況下,請從連線的虛擬私有雲外部連線至執行個體:
應用程式在虛擬私有雲外部執行,您透過私人服務存取權或 Private Service Connect 連線至執行個體。
您的應用程式在 Google 網路以外的虛擬私有雲上執行。
您的應用程式是在公開網際網路上其他位置的機器上執行。
在上述所有情況下,您都必須設定額外服務,才能啟用這類連至 Cloud SQL 執行個體的外部連線。
建議您根據需求,採用下列解決方案建立外部連線:
如要開發專案或原型,或建立成本相對較低的正式環境,請在虛擬私有雲中設定中介虛擬機器 (VM) (也稱為堡壘)。您可以透過多種方法,在這個中介 VM 上建構,將其轉換為外部應用程式環境與 Cloud SQL 執行個體之間的安全連線。
如果正式環境需要高可用性,建議您透過 Cloud VPN 或 Cloud Interconnect,在虛擬私有雲和應用程式之間建立永久連線。
以下各節將說明這些解決方案。
透過中介 VM 連線
如要使用開放原始碼工具和最少的額外資源,從虛擬私有雲外部建立與 Cloud SQL 執行個體的連線,請在該虛擬私有雲中設定的中介 VM 上執行 Proxy 服務。您可以設定新的 VM,或使用已在 Cloud SQL 執行個體虛擬私有雲中執行的 VM。
做為自行管理的解決方案,使用中介 VM 的成本通常低於使用網路連線產品,且設定時間更短。但也有缺點:連線的可用性、安全性和資料處理量都取決於中介 VM,您必須將其視為專案的一部分進行維護。
透過 IAP 連線
使用 Identity-Aware Proxy (IAP),即可安全連線至 Cloud SQL 執行個體,不必公開中介 VM 的內部 IP 位址。您可以使用防火牆規則和 Identity and Access Management (IAM) 的組合,限制透過這條路徑的存取。因此,IAP 是開發和原型設計等非正式環境用途的理想解決方案。
在這張圖中,IAP 是虛擬私有雲外部用戶端與虛擬私有雲內部中介 VM 之間的閘道。用戶端會建立連至 IAP 的 SSH 通道。Cloud SQL Auth Proxy 會加密 VM 與 Cloud SQL 執行個體之間的流量。透過這兩個 Proxy,用戶端和執行個體之間就能建立通訊。
如要設定執行個體的 IAP 存取權,請按照下列步驟操作:
在外部用戶端上安裝 gcloud CLI。
在中介 VM 上,下載並安裝 Cloud SQL Auth Proxy。
在中介 VM 上啟動 Cloud SQL Auth Proxy。
由於 VM 已設定內部 IP 位址,因此啟動 Cloud SQL Auth Proxy 時,必須提供
--private-ip選項。在 Google Cloud 專案中,啟用 IAP TCP 轉送功能。
定義新的防火牆規則時,請允許輸入 TCP 流量傳送至通訊埠
22(SSH)。如果您使用專案的預設網路,並啟用預先填入的default-allow-ssh規則,則不必定義其他規則。使用透過 IAP 建立 SSH 連線,設定外部用戶端和中介 VM 之間的通訊埠轉送:
gcloud compute ssh VM_NAME \ --tunnel-through-iap \ --zone=ZONE_NAME \ --ssh-flag="-L 3306:localhost:3306"
請依指示取代下列項目:
- VM_NAME::VM 名稱
- ZONE_NAME::與 VM 相關聯的可用區名稱
在外部用戶端上,使用
mysql測試連線。
透過 SOCKS Proxy 連線
在中介 VM 上執行 SOCKS 服務,可提供彈性且可擴充的 Cloud SQL 執行個體連線,並由 Cloud SQL Auth Proxy 提供端對端加密。
如要進一步瞭解如何使用 SOCKS Proxy 連線至 Cloud SQL 執行個體,請參閱「使用中介 Proxy (SOCKS5) 連線」。
透過集區器連線
如要在中介 VM (而非外部用戶端) 上安裝及執行 Cloud SQL Auth Proxy,可以將其與通訊協定感知 Proxy (也稱為集區) 配對,啟用安全連線。Proxy SQL 是熱門的 MySQL 開放原始碼集區。
在這個解決方案中,您會在中介 VM 上執行 Cloud SQL Auth Proxy 和集區。接著,用戶端或應用程式就能透過 SSL 直接安全連線至集結器,不必執行任何額外服務。集區程式會透過 Cloud SQL Auth Proxy,將 PostgreSQL 查詢傳遞至 Cloud SQL 執行個體。
每個 Cloud SQL 執行個體都有獨立的內部 IP 位址,因此每個 Proxy 服務只能與一個特定執行個體通訊:主要執行個體、待命執行個體或讀取集區。因此,您必須為每個執行個體執行獨立的集區服務,並正確設定 SSL 憑證。
透過 Cloud VPN 或 Cloud Interconnect 連線
如果正式環境工作需要高可用性 (HA),建議您根據外部服務的需求和網路拓撲,使用 Google Cloud網路連線產品,例如 Cloud VPN 或 Cloud Interconnect。接著,您需要設定 Cloud Router,advertise 適當的路由。
如要進一步瞭解網路連線解決方案,請參閱「選擇網路連線產品」。
後續步驟
- 進一步瞭解私人 IP。
- 進一步瞭解 Google 代管虛擬私有雲中的私人服務連線和地端部署連線能力。
- 進一步瞭解如何使用 Private Service Connect 連線至 Cloud SQL 執行個體。