此架構適用於使用 HTTP(S) 和非 HTTP(S) 通訊協定的全域因特網面向應用程式。 其功能是以 DNS 為基礎的全域負載平衡、兩種形式的區域負載平衡,以及全域虛擬網路對等互連,以建立可承受區域性中斷的高可用性架構。 Azure Web 應用程式防火牆 (WAF) 和 Azure 防火牆 都會提供流量檢查。
架構注意事項
本檔中的架構很容易延伸至中樞和輪輻虛擬網路設計,其中 Azure 防火牆 會位於中樞網路,以及中樞網路或輪輻中的 應用程式閘道。 如果應用閘道部署在樞紐中,你仍需要多個應用閘道,每個針對特定一組應用程式,以控制 Azure 角色基礎存取控制(Azure RBAC)範圍,並防止觸及內部應用閘道的限制。 欲了解更多資訊,請參閱 應用閘道限制。
在虛擬 WAN 環境中,應用程式閘道 無法部署在中樞,因此它們會安裝在輪輻虛擬網路中。
建議的架構會透過 Web 應用程式防火牆(以 應用程式閘道 為基礎)在 Azure 防火牆 前選擇對Web內容進行雙重檢查。 其他選項存在,如虛擬網路的防火牆和 應用程式閘道 中所述,但此選項最有彈性且完整:它會在端應用程式的 HTTP 標頭X-Forwarded-For中公開用戶端的 IP 位址,它提供端對端加密,並防止用戶端略過 WAF 來存取應用程式。
如果只暴露網頁應用程式(不含非 HTTP(S) 應用程式),且不需要 WAF 和 Azure 防火牆對這些網頁流量進行雙重檢查,Azure Front Door 會比 Traffic Manager 更適合作為全域負載平衡解決方案。 Front Door 是 HTTP(S) 內容的第 7 層負載平衡器,也提供快取、流量加速、SSL/TLS 終止、憑證管理、健康情況探查和其他功能。 不過,應用程式閘道 提供與分層保護方法 Azure 防火牆 更好的整合。
輸入 HTTP(S) 流量
下載此架構的 Visio 檔案。
Azure 流量管理員 會使用 DNS 型路由,在兩個區域之間平衡連入流量的負載平衡。 流量管理員 會將應用程式的 DNS 查詢解析為 Azure 應用程式閘道 端點的公用 IP 位址。 應用程式閘道 的公用端點可作為 HTTP(S) 流量 流量管理員 的後端端點。 流量管理員 會根據各種路由方法的選擇來解析 DNS 查詢。 瀏覽器會直接連線到端點;流量管理員 看不到 HTTP(S) 流量。
跨可用性區域部署的 應用程式閘道 會從瀏覽器接收 HTTP(S) 流量,而 Web 應用程式防火牆 Premium 會檢查流量以偵測 Web 攻擊。 應用閘道會將流量傳送到其後端,即前端虛擬機(VM)的內部負載平衡器。 針對這個特定流程,網頁伺服器前的內部負載平衡器並非絕對必要,因為應用閘道器本身就能執行負載平衡。 但這是為了與非 HTTP(S) 應用程式的流程保持一致而加入。
應用閘道與前端內部負載平衡器之間的流量會被 Azure Firewall Premium 透過應用閘道子網上的使用者定義路由攔截。 Azure Firewall Premium 會對流量進行 TLS 檢查以增加安全性。 Azure 防火牆 也是區域備援。 如果 Azure 防火牆偵測到流量中有威脅,就會丟棄封包。 否則,在成功檢查後,Azure 防火牆會將流量轉發給目的地的網頁層內部負載平衡器。
網頁層是三層應用程式的第一層。 它包含使用者介面,並解析使用者互動。 網頁層負載平衡器分布於三個可用區域,並將流量分配到三個網頁層虛擬機。
網頁層虛擬機分布於三個可用區域,並透過專用的內部負載平衡器與業務層通訊。
商務層會處理用戶互動並決定後續步驟,且位於 Web 和數據層之間。 商務層內部負載平衡器會將流量分散到三個可用性區域的商務層虛擬機。 商務層負載平衡器是區域備援,例如 Web 層負載平衡器。
商業層虛擬機分布於不同可用性區域,並將流量路由至資料庫的可用性群組監聽器。
數據層會儲存應用程式數據,通常是在資料庫、物件記憶體或檔案共用中。 此架構在分散於三個可用性區域的虛擬機上具有SQL Server。 它們位於可用性群組中,並使用分散式網路名稱 (DNN) 將流量路由傳送至可用性群組接聽程式以進行負載平衡。
輸入非 HTTP(S) 流量流量
下載此架構的 Visio 檔案。
Azure 流量管理員 會使用 DNS 型路由,在兩個區域之間平衡連入流量的負載平衡。 流量管理員 將應用程式的 DNS 查詢解析為 Azure 端點的公用 IP 位址。 應用程式防火牆的公用端點可作為非 HTTP(S) 流量 流量管理員 的後端端點。 流量管理員 會根據各種路由方法的選擇來解析 DNS 查詢。 瀏覽器會直接連線到端點;流量管理員 看不到 HTTP(S) 流量。
Azure Firewall Premium 是區域冗餘的,會檢查入站流量的安全防護。 如果 Azure 防火牆偵測到流量中有威脅,就會丟棄封包。 否則,當 Azure 防火牆成功檢查後,會將流量轉發給網頁層內部負載平衡器,對進站封包執行目的地網路位址轉換(DNAT)。
Web 層是三層式應用程式的第一層,其中包含使用者介面,也會剖析用戶互動。 網頁層負載平衡器分布於三個可用區域,並將流量分配到三個網頁層虛擬機。
網路層虛擬機分布於三個可用區域,並透過專用的內部負載平衡器與業務層通訊。
商務層會處理用戶互動並決定後續步驟,且位於 Web 和數據層之間。 商務層內部負載平衡器會將流量分散到三個可用性區域的商務層虛擬機。 商務層負載平衡器是區域備援,例如 Web 層負載平衡器。
商業層虛擬機分布於不同可用性區域,並將流量路由至資料庫的可用性群組監聽器。
數據層會儲存應用程式數據,通常是在資料庫、物件記憶體或檔案共用中。 此架構在分散於三個可用性區域的虛擬機上具有SQL Server。 它們位於可用性群組中,並使用分散式網路名稱 (DNN) 將流量路由傳送至可用性群組接聽程式以進行負載平衡。
輸出流量 (所有通訊協定)
虛擬機修補更新或其他連網際網路的外出流量,透過使用者定義路由(UDR)從工作負載虛擬機傳送到 Azure 防火牆。 Azure 防火牆透過網頁類別以及網路和應用程式規則強制執行連接規則,以防止工作負載存取不適當的內容或資料外洩情境。
元件
Azure 防火牆 是雲端式、由 Microsoft 管理的新一代防火牆,可為南北和東西向流量提供深度封包檢查。 在此架構中,Azure 防火牆會為 Web 和非 Web 流量提供網路安全性。 它會使用 TLS 檢查來檢查來自應用程式閘道的輸入 HTTP(S) 流量、處理來自公用因特網的輸入非 HTTP(S) 流量,以及檢查來自 VM 的輸出流量以防止資料外流。
應用程式閘道 是第 7 層負載平衡器,可提供 Web 應用程式防火牆 (WAF) 功能。 在此架構中,應用程式閘道會為 HTTP(S) 流量提供區域負載平衡、協助偵測和防止 Web 攻擊,並提供 TLS 終止和路徑型路由。 它可作為流量管理員的後端端點。
流量管理員 是以 DNS 為基礎的全域流量負載平衡器,可將流量分散至跨全球 Azure 區域的服務,同時提供高可用性和回應能力。 在此架構中,流量管理員會藉由解析 DNS 查詢來將流量導向適當的區域端點,以提供全域負載平衡。 它會在中斷期間自動容錯移轉至次要區域。
Azure 負載平衡器 是第 4 層負載平衡器,可在後端資源之間散發傳入的網路流量。 在此架構中,負載平衡器提供應用程式層之間的內部負載平衡,並在每個區域內的可用性區域之間維護高可用性。
Azure DDoS 防護 是一項服務,可協助防範分散式阻斷服務 (DDoS) 攻擊。 在此架構中,DDoS 防護為公用 IP 位址提供保護,並協助確保攻擊案例期間的可用性。
Azure DNS 是 DNS 網域的託管服務。 它使用 Microsoft Azure 基礎結構提供名稱解析。 在此架構中,Azure DNS 會管理 DNS 記錄,並與流量管理員搭配使用,以提供全域 DNS 型負載平衡和容錯移轉功能。
Azure DNS 私人區域是 Azure DNS 的一項功能。 Azure DNS 私人區域會在虛擬網路內和虛擬網路之間提供名稱解析。 在此架構中,Azure DNS 私人區域會啟用虛擬網路基礎結構內資源的內部名稱解析。
Azure 虛擬機器 是一項服務,可提供隨選、可調整的運算資源,可讓您提供虛擬化的彈性,但可消除實體硬體的維護需求。 在此架構中,虛擬機器會裝載應用程式層,並將其散發到多個區域的可用性區域,以實現高可用性。
您可以將應用程式的特定元件 (例如資料庫和前端層) 取代為平台即服務 (PaaS) Azure 資源。 不過,如果您使用 Azure Private Link 和 Azure App Service 虛擬網路整合 ,將這些 PaaS 服務帶入虛擬網路,則架構不會大幅變更。
Azure 虛擬機器擴展集 是一項服務,可提供自動化和負載平衡的虛擬機器調整,以簡化應用程式管理並提高可用性。 在此架構中,虛擬機器擴展集可根據需求自動調整應用程式層,同時跨可用性區域維護高可用性。
VM 上的 SQL Server 是一項服務,可在雲端中提供完整版本的 SQL Server,而不需要管理任何內部部署硬體。 在此架構中,VM 上的 SQL Server 會形成資料層,其可用性群組分散在可用性區域中,並使用 DNN 進行負載平衡。
Azure 虛擬網絡 是雲端中安全的專用網。 它會將 VM 彼此連線、連線至網際網路,以及跨內部部署網路。 在此架構中,虛擬網路會為所有元件提供網路隔離和連線能力。 全域虛擬網路對等互連可在區域之間實現低延遲通訊。
UDR 是覆寫虛擬網路中預設路由的機制。 在此架構中,它們會強制輸入和輸出流量周遊 Azure 防火牆,以進行安全性檢查和原則強制執行。
解決方案詳細資料
流量管理員 -我們已將 流量管理員 設定為使用效能路由。 它會將流量路由傳送至具有使用者最低延遲的端點。 流量管理員 會在端點延遲變更時自動調整其負載平衡演算法。 如果發生區域性中斷,流量管理員會提供自動故障轉移。 它會使用優先順序路由和定期健康情況檢查來判斷路由流量的位置。
可用性區域 -此架構使用三個可用性區域。 這些區域會為每個區域中的 應用程式閘道、內部負載平衡器和虛擬機建立高可用性架構。 如果發生區域故障,該區域剩餘的可用區域會接手負載,這不會觸發區域故障轉移。
應用程式閘道 -雖然 流量管理員 提供 DNS 型區域負載平衡,但 應用程式閘道 提供許多與 Azure Front Door 相同的功能,但在區域層級,例如:
- Web 應用程式防火牆 (WAF)
- 傳輸層安全性 (TLS) 終止
- 路徑型路由
- Cookie 型工作階段同質
Azure 防火牆 - Azure 防火牆 Premium 提供一般應用程式的網路安全性(Web 和非 Web 流量),檢查此架構中的三種類型的流程:
- 來自 應用程式閘道 的輸入 HTTP(S) 流程會受到進階 TLS 檢查 Azure 防火牆 保護。
- 來自公用因特網的輸入非 HTTP(S) 流程會檢查其餘 Azure 防火牆 Premium 功能。
- 來自 Azure 虛擬機器 的輸出流程會由 Azure 防火牆 檢查,以防止數據外泄和存取禁止的網站和應用程式。
虛擬網路對等互連 - 我們會在區域之間呼叫對等互連「全域虛擬網路對等互連」。全域虛擬網路對等互連可在區域之間提供低延遲、高頻寬的數據複寫。 您可以使用此全域對等互連,跨 Azure 訂用帳戶、Microsoft Entra 租使用者和部署模型傳輸數據。 在中樞輪輻環境虛擬網路對等互連中,中樞和輪輻網路之間會存在。
建議
下列建議會遵循 Azure 良好架構架構 (WAF) 的支柱。 WAF 支柱是指導原則,可協助確保雲端工作負載的品質。 如需更多資訊,請參閱 Microsoft Azure 結構完善的架構。
考慮
這些考慮會實作 Azure Well-Architected Framework 的要素,這是一組可用來改善工作負載質量的指導原則。 如需更多資訊,請參閱 Microsoft Azure 結構完善的架構。
可靠性
可靠性可確保您的應用程式可以符合您對客戶的承諾。 如需詳細資訊,請參閱 可靠性的設計檢閱檢查清單。
區域 - 至少使用兩個 Azure 區域來達到高可用性。 您可以在主動/被動或主動/主動組態中,跨多個 Azure 區域部署您的應用程式。 如果應用程式的子系統失敗,多個區域也有助於避免應用程式停機。
若主要區域失敗,Traffic Manager 會自動切換到次要區域。
根據下列所有因素,為您的需求選擇最佳區域:
- 您的技術需求,包括地理距離和跨區域延遲
- 數據落地需求
- 法規考慮
- 可用性區域支援
- 每個區域中的服務可用性
- 費用
許多 Azure 區域會配對。 如果您的區域有配對,使用配對的區域作為次要區域可能會有一些好處。 不過,您應該先確認區域配對符合所有需求。
如需如何選取 Azure 區域的詳細資訊,請參閱 在雲端採用架構中選取 Azure 區域。
可用性區域 - 使用多個可用性區域來支援您可用的 應用程式閘道、Azure 防火牆、Azure Load Balancer 和應用層。
應用程式閘道自動調整和實例 - 設定至少兩個實例的 應用程式閘道,以避免停機時間,並自動調整以提供動態適應變更應用程式容量需求。
如需詳細資訊,請參閱
- Azure 中的區域和可用性區域
- Azure 區域配對和非配對的區域 (部分內容可能是機器或 AI 翻譯)
全域路由
全域路由方法 - 使用最符合客戶需求的流量路由方法。 流量管理員 支援多個流量路由方法,以決定性方式將流量路由傳送至各種服務端點。
巢狀設定 - 如果您需要更細微的控制來選擇區域內慣用的故障轉移,請在巢狀設定中使用 流量管理員。
如需詳細資訊,請參閱
全域流量檢視
使用 流量管理員 中的流量檢視來查看流量模式和延遲計量。 流量檢視可協助您規劃擴充至新 Azure 區域的使用量。
欲了解更多資訊,請參閱 交通管理員交通檢視。
應用程式閘道
使用 應用程式閘道 v2 SKU 進行現用的自動化復原。
應用程式閘道 v2 SKU 會自動確保新的實例跨容錯網域和更新網域繁衍。 如果您選擇區域備援,最新的實例也會跨可用性區域繁衍,以提供容錯。
當您部署兩個或多個實例時,應用程式閘道 v1 SKU 支援高可用性案例。 Azure 會將這些實例分散到更新和容錯網域,以確保實例不會同時失敗。 v1 SKU 可藉由新增多個相同閘道的執行個體來分攤負載,以支援延展性。
應用程式閘道 需要信任 Azure 防火牆 的 CA 憑證。
Azure 防火牆
此設計需要 Azure 防火牆 的進階層,以提供 TLS 檢查。 Azure 防火牆攔截應用程式閘道與網頁層虛擬機之間的 TLS 會話並生成其自身憑證,同時檢查從虛擬網路到公共網際網路的外出流量。 您可以使用 Azure 防火牆 和 應用程式閘道,在零信任網路中找到此設計的詳細資訊。
健康情況探查建議
以下是 流量管理員、應用程式閘道 和 Load Balancer 中健康情況探查的一些建議。
Traffic Manager
端點健康情況 - 建立可報告應用程式整體健全狀況的端點。 流量管理員 會使用 HTTP(S) 探查來監視每個區域的可用性。 探查會檢查 HTTP 200 回應是否有指定的 URL 路徑。 使用您為健康情況探查建立的端點。 否則,當應用程式的關鍵部分失敗時,探查可能會報告狀況良好的端點。
如需詳細資訊,請參閱 健康情況端點監視模式。
故障轉移延遲 - 流量管理員 有故障轉移延遲。 下列因素決定延遲的持續時間:
- 探查間隔:探查檢查端點健康情況的頻率。
- 容許的失敗數目:探查在標示端點狀況不良之前容許的失敗數目。
- 探查逾時:流量管理員 考慮端點狀況不良的時間長度。
- 存留時間 (TTL):D NS 伺服器必須更新IP位址的快取 DNS 記錄。 它所需的時間取決於 DNS TTL。 默認 TTL 為 300 秒(5 分鐘),但您可以在建立 流量管理員 設定檔時設定此值。
如需詳細資訊,請參閱 流量管理員 監視。
應用程式閘道 和Load Balancer
熟悉 應用程式閘道 和負載平衡器的健康情況探查原則,以確保您瞭解 VM 的健康情況。 以下是簡短概觀:
應用程式閘道 一律使用 HTTP 探查。
Load Balancer 可以評估 HTTP 或 TCP。 如果 VM 執行 HTTP 伺服器,請使用 HTTP 探查。 針對其他所有專案使用 TCP。
HTTP 探查會將 HTTP GET 要求傳送至指定的路徑,並接聽 HTTP 200 回應。 此路徑可以是根路徑 (“/”),或實作自定義邏輯的健全狀況監視端點,以檢查應用程式的健康情況。
端點必須允許匿名 HTTP 要求。 如果探查無法在逾時期間內聯機到實例,應用程式閘道 或 Load Balancer 會停止將流量傳送至該 VM。 探測器持續檢查,若虛擬機再次可用,則會將該虛擬機回傳回後端池。
如需詳細資訊,請參閱
- 健康狀態探查 (機器翻譯)
- 應用程式閘道 健康情況監視概觀
- 健康情況端點監視模式
安全性
安全性可提供針對蓄意攻擊和濫用寶貴數據和系統的保證。 如需詳細資訊,請參閱 安全性的設計檢閱檢查清單。
網頁應用防火牆 - Azure 應用閘道的 WAF 功能能偵測並防止 HTTP 層級的攻擊,例如 SQL 注入(SQLi)或跨站腳本(CSS)。
新一代防火牆 - Azure 防火牆 Premium 藉由檢查內容是否有非 Web 攻擊,例如透過 HTTP(S) 或任何其他通訊協定上傳的惡意檔案,提供額外的防禦層。
端對端加密 - 周遊 Azure 網路時,流量會隨時加密。 應用程式閘道 和 Azure 防火牆 將流量傳送至對應的後端系統之前,先加密流量。
分散式阻斷服務 (DDoS) - 使用 Azure DDoS 網路保護 來獲得比 Azure 提供的基本保護更大的 DDoS 保護。
網路安全組 (NSG) - 使用 NSG 來限制虛擬網路內的網路流量。 例如,在此處顯示的三層架構中,數據層只接受來自商務層的流量,而不是來自Web前端的流量。 只有商務層可以直接與資料庫層通訊。 若要強制執行此規則,資料庫層應該封鎖商務層子網以外的所有連入流量。
- 允許來自商務層子網的輸入流量。
- 允許來自資料庫層子網本身的輸入流量。 此規則允許資料庫 VM 之間的通訊。 資料庫複寫和故障轉移需要此規則。
- 使用規則中的
VirtualNetwork標籤來覆寫預設 NSG 規則中包含的 permit 語句,拒絕來自虛擬網路的所有輸入流量。
建立優先順序低於第一個規則的規則 3(數位較高)。
您可以使用服務標籤來定義網路安全組或 Azure 防火牆 的網路存取控制。
如需詳細資訊,請參閱 應用程式網關基礎結構組態。
成本優化
成本優化是考慮如何減少不必要的費用,並提升營運效率。 如需詳細資訊,請參閱 成本優化的設計檢閱檢查清單。
如需詳細資訊,請參閱
卓越營運
卓越營運涵蓋部署應用程式的作業程式,並讓它在生產環境中執行。 如需詳細資訊,請參閱 Operational Excellence的設計檢閱檢查清單。
資源群組 - 使用 資源群組 依存留期、擁有者和其他特性來管理 Azure 資源。
虛擬網路對等互連 - 使用 虛擬網路對等互連 ,在 Azure 中順暢地連線兩個以上的虛擬網路。 基於連線目的,虛擬網路會顯示為一個。 對等互連虛擬網路中虛擬機器之間的流量會使用 Microsoft 骨幹基礎結構。 請確定虛擬網路的位址空間不會重疊。
虛擬網路和子網 - 為子網的每個層級建立個別的子網。 您應該將 VM 和資源,例如 應用程式閘道 和 Load Balancer 部署到具有子網的虛擬網路。
效能效率
效能效率是工作負載以有效率的方式符合其需求的能力。 如需詳細資訊,請參閱 效能效率的設計檢閱檢查清單。
虛擬機擴展集 - 使用 虛擬機器擴展集 將虛擬機的延展性自動化。 所有 Windows 和 Linux 虛擬機大小都可以使用虛擬機擴展集。 您只需支付已部署的虛擬機和已耗用的基礎結構資源的費用。 沒有累加式費用。 虛擬機器擴展集 的優點如下:
- 輕鬆建立和管理多部虛擬機
- 高可用性和應用程式復原能力
- 隨著資源需求變更而自動調整
如需詳細資訊,請參閱虛擬機器擴展集。
下一步
如需使用相同技術的更多參考架構,請參閱: