什麼是可用性區域?
許多 Azure 區域都提供可用性區域,這些區域是區域內數據中心的分隔群組。 每個可用性區域都有獨立的電源、冷卻和網路基礎結構,因此,如果某個區域發生中斷,則其餘區域支援區域服務、容量和高可用性。
可用性區域通常會以數公里分隔,且通常位於100公里內。 此距離表示它們已足夠接近,可透過高效能網路與其他可用性區域進行低延遲連線。 不過,它們相距甚遠,可減少一個以上受當地中斷或天氣影響的可能性。
資料中心位置是使用嚴格的弱點風險評估準則來選取的。 此程序會識別所有重要的資料中心特定風險,並考慮可用性區域之間的共用風險。
下圖會顯示數個範例 Azure 區域。 區域 1 和 2 支援可用性區域,而區域 3 和 4 沒有可用性區域。
若要了解哪些區域支援可用性區域,請參閱具有可用性區域支援的 Azure 區域。
可用性區域支持的類型
Azure 服務可以提供兩種類型的可用性區域支援: 區域備援 和 區域。 每個服務都可能支援一或兩種類型。 設計可靠性策略時,請確定您瞭解工作負載中的每個服務如何支援可用性區域。
區域備援部署:區域備援資源會自動復寫或分散到多個可用性區域。 例如,區域備援數據服務會將數據復寫到多個區域,讓某個區域中的失敗不會影響數據的可用性。 針對某些服務,您可以選取資源所使用的區域集,而在其他服務中,Microsoft選取區域。
使用區域備援部署,Microsoft管理跨區域分散要求,以及跨區域複寫數據。 如果可用性區域中發生中斷,Microsoft會自動管理故障轉移至另一個區域。
區域性部署:區域資源會部署到單一自我選取的可用性區域。 此方法不提供復原優點,但可協助您達到更嚴格的延遲或效能需求。 例如,虛擬機、受控磁碟和標準IP位址可以分區部署至相同的區域。
若要改善區域資源的復原能力,您必須在區域內多個可用性區域中設計具有不同資源的架構,但Microsoft不會為您管理程式。 如果可用性區域中發生中斷,您必須負責故障轉移至另一個區域。
當您使用 將資源設定為區域備援時,或在不同可用性區域中使用多個區域資源的實例時,您的資源會 被視為區域復原:也就是說,它可復原單一可用性區域的中斷。
有些服務在設定可用性區域之前不會使用可用性區域。 如果您未明確設定可用性區域支援的服務,則稱為 非區域 或 區域 部署。 以這種方式設定的資源可能會放在區域中的任何可用性區域,而且可能會移動。 如果區域中的任何可用性區域發生中斷,非區域資源可能會位於受影響的區域中,而且可能會發生停機時間。
重要
某些服務可能會有額外的需求,以符合可用性區域支援。 例如,有些可能只支援特定層級或 SKU 的可用性區域,或 Azure 區域的子集。
設定可用性區域支援的資源
每個服務都有自己的方法來設定可用性區域支援。 若要瞭解每個服務如何支援可用性區域,以及如何設定該支援,請參閱 依服務排序的 Azure 可靠性指南。
實體和邏輯可用性區域
每個資料中心都會指派給實體區域。 實體區域會對應至 Azure 訂用帳戶中的邏輯區域,而不同的訂用帳戶可能會有不同的對應順序。 Azure 訂用帳戶會在建立訂用帳戶時自動指派其對應。 因此,一個訂用帳戶的區域對應可能與其他訂用帳戶不同。
例如,訂用帳戶 A 可能有對應至邏輯區域 2 的實體區域 1,而訂用帳戶 B 有對應至邏輯區域 3 的實體區域 1:
若要了解訂用帳戶的邏輯和實體區域之間的對應,請使用 清單位置 Azure Resource Manager API。 您可使用 Azure CLI 或 Azure PowerShell 來從 API 擷取資訊。
若要比較跨多個訂用帳戶的復原解決方案的區域對應,請使用專用的ARM API checkZonePeers。 若要使用 checkZonePeers
API,必須啟用「Microsoft.Resources/AvailabilityZonePeering」功能。 如需如何啟用功能的詳細資訊,請參閱 在 Azure 訂用帳戶中註冊功能。
az rest --method get \
--uri '/subscriptions/{subscriptionId}/locations?api-version=2022-12-01' \
--query 'value[?availabilityZoneMappings != `null`].{displayName: displayName, name: name, availabilityZoneMappings: availabilityZoneMappings}'
可用性區域和 Azure 更新
針對每個區域,Microsoft的目標是一次將更新部署到單一可用性區域內的 Azure 服務。 此方法可減少更新對作用中工作負載的影響,讓工作負載在進行更新時繼續在其他區域中執行。 若要利用循序區域更新,您的工作負載必須已設定為跨多個區域執行。 如需 Azure 部署更新方式的詳細資訊,請參閱 進階安全部署做法。
注意
如 Azure 更新部落格 Azure 上所報告,不論在 Azure 資源上使用私人或公用 IP,都不會針對跨可用性區域的數據傳輸收費。 透過這項變更,Azure 將進一步鼓勵和支持客戶在 Azure 上建置更具彈性且有效率的應用程式和解決方案的努力
區域間延遲
在每個區域內,可用性區域會透過高效能網路連線。 Microsoft努力實現區域間通訊,且往返延遲少於 2 毫秒。 低延遲可讓您在區域內進行高效能通訊,以及跨多個可用性區域同步復寫數據。
注意
目標延遲是指網路連結的延遲。 根據您使用的通訊協定,以及任何特定網路流程所需的網路躍點,您觀察到的延遲可能會不同。
在大部分的工作負載中,您可以將解決方案的元件分散到可用性區域,而不會影響您的效能。 如果您有高度敏感度至區域間延遲的工作負載,請務必使用實際的通訊協議和設定來測試所選可用性區域之間的延遲。 若要減少區域間流量,您可以使用區域性部署,但最佳方式是,您應該在可靠性策略計劃中使用多個可用性區域。
可用性區域架構指導
若要達成可靠的工作負載:
- 如果生產工作負載位於支援可用性區域,則生產工作負載應設定為使用多個可用性區域。
- 對於任務關鍵性工作負載,您應該考慮多區域和多重區域兩個解決方案。
如需如何在解決方案架構中使用區域和可用性區域的詳細資訊,請參閱 使用可用性區域和區域的建議。