使用適用於 MySQL 的 Azure 資料庫 - 彈性伺服器的虛擬網路整合進行私人網路存取
本文說明 適用於 MySQL 的 Azure 資料庫 彈性伺服器的私人連線選項。 您可以詳細瞭解 適用於 MySQL 的 Azure 資料庫 彈性伺服器的虛擬網路概念,以安全地在 Azure 中建立伺服器。
私人存取 (虛擬網路整合)
Azure 虛擬網路是 Azure 中私人網路的基礎。 虛擬網路與 適用於 MySQL 的 Azure 資料庫 彈性伺服器整合,可帶來 Azure 網路安全性和隔離的優點。
適用於 MySQL 的 Azure 資料庫 彈性伺服器實例的虛擬網路整合可讓您將伺服器的存取鎖定至虛擬網路基礎結構。 您的虛擬網路可以包含單一虛擬網路中的所有應用程式和資料庫資源,也可以延伸至相同區域或不同區域中的不同虛擬網路。 您可以透過對等互連建立各種虛擬網路之間的順暢連線,其會使用 Microsoft 的低延遲、高頻寬私人骨幹基礎結構。 基於連線目的,虛擬網路會顯示為一個。
適用於 MySQL 的 Azure 資料庫 彈性伺服器支援下列來源的用戶端連線:
- 相同 Azure 區域內的虛擬網路 (本機對等互連的虛擬網路)
- 跨 Azure 區域的虛擬網路 (全域對等互連的虛擬網路)
子網路可讓您將虛擬網路分成一或多個子網路,並將虛擬網路位址空間的一部分配置給您要在其中部署 Azure 資源的位置。 適用於 MySQL 的 Azure 資料庫 彈性伺服器需要委派的子網。 委派的子網是一個明確標識符,子網只能裝載 適用於 MySQL 的 Azure 資料庫 彈性伺服器實例。 藉由委派子網,服務會取得直接許可權,以建立服務特定的資源,以順暢地管理您的 適用於 MySQL 的 Azure 資料庫 彈性伺服器實例。
注意
您可以為子網指定的最小 CIDR 範圍,適用於 MySQL 的 Azure 資料庫 彈性伺服器是 /29,可提供八個 IP 位址。 不過,任何網路或子網路中的第一個和最後一個位址都無法指派給任何個別主機。 Azure 會保留五個 IP 位址供 Azure 網路內部使用,包括無法指派給主機的該兩個 IP 位址。 這會針對 /29 CIDR 範圍保留三個可用 IP 位址。 針對 適用於 MySQL 的 Azure 資料庫 彈性伺服器,啟用私人存取時,必須為每個節點配置一個IP位址。 已啟用 HA 的伺服器需要兩個 IP 位址,且非 HA 伺服器需要一個 IP 位址。 建議為每個 適用於 MySQL 的 Azure 資料庫 彈性伺服器實例保留至少兩個IP位址,因為稍後可以啟用高可用性選項。 適用於 MySQL 的 Azure 資料庫 彈性伺服器與 Azure 私用 DNS 區域整合,以提供可靠、安全的 DNS 服務來管理及解析虛擬網路中的功能變數名稱,而不需要新增自定義 DNS 解決方案。 藉由建立虛擬網路連結,您可以將私人 DNS 區域連結至一或多個虛擬網路
在上圖中,
- 適用於 MySQL 的 Azure 資料庫彈性伺服器實例會插入委派的子網 - 虛擬網路 VNet-1 的 10.0.1.0/24。
- 部署在相同虛擬網路內不同子網上的應用程式可以直接存取 適用於 MySQL 的 Azure 資料庫 彈性伺服器實例。
- 部署在不同的虛擬網路 VNet-2 上的應用程式無法直接存取 適用於 MySQL 的 Azure 資料庫 彈性伺服器實例。 您必須先執行私人 DNS 區域虛擬網路對等互連,它們才能存取執行個體。
虛擬網路概念
以下是搭配 適用於 MySQL 的 Azure 資料庫 彈性伺服器實例使用 虛擬網絡 時要熟悉的一些概念。
虛擬網路 -
Azure 虛擬網路包含已設定供您使用的私人 IP 位址空間。 若要深入了解 Azure 虛擬網路,請前往 Azure 虛擬網路概觀。
您的虛擬網路必須與 適用於 MySQL 的 Azure 資料庫 彈性伺服器實例位於相同的 Azure 區域中。
委派的子網路 -
虛擬網路包含子網路。 子網路可讓您將虛擬網路分割成較小的位址空間。 Azure 資源會部署到虛擬網路內的特定子網路。
您的 適用於 MySQL 的 Azure 資料庫 彈性伺服器實例必須位於委派給 適用於 MySQL 的 Azure 資料庫 彈性伺服器使用的子網中。 此委派表示只有適用於 MySQL 的 Azure 資料庫彈性伺服器執行個體可以使用該子網路。 委派的子網路中不可以有其他 Azure 資源類型。 您可以將子網路的委派屬性指派為 Microsoft.DBforMySQL/flexibleServers 來委派子網路。
網路安全性群組 (NSG)
網路安全性群組中的安全性規則能讓您篩選可在虛擬網路子網路及網路介面中流入和流出的網路流量類型。 如需詳細資訊,請檢閱網路安全性群組概觀。
私人 DNS 區域整合
Azure 私人 DNS 區域整合可讓您解析目前虛擬網路內的私人 DNS,或任何連結私人 DNS 區域的區域對等互連虛擬網路。
虛擬網路對等互連
虛擬網路對等互連可讓您順暢地連線 Azure 中的兩個或更多虛擬網路。 對等互連後的虛擬網路就可以作為一個整體來進行連線。 對等互連虛擬網路中虛擬機器之間的流量會使用 Microsoft 骨幹基礎結構。 用戶端應用程式與對等互連虛擬網路中 適用於 MySQL 的 Azure 資料庫 彈性伺服器實例之間的流量只會透過Microsoft專用網路由傳送,並隔離至該網路。
使用私人 DNS 區域
如果您使用 Azure 入口網站 或 Azure CLI 來建立具有虛擬網路的彈性伺服器實例 適用於 MySQL 的 Azure 資料庫,則會使用所提供的伺服器名稱,在您的訂用帳戶中自動布建每個伺服器結尾
mysql.database.azure.com
的新私人 DNS 區域。 或者,如果您想要使用 適用於 MySQL 的 Azure 資料庫 彈性伺服器實例來設定自己的私人 DNS 區域,請參閱私人 DNS 概觀檔。如果您使用 Azure API、Azure Resource Manager 範本(ARM 範本)或 Terraform,請建立以 結尾
mysql.database.azure.com
的私人 DNS 區域,並在設定 適用於 MySQL 的 Azure 資料庫 具有私人存取的彈性伺服器實例時使用這些區域。 如需詳細資訊,請參閱私人 DNS 區域概觀。重要
私人 DNS 區域名稱的結尾必須是
mysql.database.azure.com
。 如果您要使用 SSL 連線到 適用於 MySQL 的 Azure 資料庫 彈性伺服器實例,而且您使用選項以憑證主體名稱執行完整驗證 (sslmode=VERIFY_IDENTITY),請在 連接字串 中使用 <servername.mysql.database.azure.com>。
瞭解如何在 Azure 入口網站 或 Azure CLI 中建立具有私人存取權(虛擬網路整合)的 適用於 MySQL 的 Azure 資料庫 彈性伺服器實例。
與自訂 DNS 伺服器整合
如果您使用自定義 DNS 伺服器,則必須使用 DNS 轉寄站來解析 適用於 MySQL 的 Azure 資料庫 彈性伺服器實例的 FQDN。 轉寄站 IP 位址應為 168.63.129.16。 自訂 DNS 伺服器應位於虛擬網路內部,或可透過虛擬網路的 DNS 伺服器設定連線。 若要深入了解,請參閱使用 DNS 伺服器的名稱解析。
重要
若要成功布建 適用於 MySQL 的 Azure 資料庫 彈性伺服器實例,即使您使用自定義 DNS 伺服器,您也不得使用 NSG 封鎖對 AzurePlatformDNS 的 DNS 流量。
私人 DNS 區域和虛擬網路對等互連
私人 DNS 區域設定和虛擬網路對等互連彼此各自獨立。 如需建立和使用私人 DNS 區域的詳細資訊,請參閱使用私人 DNS 區域一節。
如果您想要從位於相同區域或不同區域的另一個虛擬網路中布建的用戶端連線到 適用於 MySQL 的 Azure 資料庫 彈性伺服器實例,您必須連結私人 DNS 區域與虛擬網路。 請參閱如何連結虛擬網路文件。
注意
只能連結以 mysql.database.azure.com
結尾的私人 DNS 區域名稱。
使用 ExpressRoute 或 VPN 從內部部署伺服器連線到虛擬網路中的 適用於 MySQL 的 Azure 資料庫 彈性伺服器實例
對於需要從內部部署網路存取虛擬網路中 適用於 MySQL 的 Azure 資料庫 彈性伺服器實例的工作負載,您需要連線到內部部署的 ExpressRoute 或 VPN 和虛擬網路。 安裝此設定后,如果您想要從內部部署虛擬網路上執行的用戶端應用程式(例如 MySQL Workbench)連線,您需要 DNS 轉寄站來解析 適用於 MySQL 的 Azure 資料庫 彈性伺服器名稱。 此 DNS 轉寄站負責透過伺服器層級轉寄站,將所有 DNS 查詢解析到 Azure 提供的 DNS 服務 168.63.129.16。
若要正確設定,您需要下列資源:
- 內部部署網路。
- 適用於 MySQL 的 Azure 資料庫 使用私人存取布建的彈性伺服器實例(虛擬網路整合)。
- 連線到內部部署的虛擬網路。
- 在 Azure 中部署 DNS 轉寄站168.63.129.16。
然後,您可以使用 適用於 MySQL 的 Azure 資料庫 彈性伺服器名稱 (FQDN) 從對等互連虛擬網路或內部部署網路中的用戶端應用程式連線到 適用於 MySQL 的 Azure 資料庫 彈性伺服器實例。
注意
建議您在連線到 適用於 MySQL 的 Azure 資料庫 彈性伺服器實例時,在 連接字串 中使用完整域名 (FQDN<servername>.mysql.database.azure.com
)。 伺服器的 IP 位址不保證保持靜態。 使用 FQDN 可協助您避免變更連接字串。
不支援的虛擬網路案例
- 公用端點 (或公用 IP 或 DNS) - 部署至虛擬網路的 適用於 MySQL 的 Azure 資料庫 彈性伺服器實例不能有公用端點。
- 適用於 MySQL 的 Azure 資料庫 彈性伺服器實例部署至虛擬網路和子網之後,您無法將它移至另一個虛擬網路或子網。 您無法將虛擬網路移至另一個資源群組或訂用帳戶。
- 部署之後,就無法變更私人 DNS 整合設定。
- 在子網路中有資源存在之後,就無法增加子網路大小 (位址空間)。
從私人存取 (虛擬網路整合) 網路移至公用存取或私人連結
現在可選擇使用私人連結,將適用於 MySQL 的 Azure 資料庫彈性伺服器,從私人存取 (整合虛擬網路) 轉換為公用存取。 此功能可讓伺服器順暢地從虛擬網路整合切換至私人連結/公用基礎結構,而不需要改變伺服器名稱或移轉資料,以簡化客戶的程序。
注意
這在轉換完成之後,就無法反轉。 此轉換涉及非 HA 伺服器停機大約 5-10 分鐘,而已啟用 HA 的伺服器停機大約 20 分鐘。
此程序是以離線模式進行,並由兩個步驟組成:
- 將伺服器與虛擬網路基礎結構中斷連結。
- 建立私人連結,或啟用公用存取。
- 如需從私人存取網路轉換為公用存取或私人連結的指導,請造訪使用 Azure 入口網站以從私人存取 (虛擬網路整合) 移至公用存取或私人連結。 此資源提供逐步指示來協助該程序。