應用程式閘道高流量支援

注意

本文說明一些建議的指導方針,可協助您設定應用程式閘道以處理可能產生的高流量所導致的額外流量。 警示閾值純粹是建議,本質上是通用的。 使用者可以根據其工作負載和使用率預期來決定警示閾值。

您可以使用應用程式閘道搭配 Web 應用程式防火牆 (WAF),以透過可調整且安全的方式來管理 Web 應用程式的流量。

請務必根據流量來調整應用程式閘道的規模,並使用一些緩衝,以便做好準備來應對流量的激增或尖峰,並將其對 QoS 的影響降至最低。 下列建議可協助您設定搭配 WAF 的應用程式閘道來處理額外的流量。

如需應用程式閘道所提供計量的完整清單,請參閱計量文件。 有關如何設定計量的警示,請參閱 Azure 入口網站中的視覺化計量,以及 Azure 監視器文件

如需應用程式閘道效能效率的詳細資料和建議,請參閱 Azure Well-Architected Framework 檢閱 - Azure 應用程式閘道 v2

調整應用程式閘道 v1 SKU (Standard/WAF SKU) 規模

根據尖峰 CPU 使用率設定執行個體計數

如果您使用 v1 SKU 閘道,最多可設定 32 個執行個體來調整應用程式閘道的規模。 檢查過去一個月的應用程式閘道 CPU 使用率是否有任何高於 80% 的尖峰,這可作為供您監視的計量。 建議您根據尖峰使用率設定執行個體計數,並使用 10% 到 20% 的額外緩衝,以因應任何流量尖峰。

V1 CPU utilization metrics

使用 v2 SKU 而非 v1,以取得其自動調整功能和效能優點

v2 SKU 提供自動調整,以確保您的應用程式閘道可以隨著流量增加而擴大。 與 v1 相比,其還具有其他顯著的效能優勢,例如提升 5 倍的 TLS 卸載效能、更快的部署和更新時間,區域備援等等。 如需詳細資訊,請參閱 v2 文件,並參閱 v1 至 v2 移轉文件,以了解如何將現有的 v1 SKU 閘道移轉至 v2 SKU。

應用程式閘道 v2 SKU (Standard_v2/WAF_v2 SKU) 的自動調整

將最大執行個體計數設定為最大可能值 (125)

對於應用程式閘道 v2 SKU,將最大執行個體計數設為 125 的最大可能值,可以讓應用程式閘道視需要擴增。 這可讓其處理應用程式中可能增加的流量。 您只需要支付所使用的容量單位 (CU) 費用。

請務必檢查子網大小和子網中的可用 IP 位址計數,並據此設定最大執行個體計數。 如果子網路的容納空間不足,您必須在容量足夠的相同或不同子網路中重新建立閘道。

V2 autoscaling configuration

根據平均計算單位使用率設定最小執行個體計數

對於應用程式閘道 v2 SKU,自動調整需要六到七分鐘的時間,才能擴增並佈建額外的執行個體集合,以便處理流量。 在此之前,如果流量出現短暫的尖峰,現有的閘道執行個體可能會因為壓力而造成非預期的延遲或流量遺失。

建議您將最小執行個體計數設定為最佳層級。 例如,如果您需要 50 個執行個體處理尖峰負載流量,建議將最小值設定為 25 到 30,而不要 < 10。這樣一來,即使有短暫的流量高載,應用程式閘道仍可處理,並有足夠的時間讓自動調整來回應並生效。

檢查過去一個月的計算單位計量。 計算單位計量是閘道 CPU 使用率的表示法,根據尖峰使用率除以 10,您可以設定所需的最小執行個體數目。 請注意,1 個應用程式閘道執行個體可以處理至少 10 個計算單位

V2 compute unit metrics

手動調整應用程式閘道 v2 SKU (Standard_v2/WAF_v2 SKU) 規模

根據尖峰計算單位使用率設定執行個體計數

與自動調整不同,手動調整時,您必須根據流量需求手動設定應用程式閘道的執行個體數目。 建議您根據尖峰使用率設定執行個體計數,並使用 10% 到 20% 的額外緩衝,以因應任何流量尖峰。 例如,如果您需要 50 個執行個體處理尖峰流量,請佈建 55 到 60 個執行個體來處理可能發生的非預期流量尖峰。

檢查過去一個月的計算單位計量。 計算單位計量是閘道 CPU 使用率的表示法,根據尖峰使用率除以 10,您可以設定所需的實例數目,因為 1 個應用程式閘道執行個體可以處理至少 10 個計算單位

監視和警示

若要收到任何流量或使用率異常的通知,您可以針對特定計量設定警示。 如需應用程式閘道所提供計量的完整清單,請參閱計量文件。 有關如何設定計量的警示,請參閱 Azure 入口網站中的視覺化計量,以及 Azure 監視器文件

若要使用 ARM 範本設定警示,請參閱設定應用程式閘道的 Azure 監視器警示

應用程式閘道 v1 SKU (Standard/WAF SKU) 的警示

平均 CPU 使用率超過 80% 時發出警示

在正常情況下,CPU 使用量不應經常超過 90%,因為這可能會導致應用程式閘道背後的網站中出現延遲,並且會中斷用戶端體驗。 您可以藉由增加執行個體計數或移至較大的 SKU 大小 (或同時執行這兩種方式) 來修改應用程式閘道的設定,以間接控制或改善 CPU 使用率。 設定於 CPU 使用率計量高於 80% 平均值時發出警示。

狀況不良的主機計數超過閾值時發出警示

此計量指出應用程式閘道無法成功探查的後端伺服器數目。 這會攔截應用程式閘道執行個體無法連線至後端的問題。 此數目超過後端容量的 20% 時發出警示。 舉例來說,如果後端集區中有 30 部後端伺服器,請設定於狀況不良的主機計數高於 6 時發出警示。

回應狀態 (4xx、5xx) 超過閾值時發出警示

建立當應用程式閘道回應狀態為 4xx 或 5xx 時發出的警示。 有時可能會因暫時性問題而看見 4xx 或 5xx 回應。 您應在實際執行環境中觀察閘道,以決定靜態閾值或針對警示使用動態閾值。

失敗的要求數超過閾值時發出警示

建立當失敗的要求數計量超過閾值時發出的警示。 您應在實際執行環境中觀察閘道,以決定靜態閾值或針對警示使用動態閾值。

範例:設定於過去 5 分鐘內失敗的要求數超過 100 時發出警示

此範例示範如何使用 Azure 入口網站,設定於過去 5 分鐘內失敗的要求計數超過 100 時發出警示。

  1. 瀏覽至您的應用程式閘道
  2. 在左側面板中,選取 [監視] 索引標籤下的 [計量]
  3. 針對 [失敗的要求數] 新增計量。
  4. 按一下 [新增警示規則] 並定義條件和動作
  5. 按一下 [建立警示規則] 以建立並啟用警示

V2 create alerts

應用程式閘道 v2 SKU (Standard_v2/WAF_v2 SKU) 的警示

計算單位使用率超過平均使用率的 75% 時發出警示

計算單位是應用程式閘道計算使用率的量值。 檢查過去一個月的平均計量單位使用率,並設定於超過 75% 時發出警示。 例如,如果您平均使用 10 個計算單位,請針對 7.5 個計算單位設定警示。 這會在使用量增加時提醒您,並給您時間回應。 如果您認為此流量將會持續,則可以提高最小值以在流量可能增加時提示您。 請遵循上述的調整建議,視需要進行擴增。

範例:為平均 CU 使用量的 75% 設定警示

