使用期望執行個體數功能,Auto Scaling服務可以自動調整伸縮組內的執行個體數量為期望的執行個體數量,同時能夠靈活地執行並行伸縮活動,無需人工幹預。本文主要介紹期望執行個體數的相關資訊、使用限制、執行個體數變化規律以及相關樣本等。
期望執行個體數介紹
期望執行個體數功能可以確保伸縮組內的執行個體數量能夠自動維持在期望設定的執行個體數。如果已為伸縮組設定了期望執行個體數,當伸縮組當前組內執行個體數不等於期望執行個體數時,Auto Scaling服務會自動進行擴縮容動作,確保伸縮組內執行個體數量始終等於設定好的期望執行個體數,不需要人工進行幹預。
功能優勢
相比未設定期望執行個體數的伸縮組,設定期望執行個體數功能後,伸縮組利用率提升,伸縮活動的執行也更自動化,即可以有效解決如下問題。
關於設定期望執行個體數伸縮組與未設定期望執行個體數伸縮組的區別,更多資訊,請參見與未設定期望執行個體數伸縮組的區別。
未設定期望執行個體數的伸縮組,當存在執行中的伸縮活動時,不能執行新的伸縮活動,伸縮組利用率低。
例如,如果伸縮組進行擴縮容活動時,健全狀態檢查觸發的伸縮活動就無法執行。
未設定期望執行個體數的伸縮組,當伸縮活動執行失敗時,需要手動重試。
開啟或關閉期望執行個體數功能
您可以通過以下途徑開啟或關閉期望執行個體數功能:
建立伸縮組時或者修改已建立伸縮組時,您都可以設定組內期望執行個體數參數值即可自動開啟期望執行個體數功能。具體操作,請參見配置伸縮組。
說明伸縮組設定(開啟)期望執行個體數功能後,您可以根據實際需要修改伸縮組當前的期望執行個體數。
已設定(開啟)期望執行個體數的伸縮組支援通過API方式來關閉期望執行個體數功能,更多資訊,請參見ModifyScalingGroup - 修改一個伸縮組。
基本概念
使用期望執行個體數功能前,請您瞭解以下概念:
概念 | 說明 |
穩態執行個體 | 伸縮組中處於服務中、保護中和備用中狀態的執行個體。 |
並行伸縮活動 | 存在執行中的並行伸縮活動時,可以執行其他並行伸縮活動。包括通過以下方式觸發的伸縮活動:
|
非並行伸縮活動 | 存在執行中的非並行伸縮活動時,不能執行其他伸縮活動。並行伸縮活動以外的伸縮活動均屬於非並行伸縮活動。包括但不限於通過以下方式觸發的伸縮活動:
|
使用限制
已設定期望執行個體數的伸縮組不支援同時執行並行伸縮活動和非並行伸縮活動。
期望執行個體數必須小於或等於伸縮組內最大執行個體數,且必須大於或等於伸縮組內最小執行個體數。
期望執行個體數變化規則
除手動設定期望執行個體數外,執行伸縮活動也可能導致期望執行個體數變化,具體變化情況和伸縮活動觸發方式有關。
伸縮活動類型 | 伸縮活動觸發方式 | 伸縮活動效果 | 期望執行個體數變化 | 樣本 |
並行伸縮活動 | 手動執行伸縮規則 | 只修改期望執行個體數,等待期望執行個體數檢查任務觸發擴縮容。 | 穩態執行個體數±擴縮容數量 | 情境:
結果: 期望執行個體數變為6台,但不會立即建立ECS執行個體,等待期望執行個體數檢查任務觸發擴縮容。 |
通過定時任務執行伸縮規則 | 只修改期望執行個體數,等待期望執行個體數檢查任務觸發擴縮容。 | 穩態執行個體數±擴縮容數量 | 情境:
結果: 期望執行個體數變為6台,但不會立即建立ECS執行個體,等待期望執行個體數檢查任務觸發擴縮容。 | |
手動添加執行個體 | 直接觸發擴容,然後修改期望執行個體數。 | 當前期望執行個體數+擴容數量 | 情境:
結果: 4台ECS執行個體加入伸縮組,穩態執行個體數變為6台,然後期望執行個體數變為7台。 | |
手動移出執行個體 | 直接觸發縮容,然後修改期望執行個體數。 | 當前期望執行個體數-縮容數量 | 情境:
結果: 1台ECS執行個體移出伸縮組,穩態執行個體數變為1台,然後期望執行個體數變為2台。 | |
最大最小值檢查任務 | - | 需要手動設定期望執行個體數 | 情境:
結果: 修改失敗,您需要同時設定期望執行個體數。 | |
執行個體健全狀態檢查任務 | 直接觸發縮容。 | 期望執行個體數不變 | 情境:
結果: 期望執行個體數不變,不健康的ECS執行個體被移出伸縮組,穩態執行個體數變為1台。伸縮組檢測到期望執行個體數和穩態執行個體數間存在差距,會自動執行期望執行個體數檢查任務,觸發伸縮活動建立2台ECS執行個體。 | |
期望執行個體數檢查任務 | 直接觸發擴縮容。 | 期望執行個體數不變 | 情境:
結果: 期望執行個體數不變。伸縮組檢測到期望執行個體數和穩態執行個體數間存在差距,會自動執行期望執行個體數檢查任務,觸發伸縮活動建立1台ECS執行個體。 | |
非並行伸縮活動 | 通過警示任務執行伸縮規則 | 直接觸發擴縮容,然後修改期望執行個體數。 | 穩態執行個體數±擴縮容數量 | 情境:
結果: 觸發伸縮活動建立4台ECS執行個體,然後期望執行個體數變為6台。 |
與未設定期望執行個體數伸縮組的區別
設定期望執行個體數伸縮組與未設定期望執行個體數伸縮組的主要區別如下所示:
對比項 | 設定期望執行個體數伸縮組 | 未設定期望執行個體數伸縮組 |
維護成本 | 自動維護:伸縮組會自動擴縮容以滿足期望執行個體數,如果伸縮活動失敗,系統也會自動重試。 | 手動維護:您需要自行手動維護伸縮組內執行個體數,如果伸縮活動失敗,您也需要手動進行重試。 |
伸縮活動執行結果 | 根據伸縮活動觸發方式不同,伸縮組中伸縮活動的執行結果也不同:
| 手動執行伸縮規則、通過定時任務執行伸縮規則、手動添加執行個體、手動移出或刪除執行個體、通過警示任務執行伸縮規則時,伸縮組直接觸發擴縮容動作來添加或者移出執行個體。 |
並存執行功能 | 伸縮組支援並存執行伸縮活動功能,更多資訊,請參見並行伸縮活動樣本。 | 伸縮組同一時間只支援一個伸縮活動,伸縮活動執行可能比較耗時,在此期間,您無法調整伸縮組的執行個體數。 |
並行伸縮活動樣本
指定期望執行個體數後,伸縮組支援同時執行並行伸縮活動,樣本如下:
樣本1:連續手動執行伸縮規則
情境:
期望執行個體數:3台。
穩態執行個體數:3台。
伸縮規則add3要求建立3台ECS執行個體。
伸縮規則add1要求建立1台ECS執行個體。
手動執行add3,然後立即手動執行add1。
結果:執行add3後,期望執行個體數從3台變為6台。可以立即執行add1,期望執行個體數從6台變為4台。並行伸縮活動的效果是建立1台ECS執行個體,伸縮活動結束後,伸縮組的穩態執行個體數為4台。
樣本2:手動執行伸縮規則的同時手動添加執行個體
情境:
期望執行個體數:3台。
穩態執行個體數:3台。
伸縮規則add1要求建立1台ECS執行個體。
手動執行add1,然後立即手動添加1台已有ECS執行個體。
結果:執行add1後,期望執行個體數從3台變為4台。可以立即添加已有ECS執行個體,期望執行個體數從4台變為5台。並行伸縮活動的效果是建立1台ECS執行個體並添加1台已有ECS執行個體,伸縮活動結束後,伸縮組的穩態執行個體數為5台。
非並行伸縮活動樣本
指定期望執行個體數後,伸縮組不支援同時執行並行伸縮活動和非並行伸縮活動,樣本如下:
情境:
期望執行個體數:1台。
穩態執行個體數:1台。
警示任務伸縮規則要求建立3台ECS執行個體。
伸縮規則add1要求建立1台ECS執行個體。
警示任務觸發後立即手動執行add1。
結果:警示任務觸發伸縮活動,期望執行個體數從1台變為4台。由於警示任務觸發的伸縮活動屬於非並行伸縮活動,不支援立即執行並行伸縮活動,伸縮規則add1被拒絕執行,期望執行個體數仍為4台。非並行伸縮活動的效果是建立3台ECS執行個體,伸縮活動結束後,伸縮組的穩態執行個體數為4台。