彈性伸縮的目標追蹤規則是彈性伸縮服務與云監控深度結合的產物,定義了更加穩定、精準、快速的彈性伸縮策略,可以解決當前伸縮組動態調整過程存在的一些難點和問題(例如用戶流量突增或硬件出現故障等突發事件),能快速實現伸縮組的自動擴縮容,確保系統的穩定性和可用性。
概念介紹
彈性伸縮的目標追蹤規則是在簡單規則的基礎上擴展出來的一種新類型的伸縮規則,您可以根據需要選擇一項云監控指標,并指定監控指標的目標值,彈性伸縮會自動計算所需的實例數量并進行擴縮容,從而將云監控指標更高效、更準確地維持在目標值附近。
彈性伸縮支持步進規則、預測規則、簡單規則、目標追蹤規則四種伸縮規則類型,更多信息,請參見伸縮規則概述。
支持的監控項和功能設置
支持的監控項
在使用目標追蹤規則時,對可選的云監控指標有一定限制,指標必須是有效的使用率指標,能夠正確反映伸縮組內實例整體的繁忙程度,并且指標值需要根據伸縮組內實例數量的變化而相應地增加或減少。
滿足上述條件的監控指標適合應用于目標追蹤規則,不同類型的伸縮組,其目標追蹤規則支持的云監控指標不同:
ECS類型的伸縮組
API監控指標
控制臺監控指標
CpuUtilization
(ECS)平均CPU使用率
IntranetRx
(ECS)內網入流量的平均值
IntranetTx
(ECS)內網出流量的平均值
ClassicInternetRx/VpcInternetRx
(ECS)公網入流量的平均值
說明如果伸縮組的網絡類型為經典網絡,則此處的(ECS)公網入流量的平均值指的是(ECS)經典網絡公網入流量的平均值。
如果伸縮組的網絡類型為專有網絡,則此處的(ECS)公網入流量的平均值指的是(ECS)VPC網絡公網入流量的平均值。
ClassicInternetTx/VpcInternetTx
(ECS)公網出流量的平均值
說明如果伸縮組的網絡類型為經典網絡,則此處的(ECS)公網出流量的平均值指的是(ECS)經典網絡公網出流量的平均值。
如果伸縮組的網絡類型為專有網絡,則此處的(ECS)公網出流量的平均值指的是(ECS)VPC網絡公網出流量的平均值。
MemoryUtilization
(Agent)內存
表示通過云監控客戶端采集的內存使用率指標。
LoadBalancerRealServerAverageQps
(ALB)服務器組單機QPS
說明選擇該云監控指標后,您還需要選擇相應的ALB服務器組。
ECI類型的伸縮組
API監控指標
控制臺監控指標
EciPodCpuUtilization
CPU使用率
EciPodMemoryUtilization
內存
LoadBalancerRealServerAverageQps
(ALB)服務器組單機QPS
說明選擇該云監控指標后,您還需要選擇相應的ALB服務器組。
支持的功能設置
禁用縮容:如果不想使用目標追蹤規則的自動刪除實例功能,可以通過開啟禁用縮容功能來實現。
開啟禁用縮容功能,您可以通過在彈性伸縮控制臺的創建伸縮規則頁面,單擊禁用縮容參數后的按鈕來實現;也可以通過調用API CreateScalingRule參數,設置DisableScaleIn為true來實現。
開啟禁用縮容功能后,伸縮組的目標追蹤規則只能創建一條用于擴容的報警任務,不會創建或者刪除一條用于縮容的報警任務。通過該功能,您可以使用其他方式控制伸縮組的縮容過程。例如,您可以通過報警任務監控其他指標,觸發一條簡單規則用于縮容操作。
關閉禁用縮容功能后,伸縮組的目標追蹤規則會同時創建一條用于擴容的報警任務和一條用于縮容的報警任務。
實例預熱時間:指新添加的實例所需要的預熱時間,在預熱時間段內,該實例不影響伸縮組的監控指標。
新實例加入伸縮組后,通常需要經歷業務部署、負載均衡健康檢查、數據采集等過程,才能上報穩定的監控數據,此過程中不適合觸發新的伸縮活動。為了限制擴縮容過程執行的頻率,伸縮組提供了對伸縮規則設置合適的實例預熱時間,在此期間伸縮組會拒絕執行伸縮規則。
實例的預熱階段主要體現在以下幾點:
實例預熱結束前,可正常加入伸縮組,但實例不會向云監控上報數據,云監控在聚合伸縮組上報的監控指標時會忽略伸縮組內的預熱實例,不會將預熱實例作為伸縮組內的實例。
實例預熱結束后,將開始向云監控上報數據,云監控在此時會將該實例作為伸縮組內的實例。
伸縮組在擴容過程中,加入伸縮組的預熱實例不會做為擴容實例的基數。
例如,當前組內實例數量為2個,伸縮組觸發擴容活動后添加5個實例到伸縮組,預熱時間設置為300秒,在實例預熱期間,伸縮組再次觸發擴容活動后,仍按照實例數量為2個作為擴容實例的基數。
伸縮組在縮容過程中,會自動根據歷史執行情況設置合適的默認冷卻時間,避免加入伸縮組的預熱實例因數據延遲而引起連續縮容活動,而導致伸縮組內的實例被過多釋放。
與簡單規則對比
目標追蹤規則與簡單規則對比如下所示:
對比項 | 簡單規則 | 目標追蹤規則 |
用戶參與度 | 用戶參與度高。 您可以根據實際需要自定義擴縮容活動,使您真正實現按需使用的目標。但您需要關注具體的擴縮容活動、期望目標值等。 | 用戶參與度低。 將擴縮容方法和擴縮容時間兩者定義整合在一起,您可以查看到監控指標值,且只需要關注監控指標的目標值即可。 |
調整粒度 | 調整粒度固定。 您可以自定義具體的擴縮容操作,但無法感知監控指標的實際狀態,您只能夠根據經驗來設置一個固定的伸縮規則,其調整過程粒度無法實現動態調整。 | 調整粒度精準。 目標追蹤伸縮規則增加了對監控數據的感知能力,根據歷史的監控數據值和期望目標值計算出所需要的擴縮容實例數,使用盡量少的調整過程接近目標值,實現快速、精準、動態的擴縮容活動。 |
調整過程 | 調整過程缺乏控制。主要體現在以下幾點:
| 調整過程控制靈活,主要體現在以下幾點:
|
創建目標追蹤規則
注意事項
在創建目標追蹤規則前,您需要注意以下幾點:
一個伸縮組內創建目標追蹤規則時,同一指標類型對應的目標追蹤規則只能存在一個。
創建目標追蹤規則時,會自動創建2條云監控報警任務。
報警任務不支持修改與刪除,只能進行查看、停用或啟用操作。如需刪除報警任務,請刪除對應的目標追蹤規則即可。
2條云監控報警任務采用相對激進的擴容策略和相對保守的縮容策略,分別用于擴容活動和縮容活動。
例如,如果伸縮組的擴容報警任務采樣間隔為60秒,報警任務連續3分鐘滿足閾值條件時,則進行擴容活動;如果伸縮組的縮容報警任務采樣間隔為60秒,報警任務連續15分鐘滿足閾值條件時,則進行縮容活動。
發生報警時,伸縮組將觸發對應的擴縮容活動,彈性伸縮會根據監控指標的歷史數據計算擴縮容過程中實例的數量。對于擴容活動來說,需要增加的實例數量采取向上取整,避免擴容的實例數量不足;對于縮容活動來說,需要移出的實例數量采取向下取整,避免釋放過多的實例數量。
例如,如果伸縮組需要增加實例個數為1.5個時,實際伸縮組將增加2個實例;如果伸縮組需要移出的實例個數為1.5個時,實際伸縮組將減少1個實例。
如果監控數據指標不足時,伸縮組將不會觸發擴縮容活動。
如果伸縮組內的實例數量較少時,可能會存在監控指標值與目標值存在較大的差距。此時,伸縮組內的實例數量的變化對伸縮組聚合指標值具有較大的影響。
例如,如果在縮容過程中報警規則一直處于報警狀態,卻沒有發生縮容活動。這種情況主要是因為縮容過程計算得到的縮容實例數量少于1個,因此不會產生實際的伸縮活動。
操作步驟
您可以通過彈性伸縮控制臺或者調用API兩種方式來創建伸縮組的目標追蹤規則。
控制臺方式:選擇需要創建的伸縮組,創建目標追蹤規則的更多操作,請參見配置伸縮規則。
API方式:調用API CreateScalingRule參數創建目標追蹤規則,更多操作,請參見CreateScalingRule。