若要讓您的應用程式更能復原區域相關的硬體故障、網路中斷和自然災害,請務必設計 Azure 工作負載以實現區域復原能力。 當您將資源分散到區域內的多個可用區域時,您可以降低單一區域中斷影響關鍵服務的風險。
雖然在工作負載的初始規劃和部署期間解決區域復原問題是最佳做法,但通常想要將現有的非復原工作負載轉換成區域復原設定。 一般而言,為現有工作負載啟用區域復原的處理很簡單,而且 Microsoft 會繼續簡化程式。 不過,工作負載的任何變更都可能帶來一定的風險。 瞭解所涉及的風險之後,您就可以評估這些工作負載中的哪些工作負載和服務對您的業務最重要,並排定其優先順序,然後先將區域復原套用至最具影響力的資源。
本文概述在 Azure 工作負載中啟用區域復原能力的重要考量。 此外也可協助您進行規劃和實作,以成功轉換至更具彈性的架構。
小提示
如果您目前正在設計工作負載,或計劃對目前的工作負載進行設計檢閱,請務必遵循在 Azure Well-Architected Framework (WAF) 中設計備援的建議。 WAF 建議指南可協助您設計跨多個層級的工作負載備援,並專注於關鍵工作流程。 為了支持可用性區域的採用,它也概述了多區域部署和部署標籤等策略。
什麼是區域復原力?
您可以透過兩個主要方式讓 Azure 服務對可用性區域中斷具有復原力:
區域備援服務: 許多 Azure 服務都支援區域備援。 這些服務會在可用性區域之間自動複寫資料、散發傳入要求,並在區域失敗期間容錯移轉至不同的區域。 每個服務都以對該特定服務有意義的方式支援這些功能。 某些服務預設為區域備援,而其他服務可能需要您設定區域備援。
區域服務: 某些 Azure 服務是區域性的,這表示它們可以釘選至特定可用性區域。 若要使用區域服務來達到區域復原能力,請在多個可用性區域中部署服務的個別執行個體。 您可能還需要管理流量分配、資料複寫,以及執行個體之間的容錯移轉。
某些服務可以部署在區域備援或區域性設定中。 在大部分情況下,最好盡可能部署區域備援服務。
如需詳細資訊,請參閱可用性區域支援類型。
區域啟用程序
使用下列步驟來系統化地檢閱您的 Azure 工作負載、排定區域復原能力的優先順序,並在每個元件上啟用區域復原能力。
先決條件
開始之前,請執行下列動作:
識別每個工作負載。 工作負載是指應用程式資源、資料和支援基礎結構的集合,它們共同運作以實現定義的業務成果。 若要深入了解工作負載以及如何加以定義,請參閱 Well-Architected Framework 工作負載。
排定每個工作負載的使用者和系統流程的優先順序。 了解工作負載的重要路徑和相依性,以決定哪些元件首先使區域具有彈性。 如需如何使用關鍵流程分析來排定工作流程優先順序的詳細資訊,請參閱 排定工作負載的優先順序,以實現區域復原。
為每個工作負載和流程指派重要性評等。 此評等可協助您了解潛在中斷對業務的影響,並指導您決定要優先處理哪些工作負載以實現區域復原。 此外,請考慮重新設定工作負載時可接受的停機時間量。
您可以使用分類法,根據工作負載的重要性對工作負載進行分類。 這種方法可協助您將精力集中在最重要的服務上。
請考慮使用下列範例分類法,對工作負載進行分類。
工作負載類型 Description 中斷的影響 關鍵任務 必須高度可靠、一律可用、對失敗具有復原能力且可運作的重要流程和工作負載 對基本功能的任何中斷都會立即面臨災難性的業務損失,或給人類生命帶來風險。 業務關鍵 操作重要業務功能的基本流程和工作負載 中斷可能會造成一些財務損失或品牌損害。 企業營運管理 有助於提高業務營運效率,但無法直接為客戶提供服務 可以容忍一定程度的干擾。 管理 內部生產流程和工作負載與業務營運不一致 可以忍受干擾。 如需如何根據重要性評等對工作負載進行分類的詳細資訊,請參閱將重要性評等指派給每個流程。
確認 Azure 資源所在的區域支援可用性區域。 請參閱 Azure 區域清單。 區域不支援可用性區域時,請考慮將資源重新定位至支援的區域。 如需詳細資訊,請參閱跨資源群組、訂用帳戶或區域移動 Azure 資源。
步驟 1:排定 Azure 服務區域復原力的優先順序
確認哪些工作負載流程對您的業務最重要後,您可以專注於這些流程所相依的 Azure 服務。 某些 Azure 服務對您的應用程式具有特別高的重要性。 排定這些服務的優先順序,以協助確保您的應用程式在發生區域故障時保持可用和復原能力。
使用下列指引,根據 Azure 服務群組對工作負載的重要性,排定其優先順序。 當您決定區域復原的服務優先順序時,請考慮您的特定應用程式架構和業務需求。
從網路服務開始。 工作負載傾向於共用網路服務,因此增加這些服務的彈性可以同時改善多個工作負載的彈性。
許多核心網路服務會自動進行區域備援,但您應該專注於 Azure ExpressRoute 閘道、Azure VPN 閘道、Azure 應用程式閘道、Azure 負載平衡器和 Azure 防火牆等元件。
提高營運資料儲存彈性。 作業資料存放區包含多個工作負載經常使用的寶貴資料,因此改善這些資料存放區的可用性可協助許多工作負載。
針對作業資料儲存體復原能力,請著重於 Azure SQL Database、Azure SQL 受控執行個體、Azure 儲存體、Azure Data Lake Storage、Azure Cosmos DB、Azure PostgreSQL 彈性伺服器、Azure MySQL 彈性伺服器和 Azure Cache for Redis 等服務。
排定運算服務的優先順序。 這些服務通常很容易在區域之間複製和分發,因為它們是無狀態的。
計算服務包括 Azure 虛擬機器、Azure 虛擬機器擴展集、Azure Kubernetes Service (AKS)、Azure App Service、App Service 環境、Azure Functions、Azure Service Fabric 和 Azure 容器應用程式。
檢閱重要流程使用的剩餘關鍵業務資源。 這些資源可能不如先前列出的資源那麼重要,但它們仍然在應用程式的功能中發揮作用,您應該考慮它們以實現區域復原。
檢閱其餘的業務營運資源。 就是否要讓它們具有區域彈性做出明智的決定。 此檢閱包含的服務可能與您的重要工作負載不直接相關,但仍有助於整體應用程式效能和可靠性。
步驟 2:評估區域設定方法
排定工作負載和 Azure 服務的優先順序之後,請識別為每個服務啟用可用性區域支援所需的方法,並瞭解您需要執行哪些動作來設定區域復原能力。
每個 Azure 可靠性服務指南都提供一節,描述如何啟用該服務的區域復原力。 本節可協助您瞭解讓每個服務區域具有彈性所需的工作,以便您可以據以規劃策略。 如需特定服務的詳細資訊,請參閱 Azure 可靠性服務指南。
使用 區域組態數據表 來快速瞭解常見 Azure 服務的方法。
這很重要
如果您的工作負載包含部署在分區(或單一區域)設定中的元件,請規劃讓這些元件能夠抵抗區域中斷。 常見的方法是將個別執行個體部署到另一個可用區域,並在必要時在它們之間切換。
步驟 3:測試延遲
當您讓工作負載區域具有復原能力時,請考慮可用性區域之間的延遲。 有時,某些舊版系統無法容忍跨區域流量所引入的少量額外延遲,尤其是在您在資料層內啟用同步複寫時。 如果您懷疑跨區域延遲可能會影響您的工作負載,請在啟用區域復原之前和之後執行測試。 欲了解更多跨區延遲可能影響您的應用程式及減輕跨區延遲問題的方法,請參閱 區域資源與區域韌性。
Azure 服務的區域設定方法
每個 Azure 服務都支援特定類型的可用性區域支援,這是以服務的預期用途和內部結構為基礎。 如果您的資源未設定為使用可用區域 (或 非區域資源 ),您可能需要使用可用區域支援來重新設定它。 該服務的可靠性指南提供指導或可用性區域設定指示的連結。
本節概述不同類型的區域配置方法,以及每個服務支援的方法。
這很重要
當您在資源上啟用區域備援時,該資源將具備自動復原區域失效的能力。 當您使用 區域性 設定將資源固定至特定可用性區域時,資源不會自動具有區域冗餘性。 您必須讓它能夠具備對區域失效的復原力。 針對區域服務,本文會反映設定至特定區域的複雜性和成本。 如需達成區域復原之額外步驟的詳細資訊,請參閱 服務的可靠性指南。
區域設定表格列出許多 Azure 服務支援的區域設定方法,並包含該服務每個可靠性指南的連結。 可靠性指南提供如何設定非區域服務資源以啟用可用區域支援的相關資訊。
下表說明每個區域組態方法,包括啟用可用區域所需的工作量和停機時間層級。
| 方法 | Description | 一般等級的工作量 | 可能需要停機 |
|---|---|---|---|
| 始終具有區域彈性 | 根據預設,服務在 支援可用性區域的區域中具有區域復原能力。 不需要採取任何動作。 | None | 否 |
| 支援 | 需要最少量的設定變更,例如在設定中啟用區域備援。 此程式不會影響可用性,但會考慮對成本或效能的影響。 | Low | 否 |
| 修改 | 可能需要一些設定變更,例如重新部署相依資源或修改網路設定。 | 中等 | Yes |
| 重新部署 | 需要進行重大變更,例如重新部署整個資源、應用程式或服務,或將資料移轉至新服務。 | High | Yes |
了解為服務啟用可用區域支援的成本。 對於許多服務,啟用可用區域不會增加成本。 但某些服務需要特定層、特定數量的容量單位或兩者兼而有之。 當您使用可用性區域時,其他服務會收取不同的費率。 下一節中的表格列出了每項服務的典型成本影響。
備註
本文中的資訊摘要說明啟用可用區域支援的一般方法,並概述一般成本影響。 但某些因素可能會影響它如何適用於您的特定解決方案。 例如,某些服務會列為 一律區域復原,但此指定僅適用於特定區域或服務的特定層。 使用這些表格作為起點,但請查看提到的其他資源以了解具體細節。
依區域設定方法的 Azure 服務
下表摘要說明許多 Azure 服務的可用性區域支援,並提供一種方法 (包括成本影響),以啟用每個服務的可用性區域支援。
| 服務 | 可以是區域備援 | 可以是區域性 | 一般區域設定方法 | 一般成本影響 |
|---|---|---|---|---|
| Azure AI 搜尋服務 |
|
始終具有區域彈性 | N/A | |
| Azure API 管理 |
|
|
修改 | 所需的最低層級 |
| Azure 應用程式組態 |
|
始終具有區域彈性 | N/A | |
| Azure 應用服務 |
|
支援 | 所需的最低層級和實例數量 | |
| Azure 應用程式服務 - 應用程式服務環境 |
|
支援 | 最低所需的執行個體數量 | |
| Azure 應用程式閘道 |
|
|
始終具有區域彈性 | N/A |
| Azure 備份 |
|
重新部署 | 適度成本增加 | |
| Azure 堡壘 |
|
|
重新部署 | 無成本影響 |
| Azure Batch |
|
重新部署 | 相同數量的虛擬機器 (VM) 沒有成本影響 | |
| Azure Blob 儲存服務 |
|
支援 | 適度成本增加 | |
| Azure Cache for Redis - 企業 |
|
重新部署 | 無成本影響 | |
| Azure Cache for Redis - 標準和進階 |
|
支援 | 所需的最低層級 | |
| Azure 容器應用程式 |
|
重新部署 | 所需的副本數量下限 | |
| Azure 容器執行個體 |
|
重新部署 | 無成本影響 | |
| Azure 容器註冊表 |
|
始終具有區域彈性 | N/A | |
| 適用於 NoSQL 的 Azure Cosmos DB |
|
修改 | 如果使用自動調整或多區域寫入,則為 None | |
| Azure Data Factory |
|
始終具有區域彈性 | N/A | |
| Azure Data Lake 儲存體 |
|
支援 | 適度成本增加 | |
| 適用於 MySQL 的 Azure 資料庫 - 彈性伺服器 (部分內容可能是機器或 AI 翻譯) |
|
重新部署 | 需要主要和高可用性 (HA) 執行個體 | |
| 適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器 |
|
支援 | 需要主要和 HA 執行個體 | |
| Azure Databricks |
|
支援 | 相同數量的虛擬機不會產生成本影響;儲存成本適度增加 | |
| Azure 磁碟儲存體 (受控磁碟) |
|
|
支援 | 適度成本增加 |
| Azure 彈性 SAN |
|
重新部署 | 適度成本增加 | |
| Azure 事件中樞:專用層 |
|
始終具有區域彈性 | 所需的最小容量單位 (CU) | |
| Azure 事件中樞:所有其他層 |
|
始終具有區域彈性 | N/A | |
| Azure ExpressRoute gateway |
|
|
修改 | 取決於等級 |
| Azure 檔案服務 |
|
支援 | 適度成本增加 | |
| Azure 防火牆 |
|
|
修改 | 無成本影響 |
| Azure Functions |
|
重新部署 | 所需的最低層級和實例數量 | |
| Azure HDInsight |
|
重新部署 | 相同數量的節點沒有成本變動 | |
| Azure IoT 中樞 |
|
始終具有區域彈性 | N/A | |
| Azure 金鑰保存庫 |
|
始終具有區域彈性 | N/A | |
| Azure Kubernetes Service (AKS) |
|
重新部署 | 無成本影響 | |
| Azure 負載平衡器 |
|
|
修改 | 無成本影響 |
| Azure Logic Apps - 使用量層 |
|
始終具有區域彈性 | N/A | |
| Azure Logic Apps - 標準層 |
|
重新部署 | 所需的最低層級和實例數量 | |
| Azure 受控 Grafana |
|
重新部署 | 適度成本增加 | |
| Azure 託管 Redis |
|
支援 | 需要主要和 HA 執行個體 | |
| Azure 監視器:Log Analytics |
|
始終具有區域彈性 | ||
| Azure NAT 閘道 |
|
|
重新部署 | 無成本影響 |
| Azure NetApp 檔案 |
|
重新部署 | 取決於複寫組態 | |
| Azure 佇列儲存體 |
|
支援 | 適度成本增加 | |
| Azure 服務總線 |
|
一律具有區域復原力 | N/A | |
| Azure Service Fabric |
|
|
重新部署 | 相同數量的 VM 沒有成本影響 |
| Azure Site Recovery |
|
重新部署 | Site Recovery 沒有成本影響,複本儲存體的成本增加適度 | |
| Azure SQL 資料庫:業務關鍵層 |
|
支援 | 無成本影響 | |
| Azure SQL 資料庫:一般用途層 |
|
支援 | 適度成本增加 | |
| Azure SQL Database:超大規模資料庫層 |
|
重新部署 | 所需的副本數量下限 | |
| Azure SQL 資料庫:進階層 |
|
支援 | 無成本影響 | |
| Azure SQL 受控執行個體 |
|
支援 | 適度成本增加 | |
| Azure 串流分析 |
|
一律具有區域復原力 | N/A | |
| Azure 資料表儲存體 |
|
支援 | 適度成本增加 | |
| Azure 虛擬機器擴展集 |
|
|
重新部署 | 相同數量的 VM 沒有成本影響 |
| Azure 虛擬機器 |
|
重新部署 | 相同數量的 VM 沒有成本影響 | |
| Azure 虛擬網路 |
|
始終具有區域彈性 | N/A | |
| 公用 IP 位址 |
|
|
始終具有區域彈性 | N/A |