此架構適用於使用 HTTP(S) 和非 HTTP(S) 通訊協定的全域因特網面向應用程式。 其功能是以 DNS 為基礎的全域負載平衡、兩種形式的區域負載平衡,以及全域虛擬網路對等互連,以建立可承受區域性中斷的高可用性架構。 Azure Web 應用程式防火牆 (WAF) 和 Azure 防火牆 都會提供流量檢查。
架構注意事項
本檔中的架構很容易延伸至中樞和輪輻虛擬網路設計,其中 Azure 防火牆 會位於中樞網路,以及中樞網路或輪輻中的 應用程式閘道。 如果 應用程式閘道 部署在中樞,您仍然想要多個 應用程式閘道,每個應用程式都有一組,以避免 RBAC 衝突,並防止達到 應用程式閘道 限制(請參閱 應用程式閘道 限制)。
在虛擬 WAN 環境中,應用程式閘道 無法部署在中樞,因此它們會安裝在輪輻虛擬網路中。
建議的架構會透過 Web 應用程式防火牆(以 應用程式閘道 為基礎)在 Azure 防火牆 前選擇對Web內容進行雙重檢查。 其他選項存在,如虛擬網路的防火牆和 應用程式閘道 中所述,但此選項最有彈性且完整:它會在端應用程式的 HTTP 標頭X-Forwarded-For
中公開用戶端的 IP 位址,提供端對端加密,並防止用戶端略過 WAF 來存取應用程式。
如果只有 Web 應用程式公開(沒有非 HTTP(S) 應用程式,而且不需要 WAF 和此 Web 流量的 Azure 防火牆 雙重檢查,Azure Front Door 會比 流量管理員 更好的全域負載平衡解決方案。 Front Door 是 HTTP(S) 內容的第 7 層負載平衡器,也提供快取、流量加速、SSL/TLS 終止、憑證管理、健康情況探查和其他功能。 不過,應用程式閘道 提供與分層保護方法 Azure 防火牆 更好的整合。
輸入 HTTP(S) 流量
Azure 流量管理員 會使用 DNS 型路由,在兩個區域之間平衡連入流量的負載平衡。 流量管理員 會將應用程式的 DNS 查詢解析為 Azure 應用程式閘道 端點的公用 IP 位址。 應用程式閘道 的公用端點可作為 HTTP(S) 流量 流量管理員 的後端端點。 流量管理員 會根據各種路由方法的選擇來解析 DNS 查詢。 瀏覽器會直接連線到端點;流量管理員 看不到 HTTP(S) 流量。
跨可用性區域部署的 應用程式閘道 會從瀏覽器接收 HTTP(S) 流量,而 Web 應用程式防火牆 Premium 會檢查流量以偵測 Web 攻擊。 應用程式閘道 會將流量傳送至其後端,這是前端虛擬機的內部負載平衡器。 針對此特定流程,網頁伺服器前面的內部負載平衡器並非絕對必要,因為 應用程式閘道 可以自行執行此負載平衡。 不過,它隨附於非 HTTP(S) 應用程式的流程一致性。
應用程式閘道 與前端內部負載平衡器之間的流量將會透過 應用程式閘道 子網上套用的使用者定義路由,Azure 防火牆 Premium 攔截。 Azure 防火牆 Premium 會將 TLS 檢查套用至流量,以取得額外的安全性。 Azure 防火牆 也是區域備援。 如果 Azure 防火牆 偵測到流量中的威脅,則會卸除封包。 否則,在成功檢查時,Azure 防火牆 會將流量轉送至目的地Web層內部負載平衡器。
Web 層是三層式應用程式的第一層,其中包含使用者介面,也會剖析用戶互動。 Web 層負載平衡器會分散到所有三個可用性區域,並將流量分散到三個 Web 層虛擬機的每一個。
Web 層虛擬機會分散到這三個可用性區域,而且會透過專用的內部負載平衡器與商務層通訊。
商務層會處理用戶互動並決定後續步驟,且位於 Web 和數據層之間。 商務層內部負載平衡器會將流量分散到三個可用性區域的商務層虛擬機。 商務層負載平衡器是區域備援,例如 Web 層負載平衡器。
商務層虛擬機會分散到可用性區域,並將流量路由傳送至資料庫的可用性群組接聽程式。
數據層會儲存應用程式數據,通常是在資料庫、物件記憶體或檔案共用中。 此架構在分散於三個可用性區域的虛擬機上具有SQL Server。 它們位於可用性群組中,並使用分散式網路名稱 (DNN) 將流量路由傳送至可用性群組接聽程式以進行負載平衡。
輸入非 HTTP(S) 流量流量
Azure 流量管理員 會使用 DNS 型路由,在兩個區域之間平衡連入流量的負載平衡。 流量管理員 會將應用程式的 DNS 查詢解析為 Azure 端點的公用 IP 位址。 應用程式防火牆的公用端點可作為非 HTTP(S) 流量 流量管理員 的後端端點。 流量管理員 會根據各種路由方法的選擇來解析 DNS 查詢。 瀏覽器會直接連線到端點;流量管理員 看不到 HTTP(S) 流量。
Azure 防火牆 Premium 是區域備援,它會檢查輸入流量是否有安全性。 如果 Azure 防火牆 偵測到流量中的威脅,則會卸除封包。 否則,在成功檢查時,Azure 防火牆 會將流量轉送至在輸入封包上執行目的地網路位址轉換 (DNAT) 的Web層內部負載平衡器。
Web 層是三層式應用程式的第一層,其中包含使用者介面,也會剖析用戶互動。 Web 層負載平衡器會分散到所有三個可用性區域,並將流量分散到三個 Web 層虛擬機的每一個。
Web 層虛擬機會分散到這三個可用性區域,而且會透過專用的內部負載平衡器與商務層通訊。
商務層會處理用戶互動並決定後續步驟,且位於 Web 和數據層之間。 商務層內部負載平衡器會將流量分散到三個可用性區域的商務層虛擬機。 商務層負載平衡器是區域備援,例如 Web 層負載平衡器。
商務層虛擬機會分散到可用性區域,並將流量路由傳送至資料庫的可用性群組接聽程式。
數據層會儲存應用程式數據,通常是在資料庫、物件記憶體或檔案共用中。 此架構在分散於三個可用性區域的虛擬機上具有SQL Server。 它們位於可用性群組中,並使用分散式網路名稱 (DNN) 將流量路由傳送至可用性群組接聽程式以進行負載平衡。
輸出流量 (所有通訊協定)
虛擬機修補程式更新或其他因特網連線的輸出流量流量,將會透過使用者定義的路由,從工作負載虛擬機移至 Azure 防火牆。 Azure 防火牆 會使用 Web 類別以及網路和應用程式規則強制執行連線規則,以防止工作負載存取不適當的內容或數據外流案例。
元件
- Azure 防火牆 是雲端式、Microsoft管理的下一代防火牆,可為南北和東/西流量流量提供深層封包檢查。 它可以分散到 可用性區域,並提供自動調整以應付應用程式需求變更。
- Azure 應用程式閘道 是具有選擇性 Web 應用程式防火牆 (WAF) 功能的第 7 層負載平衡器。 應用程式閘道 的 v2 SKU 支援可用性區域備援,而且建議在大部分情況下使用。 應用程式閘道 包含可設定的水平自動調整,以便自動回應應用程式需求變更。
- Azure 流量管理員 是以 DNS 為基礎的全域流量負載平衡器,可將流量分散到全球 Azure 區域的服務,同時提供高可用性和回應性。 如需詳細資訊,請參閱設定 流量管理員 一節。
- Azure Load Balancer 是第 4 層負載平衡器。 區域備援負載平衡器仍會將可用性區域失敗的流量分散到其餘區域。
- Azure DDoS 保護 已增強功能,可防範分散式阻斷服務 (DDoS) 攻擊。
- Azure DNS 是 DNS 網域的裝載服務。 它會使用 azure 基礎結構Microsoft提供名稱解析。 在 Azure 中裝載網域,即可使用與其他 Azure 服務相同的認證、API、工具和計費來管理 DNS 記錄。
- Azure 私用 DNS 區域是 Azure DNS 的一項功能。 Azure DNS 私人區域提供虛擬網路內的名稱解析,以及虛擬網路之間的名稱解析。 您無法從網際網路解析私人 DNS 區域中包含的記錄。 針對私人 DNS 區域的 DNS 解析只能從與其連結的虛擬網路運作。
- Azure 虛擬機器 是隨選、可調整的運算資源,可提供虛擬化的彈性,但可排除實體硬體的維護需求。 操作系統選擇包括 Windows 和 Linux。 應用程式的某些元件可以取代為平臺即服務 Azure 資源(例如資料庫和前端層),但如果使用 Private Link 和 App Service VNet 整合 將這些 PaaS 服務帶入虛擬網路,則架構不會大幅變更。
- Azure 虛擬機器擴展集 是自動化且負載平衡的虛擬機調整,可簡化應用程式的管理並增加可用性。
- VM 上的 SQL Server 可讓您在雲端中使用完整的 SQL Server 版本,而不需要管理任何內部部署硬體。
- Azure 虛擬網絡 是雲端中安全的專用網。 它會將虛擬機彼此連線、連線到因特網,以及跨單位網路。
- 用戶定義的路由 是覆寫虛擬網路中預設路由的機制。 在此案例中,他們會用來強制流量輸入和輸出流量來周遊 Azure 防火牆。
解決方案詳細資料
流量管理員 -我們已將 流量管理員 設定為使用效能路由。 它會將流量路由傳送至具有使用者最低延遲的端點。 流量管理員 會在端點延遲變更時自動調整其負載平衡演算法。 如果發生區域性中斷,流量管理員會提供自動故障轉移。 它會使用優先順序路由和定期健康情況檢查來判斷路由流量的位置。
可用性區域 -此架構使用三個可用性區域。 這些區域會為每個區域中的 應用程式閘道、內部負載平衡器和虛擬機建立高可用性架構。 如果區域中斷,該區域中的剩餘可用性區域會接管負載,這不會觸發區域故障轉移。
應用程式閘道 -雖然 流量管理員 提供 DNS 型區域負載平衡,但 應用程式閘道 提供許多與 Azure Front Door 相同的功能,但在區域層級,例如:
- Web Application Firewall (WAF)
- 傳輸層安全性 (TLS) 終止
- 路徑型路由
- Cookie 型工作階段同質
Azure 防火牆 - Azure 防火牆 Premium 為一般應用程式提供網路安全性(Web 和非 Web 流量),檢查此架構中的三種流程類型:
- 來自 應用程式閘道 的輸入 HTTP(S) 流程會受到 Azure 防火牆 進階 TLS 檢查的保護。
- 來自公用因特網的輸入非 HTTP(S) 流程會檢查其餘 Azure 防火牆 Premium 功能。
- 來自 Azure 虛擬機器 的輸出流程會由 Azure 防火牆 檢查,以防止數據外泄和存取禁止的網站和應用程式。
虛擬網路對等互連 - 我們會在區域之間呼叫對等互連「全域虛擬網路對等互連」。全域虛擬網路對等互連可在區域之間提供低延遲、高頻寬的數據複寫。 您可以使用此全域對等互連,跨 Azure 訂用帳戶、Microsoft Entra 租使用者和部署模型傳輸數據。 在中樞輪輻環境虛擬網路對等互連中,中樞和輪輻網路之間會存在。
建議
下列建議會遵循 Azure 良好架構架構 (WAF) 的支柱。 WAF 支柱是指導原則,可協助確保雲端工作負載的品質。 如需詳細資訊,請參閱 Microsoft Azure Well-Architected Framework (部分機器翻譯)。
可靠性
區域 - 至少使用兩個 Azure 區域來達到高可用性。 您可以在主動/被動或主動/主動組態中,跨多個 Azure 區域部署您的應用程式。 如果應用程式的子系統失敗,多個區域也有助於避免應用程式停機。
- 如果主要區域失敗,流量管理員 會自動故障轉移至次要區域。
- 為您的需求選擇最佳區域必須以技術、法規考慮和可用性區域支援為基礎。
區域配對 - 使用區域配對以取得最大的復原能力。 請確定這兩個區域配對都支援應用程式所需的所有 Azure 服務(請參閱 依區域的服務)。 以下是區域配對的兩個優點:
- 規劃的 Azure 更新會一次推出一個配對的區域,以將停機時間和應用程式中斷的風險降到最低。
- 數據會繼續位於與其配對相同的地理位置(巴西南部除外)的稅務和法律用途。
可用性區域 - 使用多個可用性區域來支援您可用的 應用程式閘道、Azure 防火牆、Azure Load Balancer 和應用層。
應用程式閘道自動調整和實例 - 使用至少兩個實例來設定 應用程式閘道,以避免停機,並自動調整以提供動態適應不斷變化的應用程式容量需求。
如需詳細資訊,請參閱
- Azure 中的區域和可用性區域
- 商務持續性與災害復原 (BCDR):Azure 配對區域 \(部分機器翻譯\)
全域路由
全域路由方法 - 使用最符合客戶需求的流量路由方法。 流量管理員 支援多個流量路由方法,以決定性方式將流量路由傳送至各種服務端點。
巢狀設定 - 如果您需要更細微的控制來選擇區域內慣用的故障轉移,請在巢狀設定中使用 流量管理員。
如需詳細資訊,請參閱
全域流量檢視
使用 流量管理員 中的流量檢視來查看流量模式和延遲計量。 流量檢視可協助您規劃擴充至新 Azure 區域的使用量。
如需詳細資訊,請參閱 流量管理員 流量檢視。
應用程式閘道
使用 應用程式閘道 v2 SKU 進行現用的自動化復原。
應用程式閘道 v2 SKU 會自動確保新的實例在容錯網域和更新網域之間繁衍。 如果您選擇區域備援,最新的實例也會跨可用性區域繁衍,以提供容錯。
當您部署兩個或多個實例時,應用程式閘道 v1 SKU 支援高可用性案例。 Azure 會將這些實例分散到更新和容錯網域,以確保實例不會同時失敗。 v1 SKU 可藉由新增多個相同閘道的執行個體來分攤負載,以支援延展性。
應用程式閘道 需要信任 Azure 防火牆 的 CA 憑證。
Azure 防火牆
此設計需要 Azure 防火牆 的進階層,才能提供 TLS 檢查。 Azure 防火牆 會攔截 應用程式閘道 與產生自己憑證的 Web 層虛擬機器之間的 TLS 會話,以及檢查從虛擬網路流向公用因特網的輸出流量。 您可以在具有 Azure 防火牆 和 應用程式閘道 的 Web 應用程式零信任網路中找到此設計的詳細資訊。
健康情況探查建議
以下是 流量管理員、應用程式閘道 和 Load Balancer 中健康情況探查的一些建議。
流量管理員
端點健康情況 - 建立可報告應用程式整體健全狀況的端點。 流量管理員 會使用 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。 如果 VM 再次可供使用,探查會繼續檢查並將 VM 傳回後端集區。
如需詳細資訊,請參閱
- 健康狀態探查 (機器翻譯)
- 應用程式閘道 健康情況監視概觀
- 健康情況端點監視模式
卓越營運
資源群組 - 使用 資源群組 依存留期、擁有者和其他特性來管理 Azure 資源。
虛擬網路對等互連 - 使用 虛擬網路對等互連 ,在 Azure 中順暢地連線兩個以上的虛擬網路。 基於連線目的,虛擬網路會顯示為一個。 對等互連虛擬網路中虛擬機器之間的流量會使用 Microsoft 骨幹基礎結構。 請確定虛擬網路的位址空間不會重疊。
虛擬網路和子網 - 為子網的每個層級建立個別的子網。 您應該將 VM 和資源,例如 應用程式閘道 和 Load Balancer 部署到具有子網的虛擬網路。
安全性
Web 應用程式防火牆 -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 防火牆 的網路存取控制。
如需詳細資訊,請參閱 應用程式網關基礎結構組態。
成本最佳化
如需詳細資訊,請參閱
效能效益
虛擬機擴展集 - 使用 虛擬機器擴展集 將虛擬機的延展性自動化。 所有 Windows 和 Linux 虛擬機大小都可以使用虛擬機擴展集。 您只需支付已部署的虛擬機和已耗用的基礎結構資源的費用。 沒有累加式費用。 虛擬機器擴展集 的優點如下:
- 輕鬆建立和管理多部虛擬機
- 高可用性和應用程式復原能力
- 隨著資源需求變更而自動調整
如需詳細資訊,請參閱虛擬機器擴展集。
下一步
如需使用相同技術的更多參考架構,請參閱: