本文概述使用適用於 PostgreSQL 的 Azure 資料庫中的移轉服務,將來源資料庫連線到適用於 PostgreSQL 的 Azure 資料庫彈性伺服器的各種案例。 每個案例都有不同的網路需求和設定,以成功建立移轉連線。 特定詳細資料會根據來源環境和目標環境的實際網路設定和需求而有所不同。
下表摘要說明移轉案例。 表格會根據來源和目標環境的設定指出是否支援每個案例。
| PostgreSQL 來源 | 目標 | 支援 |
|---|---|---|
| 使用公用 IP 位址的內部部署 | 具有公用存取權的適用於 PostgreSQL 的 Azure 資料庫彈性伺服器 | 是 |
| 透過虛擬私人網路 (VPN) 或 Azure ExpressRoute 使用私人 IP 位址的內部部署 | 與虛擬網路 (VNet) 整合的適用於 PostgreSQL 的 Azure 資料庫彈性伺服器 | 是 |
| Amazon Relational Database Service (Amazon RDS) for PostgreSQL 或使用公用 IP 位址的 Amazon Aurora PostgreSQL | 具有公用存取權的適用於 PostgreSQL 的 Azure 資料庫彈性伺服器 | 是 |
| Amazon RDS for PostgreSQL 或透過 VPN 或 ExpressRoute 進行私人存取的 Amazon Aurora PostgreSQL | 與 VNet 整合的適用於 PostgreSQL 的 Azure 資料庫彈性伺服器 | 是 |
| 適用於 PostgreSQL 的 Google Cloud SQL | 具有公用存取權的適用於 PostgreSQL 的 Azure 資料庫彈性伺服器 | 是 |
| 透過 VPN 或 ExpressRoute 進行私人存取的適用於 PostgreSQL 的 Google Cloud SQL | 與 VNet 整合的適用於 PostgreSQL 的 Azure 資料庫彈性伺服器 | 是 |
| 安裝在相同虛擬網路或不同虛擬網路中 Azure 虛擬機器 (VM) 上的 PostgreSQL | 相同虛擬網路或不同虛擬網路中的適用於 PostgreSQL 的 VNet 整合式 Azure 資料庫彈性伺服器 | 是 |
| 具有公用存取權的「適用於 PostgreSQL 的 Azure 資料庫 - 單一伺服器」 | 結合 VNet 的 Azure PostgreSQL 彈性伺服器資料庫 | 是 |
| 具有私人端點的適用於 PostgreSQL 的 Azure 資料庫 - 單一伺服器 | 與 VNet 整合的適用於 PostgreSQL 的 Azure 資料庫彈性伺服器 | 是 |
| 具有私人端點的適用於 PostgreSQL 的 Azure 資料庫 - 單一伺服器 | 具有私人端點的適用於 PostgreSQL 的 Azure 資料庫彈性伺服器 | 是 |
| 具有私人存取的 PostgreSQL 來源 | 具有私人端點的適用於 PostgreSQL 的 Azure 資料庫彈性伺服器 | 是 |
| 具有私人存取的 PostgreSQL 來源 | 具有公用存取權的適用於 PostgreSQL 的 Azure 資料庫彈性伺服器 | 否 |
內部部署 (公用 IP) 到彈性伺服器 (公用存取)
網路步驟:
- 請確定源資料庫伺服器具有公用 IP 位址。
- 設定防火牆以允許 PostgreSQL 連接埠上的輸出連線 (預設連接埠為 5432)。
- 確定來源資料庫伺服器可透過網際網路存取。
- 藉由驗證從適用於 PostgreSQL 的 Azure 資料庫目標執行個體到來源資料庫的連線,以測試設定。 確認移轉服務可以存取來源資料。
內部部署 (私人 IP) 至與 VNet 整合的彈性伺服器 (ExpressRoute 或 VPN)
網路步驟:
- 設定站對站 VPN 或 ExpressRoute 執行個體,以在內部部署網路與 Azure 之間建立安全、可靠的連線。
- 設定 Azure 虛擬網路以允許從內部部署 IP 位址範圍存取。
- 設定網路安全性群組規則,以允許來自內部部署網路的 PostgreSQL 連接埠 (預設連接埠為 5432) 上的流量。
- 藉由驗證從適用於 PostgreSQL 的 Azure 資料庫目標執行個體到來源資料庫的連線,以測試設定。 確認移轉服務可以存取來源資料。
受控 PostgreSQL 服務 (公用 IP) 到彈性伺服器 (公用/私人存取)
雲端提供者 (例如 AWS 或 GCP) 中的來源 PostgreSQL 執行個體必須具有公用 IP 位址或直接連線至 Azure。
網路步驟:
公用存取權
- 如果您的 Amazon Web Services (AWS)、Google Cloud Platform (GCP) 或其他受控 PostgreSQL 服務中的 PostgreSQL 執行個體無法公開存取,請修改執行個體以允許來自 Azure 的連線。 在雲端提供者的主控台中 (例如,在 AWS 管理主控台或 Google Cloud 主控台中),將設定變更為允許公用協助工具。
- 在雲端提供者的安全性設定中 (例如,在 AWS 的安全性群組或 GCP 的防火牆規則中),新增輸入規則以允許來自適用於 PostgreSQL 的 Azure 資料庫公用 IP 位址或網域的流量。
私人存取
- 使用 ExpressRoute、IPsec VPN 或來自雲端提供者 (Azure ExpressRoute、AWS Direct Connect、GCP 互連) 至 Azure 的對等私人連線服務來建立安全連線。
- 在來源雲端提供者的安全性設定中 (例如 AWS 安全性群組或 GCP 防火牆規則),新增輸入規則以允許來自適用於 PostgreSQL 的 Azure 資料庫公用 IP 位址或網域的流量,或來自 PostgreSQL 連接埠 (預設連接埠為 5432) 上 Azure 虛擬網路的 IP 位址範圍的流量。
- 在與適用於 PostgreSQL 的 Azure 資料庫執行個體相同區域的 Azure 中建立虛擬網路。 設定網路安全群組,以允許在預設連接埠 5432 上輸出連線至來源雲端提供者的 PostgreSQL 執行個體 IP 位址。
- 在 Azure 中設定網路安全性群組規則,以允許從雲端提供者 (例如,從 AWS 或 GCP) 到適用於 PostgreSQL 的 Azure 資料庫 IP 位址範圍的連入連線。
- 在受控 PostgreSQL 服務 (例如 AWS、GCP 或 Heroku) 以及適用於 PostgreSQL 的 Azure 資料庫中測試 PostgreSQL 執行個體之間的連線能力,以確保不會發生任何網路問題。
Azure VM (私人存取) 至適用於 PostgreSQL 的 Azure 資料庫的 (不同虛擬網路)
此案例描述 Azure 虛擬機器執行個體與位於不同虛擬網路中的適用於 PostgreSQL 的 Azure 資料庫彈性伺服器之間的連線能力。 需要虛擬網路對等互連和適當的網路安全性群組規則,才能促進 VNet 之間的流量。
網路步驟:
- 設定兩個 VNet 之間的虛擬網路對等互連,以啟用直接網路連線。
- 設定網路安全性群組規則以允許 PostgreSQL 連接埠上的 VNet 之間的流量。
Azure VM 至適用於 PostgreSQL 的 Azure 資料庫 (相同虛擬網路)
當 Azure VM 和適用於 PostgreSQL 的 Azure 資料庫彈性伺服器位於相同的虛擬網路中時,設定很簡單。 設定網路安全性群組規則,以允許 PostgreSQL 連接埠上的內部流量。 不需要其他防火牆規則,因為流量會保留在虛擬網路中。
網路步驟:
- 請確定 VM 和 PostgreSQL 伺服器位於相同的虛擬網路中。
- 設定網路安全性群組規則以允許 PostgreSQL 連接埠上虛擬網路内的流量。
單一伺服器 (公用存取) 至與 VNet 整合的彈性伺服器
若要促成具有公用存取權的 PostgreSQL Azure 資料庫單一伺服器與 VNet 整合的彈性伺服器之間的連線,請設定單一伺服器以允許來自部署彈性伺服器的子網路的連線。
以下是設定此連線的步驟簡述:
將 VNet 規則新增至單一伺服器:
在 Azure 入口網站中,移至您的適用於 PostgreSQL 的 Azure 資料庫 - 單一伺服器執行個體。
移至 [連線安全性] 設定。
在 [虛擬網路規則] 區段中,選取 [新增現有的虛擬網路]。
指定哪一個虛擬網路可以連線到您的單一伺服器。
完成規則設定:
完成這些步驟之後,系統會將單一伺服器設定為接受彈性伺服器子網路的連線,以在兩部伺服器之間進行安全通訊。
單一伺服器 (私人端點) 至與 VNet 整合的彈性伺服器
若要從具有私人端點的適用於 PostgreSQL 的 Azure 資料庫彈性伺服器 - 單一伺服器連線至與 VNet 整合的彈性伺服器:
取得私人端點詳細資料:
在 Azure 入口網站中,移至適用於 PostgreSQL 的 Azure 資料庫 - 單一伺服器執行個體。 選取私人端點以檢視其虛擬網路和子網路詳細資料。
移至彈性伺服器的 [網路] 窗格。 記下伺服器的虛擬網路和子網路資訊。
評估 VNet 對等互連需求:
如果兩部伺服器位於不同的 VNet 中,您必須啟用虛擬網路對等互連來連線虛擬網路。 如果伺服器位於相同的虛擬網路,但在不同的子網路中,則對等互連為選擇性選項。 請確定沒有任何網路安全性群組會封鎖從彈性伺服器到單一伺服器的流量。
設定私人 DNS 區域:
移至彈性伺服器的 [網路] 窗格,並檢查是否已設定私人 DNS 區域。 如果私人 DNS 區域正在使用中,請移至入口網站中的私人 DNS 區域。 在左窗格中,選取 [虛擬網路連結],並檢查單一伺服器和彈性伺服器的虛擬網路是否出現在此清單中。
如果私人 DNS 區域不在使用中,請選取 [新增] 按鈕,並為單一伺服器和彈性伺服器的 VNet 建立此私人 DNS 區域的連結。
移至單一伺服器的私人端點,然後選取 [DNS 設定] 窗格。 檢查私人 DNS 區域是否已連結至此端點。 如果沒有,請選取 [新增設定] 按鈕來連結私人 DNS 區域。
選取單一伺服器私人端點上的私人 DNS 區域。 檢查單一伺服器和彈性伺服器的 VNet 是否出現在虛擬網路連結中。 如果沒有,請完成先前所述的步驟,將單一伺服器和彈性伺服器的虛擬網路連結新增至此私人 DNS 區域。
針對最後一項檢查,請移至單一伺服器上私人端點的私人 DNS 區域,並檢查是否有指向私人 IP 位址的單一伺服器的 A 記錄。
完成這些步驟可讓適用於 PostgreSQL 的 Azure 資料庫彈性伺服器執行個體連線到適用於 PostgreSQL 的 Azure 資料庫 - 單一伺服器的執行個體。
單一伺服器 (私人端點) 至彈性伺服器 (私人端點)
本節說明在適用於 PostgreSQL 的 Azure 資料庫中從具有私人端點的單一伺服器移轉至具有私人端點的彈性伺服器的基本網路步驟。 包含執行階段伺服器虛擬網路與私人端點的整合。 如需詳細資訊,請參閱移轉執行階段伺服器。
收集單一伺服器的私人端點詳細資料:
- 在 Azure 入口網站中,移至適用於 PostgreSQL 的 Azure 資料庫 - 單一伺服器執行個體。
- 記錄單一伺服器私人端點連線下所列的虛擬網路和子網路詳細資料。
收集彈性伺服器的私人端點詳細資料:
- 在 Azure 入口網站中,移至適用於 PostgreSQL 的 Azure 資料庫彈性伺服器執行個體。
- 記錄彈性伺服器私人端點連線下所列的虛擬網路和子網路詳細資料。
收集移轉執行階段伺服器的 VNet 詳細資料:
- 在 Azure 入口網站中,移至移轉執行階段伺服器。 也就是說,移至與 VNet 整合的適用於 PostgreSQL 的 Azure 資料庫彈性伺服器執行個體。
- 記錄虛擬網路下所列的虛擬網路和子網路詳細資料。
評估 VNet 對等互連需求:
- 如果伺服器位於不同的 VNet 中,請啟用虛擬網路對等互連。 如果伺服器位於相同的虛擬網路,但在不同的子網路中,則不需要對等互連。
- 請確定沒有網路安全性群組封鎖來源伺服器、移轉執行階段伺服器和目標伺服器之間的流量。
私人 DNS 區域設定:
或者,當自訂 DNS 伺服器或自訂 DNS 命名空間正在使用中時,您可以使用自訂 FQDN/IP 欄位,而不是連結私人 DNS 區域。 此設定可讓您直接解析 FQDN 或 IP,而不需要私人 DNS 區域整合。
PostgreSQL 來源 (私人 IP) 至彈性伺服器 (私人端點)
本節說明將 PostgreSQL 資料庫從雲端式 PostgreSQL 服務、內部部署設定或 VM (全都具有私人 IP 位址) 移轉至以私人端點保護的適用於 PostgreSQL 的 Azure 資料庫彈性伺服器的網路步驟。 移轉可確保私人網路空間內的資料傳輸安全,方法是使用 Azure VPN 或 ExpressRoute 進行內部部署連線,並使用虛擬網路對等互連或 VPN 進行雲端到雲端的移轉。 如需詳細資訊,請參閱移轉執行階段伺服器。
建立網路連線:
- 針對內部部署來源,請設定站對站 VPN 或設定 ExpressRoute,將您的區域網路連線到 Azure 的虛擬網路。
- 針對 Azure VM 或 Amazon 執行個體或 Google Compute Engine,請確定虛擬網路對等互連、VPN 閘道或 ExpressRoute 執行個體已就緒,以安全地連線到 Azure 的虛擬網路。
收集移轉執行階段伺服器的 VNet 詳細資料:
- 在 Azure 入口網站中,移至移轉執行階段伺服器。 也就是說,移至與 VNet 整合的適用於 PostgreSQL 的 Azure 資料庫彈性伺服器執行個體。
- 記錄虛擬網路下所列的虛擬網路和子網路詳細資料。
評估 VNet 對等互連需求:
- 如果伺服器位於不同的 VNet 中,請啟用虛擬網路對等互連。 如果伺服器位於相同的虛擬網路,但在不同的子網路中,則不需要對等互連。
- 請確定沒有網路安全性群組封鎖來源伺服器、移轉執行階段伺服器和目標伺服器之間的流量。
私人 DNS 區域設定:
- 在移轉執行階段伺服器的 [網路] 窗格中,確認私人 DNS 區域正在使用中。
- 請確定來源和目標彈性伺服器的 VNet 都連結到移轉執行階段伺服器的私人 DNS 區域。
- 如果尚未設定,請將私人 DNS 區域連結至彈性伺服器的私人端點。
- 將彈性伺服器和移轉執行階段伺服器的虛擬網路連結新增至私人 DNS 區域。
或者,當自訂 DNS 伺服器或自訂 DNS 命名空間正在使用中時,您可以使用自訂 FQDN/IP 欄位,而不是連結私人 DNS 區域。 此設定可讓您直接解析 FQDN 或 IP,而不需要私人 DNS 區域整合。