您可以建立來源和目的地資料庫私人 IP 位址之間的連線,透過私人網路遷移資料。如要為目的地資料庫設定私人 IP 位址,可以使用虛擬私有雲對等互連搭配私人服務存取權,或使用 Private Service Connect。
每種連線方式都有各自的優點和缺點。請務必選擇最適合您情境的方法。如要進一步瞭解 Cloud SQL 中的私人服務存取權和 Private Service Connect,請參閱 Cloud SQL 說明文件中的私人 IP 總覽。
使用虛擬私有雲對等互連設定連線
虛擬私有雲對等互連會設定虛擬私有雲來彼此通訊。如果來源位於 Cloud SQL 或 Compute Engine 的相同 Google Cloud 專案中,目的地就能直接與來源通訊。 如果來源在 VPN 內 (例如在 AWS 或您自己的地端部署 VPN 內),則請設定來源 VPN 和 Google Cloud VPN,方便彼此搭配運作。詳情請參閱 透過 VPN 連線虛擬私有雲。系統不支援虛擬私有雲鏈結。如果來源位於其他 Google Cloud 專案,請參閱「共用虛擬私有雲總覽」,瞭解如何將多個專案的資源連線至共用虛擬私有雲網路,以進行虛擬私有雲對等互連。
您必須設定來源資料庫伺服器的防火牆,允許整個內部 IP 範圍,該範圍是為虛擬私有雲網路的私人服務連線所分配,而 Cloud SQL 目的地執行個體會將該範圍做為 ipConfiguration 設定的 privateNetwork 欄位。
如要在主控台中尋找內部 IP 範圍:
前往控制台的「VPC networks」(VPC 網路) 頁面。 Google Cloud
選取要使用的 VPC 網路。
依序選取「私人服務存取權」>「分配的服務 IP 範圍」。
找出與 servicenetworking-googleapis-com 建立的連線相關聯的內部 IP 範圍。
虛擬私有雲對等互連會使用私人服務存取權,您必須為每個使用虛擬私有雲對等互連的專案設定一次。建立 private services access
後,請測試遷移工作,確認連線是否正常。
為資料庫移轉服務設定私人服務存取權
如果您為任何資料庫移轉服務執行個體使用私人 IP,則只需為每個有或需要連線至資料庫移轉服務執行個體的 Google Cloud 專案,設定一次私人服務存取權。
建立私人服務存取權需要 compute.networkAdmin IAM 角色。為網路建立私人服務存取權後,在設定執行個體採用私人 IP 時,您就不再需要 compute.networkAdmin
IAM 角色。
如要使用私人服務存取,您必須先分配內部 IP 位址範圍,然後建立私人連線,並匯出自訂路徑。
分配範圍是預留的 CIDR 區塊,無法在您的本機虛擬私有雲網路中使用,建立私人連線時,您會指定分配範圍。私人連線會將您的虛擬私有雲網路連結至基礎 (「服務供應商」) 虛擬私有雲網路。
建立私人連線時,虛擬私有雲網路和服務供應商網路只會交換子網路路徑。您必須匯出虛擬私有雲端網路的自訂路徑,服務供應商的網路才能匯入這些路徑,並將流量正確地轉送到您的內部部署網路。
對等互連設定會建立連線到另一個 VPC 網路的意圖。您的網路與另一個網路之間必須具備對方的對等互連設定才可連線。當另一個網路具備與您的網路建立對等互連的對應設定後,兩邊的對等互連狀態都會變成 ACTIVE,表示兩個網路皆已連線。若另一個網路沒有對應的對等互連設定,對等互連狀態就會維持在 INACTIVE,代表您的網路並未與該網路連線。
兩邊網路一旦連線,便一律會交換子網路路徑。如果對等互連網路已設定為匯出自訂路徑,您可以選擇從該網路匯入靜態和動態自訂路徑
私人服務存取設定程序分為兩個部分:
- 分配 IP 位址範圍。範圍涵蓋所有執行個體。
- 從虛擬私有雲網路建立與服務供應商網路的私人連線。
分配 IP 位址範圍
控制台
- 前往 Google Cloud 控制台的「VPC networks」(VPC 網路) 頁面。
- 選取要使用的 VPC 網路。
- 選取 [Private service connection] (私人服務連線) 分頁標籤。
- 選取「已分配的服務 IP 範圍」分頁標籤。
- 按一下「Allocate IP range」(分配 IP 範圍)。
在分配範圍的「名稱」中,指定
google-managed-services-VPC_NETWORK_NAME
,其中VPC_NETWORK_NAME
是您要連線的 VPC 網路名稱 (例如google-managed-services-default
)。「說明」為選填。按一下「ALLOCATE」(分配),建立已分配範圍。
gcloud
執行下列其中一個步驟:
如要指定位址範圍與前置字串長度 (子網路遮罩),請使用
addresses
和prefix-length
標記。例如,如要分配 CIDR 區塊192.168.0.0/16
,請將位址指定為192.168.0.0
,並將前置字串長度指定為16
。gcloud compute addresses create google-managed-services-[VPC_NETWORK_NAME] \ --global \ --purpose=VPC_PEERING \ --addresses=192.168.0.0 \ --prefix-length=16 \ --network=[VPC_NETWORK_NAME]
如要單純指定前置字串長度 (子網路遮罩),請直接使用
prefix-length
標記。如果省略位址範圍, Google Cloud會自動選取您的虛擬私有雲網路未使用的位址範圍。下列範例會以16
位元前置字串長度選取未使用的 IP 位址範圍。gcloud compute addresses create google-managed-services-[VPC_NETWORK_NAME] \ --global \ --purpose=VPC_PEERING \ --prefix-length=16 \ --network=[VPC_NETWORK_NAME]
將 [VPC_NETWORK_NAME]
替換為您的虛擬私有雲網路名稱,例如 my-vpc-network
。
下列範例會分配 IP 範圍,讓虛擬私有雲網路 my-vpc-network
中的資源可以使用私人 IP 連線至資料庫移轉服務執行個體。
gcloud compute addresses create google-managed-services-my-vpc-network \ --global \ --purpose=VPC_PEERING \ --prefix-length=16 \ --network=my-vpc-network \ --project=my-project
建立私人連線
控制台
- 前往 Google Cloud 控制台的「VPC networks」(VPC 網路) 頁面。
- 選取要使用的 VPC 網路。
- 選取 [Private service connection] (私人服務連線) 分頁標籤。
- 選取「Private connections to services」(私人服務連線) 分頁標籤。
- 按一下 [Create connection] (建立連線),在網路與服務生產端之間建立私人連線。
- 針對「Assigned allocation」(已指派的分配範圍),選取尚未由其他服務供應商使用的一或多個現有分配範圍,然後按一下「OK」。
- 按一下「CONNECT」(連線) 建立連線。
gcloud
建立私人連線。
gcloud services vpc-peerings connect \ --service=servicenetworking.googleapis.com \ --ranges=google-managed-services-[VPC_NETWORK_NAME] \ --network=[VPC_NETWORK_NAME] \ --project=[PROJECT_ID]
將
[VPC_NETWORK_NAME]
替換為您的 VPC 網路名稱,並將[PROJECT_ID]
替換為含有您 VPC 網路的專案 ID。這個指令會啟動長期執行作業並傳回作業名稱。
確認作業是否已經成功完成。
gcloud services vpc-peerings operations describe \ --name=[OPERATION_NAME]
將
[OPERATION_NAME]
替換為先前步驟傳回的作業名稱。
您可以在建立私人連線時指定多個分配範圍,舉例來說,如果範圍已用盡,您可以指派額外的分配範圍。服務會依照您指定的順序,使用所有指派範圍中的 IP 位址。
匯出自訂路徑
更新現有虛擬私人雲端網路對等互連連線,以變更虛擬私人雲端網路從對等互連虛擬私人雲端網路匯出或匯入自訂路徑。
只有在對等互連網路也匯出自訂路徑時,您的網路才會匯入自訂路徑,而對等互連網路只有在匯入自訂路徑時才接收自訂路徑。
主控台
- 前往 Google Cloud 控制台的「VPC 網路對等互連」頁面。
前往「VPC Network Peering」(VPC 網路對等互連) 頁面 - 選取要更新的對等互連連線。
- 點選「編輯」。
- 選取或取消選取 [Import custom routes] (匯入自訂路徑) 或 [Export custom routes] (匯出自訂路徑),以更新自訂路徑設定。
- 按一下 [儲存]。
gcloud
更新對等互連連線,變更自訂路徑的匯入或匯出設定。
gcloud compute networks peerings update [PEERING-NAME] \ --network=[MY-LOCAL-NETWORK] \ [--[no-]import-custom-routes] \ [--[no-]export-custom-routes]
授予 roles/servicenetworking.serviceAgent
角色
gcloud beta services identity create \
--service=servicenetworking.googleapis.com \
--project=project-id
gcloud projects add-iam-policy-binding project-id \
--member="service-account-prefix@service-networking.iam.gserviceaccount.com" \
--role="roles/servicenetworking.serviceAgent"
使用 Private Service Connect 介面設定連線
如果是同質遷移,Cloud SQL 可以使用 Private Service Connect 介面,透過私人網路建立連線。只有在遷移至現有執行個體時,才能使用這種連線方式。
如要使用 Private Service Connect 介面,請完成下列步驟:
建立已啟用 Private Service Connect 的 Cloud SQL 執行個體。 詳情請參閱 Cloud SQL 說明文件中的「建立 Private Service Connect 端點」。
為執行個體的傳出連線設定 Private Service Connect。詳情請參閱 Cloud SQL 說明文件中的「設定輸出連線」。
請確認您建立網路附件的虛擬私有雲網路,是可連線至來源資料庫私有 IP 位址的網路。
稍後建立遷移工作時,請選取「PSC 介面」做為連線方法。