您可以建立來源和目的地資料庫私人 IP 位址之間的連線,透過私人網路遷移資料。如要為目的地資料庫設定私人 IP 位址,可以使用私人服務存取權或 Private Service Connect。
每種連線方式都有各自的優點和缺點。請務必選擇最適合您情境的方法。如要進一步瞭解 PostgreSQL 適用的 AlloyDB 中的 Private Service Connect 和私人服務存取權,請參閱 AlloyDB for PostgreSQL 說明文件中的私人 IP 簡介。
使用虛擬私有雲對等互連設定連線
虛擬私有雲對等互連會設定虛擬私有雲來彼此通訊。如果來源位於 AlloyDB 或 Compute Engine 的相同 Google Cloud 專案中,目的地就能直接與來源通訊。 如果來源可透過 VPN 存取,請設定來源網路和 Cloud VPN,透過 VPN 彼此通訊。詳情請參閱 透過 VPN 連線虛擬私有雲。系統不支援虛擬私有雲鏈結。如果來源位於其他 Google Cloud 專案,請參閱「共用虛擬私有雲總覽」,瞭解如何將多個專案的資源連線至共用虛擬私有雲網路,以進行虛擬私有雲對等互連。
來源資料庫伺服器的防火牆必須設定為允許整個內部 IP 範圍,該範圍是為 私人服務連線所分配,且AlloyDB 目的地執行個體將使用該連線的虛擬私有雲網路。
如要在主控台中尋找內部 IP 範圍:
前往控制台的「VPC networks」(VPC 網路) 頁面。 Google Cloud
選取要使用的 VPC 網路。
選取「PRIVATE SERVICE CONNECTION」(私人服務連線) 分頁標籤。
pg_hba.conf
檔案中的複製連線區段或來源資料庫在 AWS RDS 中的安全性群組定義已更新,以便接受來自 AlloyDB 虛擬私有雲 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] (私人服務連線) 分頁標籤。
- 選取「Allocated IP ranges for services」(已分配的服務 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 介面設定連線
如要進行同質 AlloyDB for PostgreSQL 遷移作業,AlloyDB for PostgreSQL 可以使用 Private Service Connect 介面,透過私有網路建立連線。只有在遷移至現有執行個體時,才能使用這種連線方式。
如要使用 Private Service Connect 介面,請完成下列步驟:
建立已啟用 Private Service Connect 的 AlloyDB for PostgreSQL 叢集, 以及該叢集中的主要執行個體。請參閱 PostgreSQL 適用的 AlloyDB 說明文件中的「啟用 Private Service Connect」。
為執行個體的傳出連線設定 Private Service Connect。請參閱 AlloyDB for PostgreSQL 說明文件中的「設定輸出連線」。
請確認您建立網路附件的虛擬私有雲網路,是可連線至來源資料庫私有 IP 位址的網路。
稍後建立遷移工作時,請選取「PSC 介面」做為連線方式。