這個範例會示範如何使用 Azure 入口網站來設定會在達到平均 CU 使用量的 75% 時觸發的警示。

  1. 瀏覽至您的應用程式閘道
  2. 在左側面板中,選取 [監視] 索引標籤下的 [計量]
  3. 新增 [平均目前計算單位] 的計量。
  4. 如果您已將最小執行個體計數設定為您的平均 CU 使用量,請繼續設定會在已使用最小執行個體計數的 75% 時觸發的警示。 例如,如果您的平均使用量是 10 個 CU,請針對 7.5 個 CU 設定警示。 這會在使用量增加時提醒您,並給您時間回應。 如果您認為此流量將會持續,則可以提高最小值以在流量可能增加時提示您。

V2 compute unit alerts

注意

您可以視您對潛在流量尖峰的所需敏感性程度,將警示設定為在較低或較高的 CU 使用量百分比時發生。

容量單位使用率超過尖峰使用率的 75% 時發出警示

容量單位表示輸送量、計算和連線計數的整體閘道使用率。 檢查過去一個月的最大容量單位使用率,並設定於超過 75% 時發出警示。 例如,如果您最多使用 100 個容量單位,請針對 75 個容量單位設定警示。 請遵循上述兩個建議,視需要進行擴增。

狀況不良的主機計數超過閾值時發出警示

此計量指出應用程式閘道無法成功探查的後端伺服器數目。 這會攔截應用程式閘道執行個體無法連線至後端的問題。 此數目超過後端容量的 20% 時發出警示。 舉例來說,如果後端集區中有 30 部後端伺服器,請設定於狀況不良的主機計數高於 6 時發出警示。

回應狀態 (4xx、5xx) 超過閾值時發出警示

建立當應用程式閘道回應狀態為 4xx 或 5xx 時發出的警示。 有時可能會因暫時性問題而看見 4xx 或 5xx 回應。 您應在實際執行環境中觀察閘道,以決定靜態閾值或針對警示使用動態閾值。

失敗的要求數超過閾值時發出警示

建立當失敗的要求數計量超過閾值時發出的警示。 您應在實際執行環境中觀察閘道,以決定靜態閾值或針對警示使用動態閾值。

後端最後一個位元組回應時間超過閾值時發出警示

此計量指出開始與後端伺服器建立連線,至接收到回應主體最後一個位元組的時間間隔。 建立當後端回應延遲超過平常特定的閾值時發出的警示。 例如,將此設定為當後端回應延遲比平常的值增加超過 30% 時發出警示。

應用程式閘道總時間超過閾值時發出警示

此值是指應用程式閘道收到 HTTP 要求的第一個位元組,到將最後一個回應位元組傳送至用戶端時的時間間隔。 應建立當後端回應延遲超過平常特定的閾值時發出的警示。 例如,可將此設定為當總時間延遲比平常的值增加超過 30% 時發出警示。

設定具有地理篩選和 Bot 保護的 WAF 以阻止攻擊

如果您想要在應用程式前方加入額外的安全性層級,請使用應用程式閘道 WAF_v2 SKU 來取得 WAF 功能。 您可以設定 v2 SKU 以只允許從指定的國家/地區存取您的應用程式。 您可以設定 WAF 自訂規則,以根據地理位置明確允許或封鎖流量。 如需詳細資訊,請參閱地理篩選自訂規則如何透過 PowerShell 設定應用程式閘道 WAF_v2 SKU 上的自訂規則

啟用 Bot 保護以封鎖已知的不良 Bot。 這應該會減少到達您應用程式的流量。 如需詳細資訊,請參閱 Bot 保護與設定指示 \(部分機器翻譯\)。

在應用程式閘道和 WAF 上開啟診斷

診斷記錄可讓您檢視防火牆記錄、效能記錄和存取記錄。 您可以在 Azure 中使用這些記錄來管理應用程式閘道並對其進行疑難排解。 如需詳細資訊,請參閱診斷文件 \(部分機器翻譯\)。

設定 TLS 原則以提供額外的安全性

請確定您使用的是最新的 TLS 原則版本 (AppGwSslPolicy20220101) 或更高版本。 這些支援最低 TLS 1.2 版,且加密強度更高。 如需詳細資訊,請參閱透過 PowerShell 設定 TLS 原則版本和加密套件 \(部分機器翻譯\)。