創建或修改伸縮組時,您可以設置適當的實例終止策略來控制伸縮組縮容時優先終止哪些ECS實例。彈性伸縮結合伸縮組的擴縮容策略和實例移出策略自動移出滿足策略規則的ECS實例,您無需手動干預即可實現業務的自動化管理。本文介紹實例終止策略的生效方式和結果示例,有助于您選擇與業務場景匹配的實例終止策略。
實例終止策略
ECS實例終止策略是擴縮容策略和實例移出策略的組合,伸縮組移出ECS實例時會同時受限于如下兩個策略:
擴縮容策略
根據可用區或者ECS實例的成本,加入或者移出合適的ECS實例。縮容時,彈性伸縮按策略規則篩選并移出伸縮組內合適的ECS實例。具體策略如下:
優先級策略:先指定的交換機優先級最高。彈性伸縮優先在優先級最高的交換機所在可用區嘗試擴縮容,如果無法擴縮容,則自動在下一優先級的交換機所在可用區進行擴縮容。
均衡分布策略:在伸縮組關聯多個交換機且交換機分布在兩個以上可用區時生效。彈性伸縮擴縮容后,伸縮組內各交換機所在的可用區之間ECS實例均衡分布。
成本優化策略:在伸縮配置中指定了多個可選實例規格時生效。擴容時彈性伸縮按vCPU單價從低到高嘗試創建ECS實例,縮容時按vCPU單價從高到低嘗試移出ECS實例。
說明當伸縮配置設置了搶占式計費方式的多實例規格時,優先創建對應搶占式計費實例,當搶占式計費實例規格由于庫存等原因都無法創建時,系統會自動嘗試以按量付費的方式創建ECS實例。
自定義組合策略:使用組合方式自定義容量分布策略。您可使用該策略調整伸縮組內按量實例和搶占式實例的比例,均衡可用區間的容量以及選擇滿足需求的實例規格。
實例移出策略
根據時間的先后順序,篩選伸縮組內符合條件的ECS實例。實例移出策略支持設置兩段策略:
設置一段策略時,彈性伸縮只按照第一段策略篩選。
設置兩段策略時,彈性伸縮先按第一段策略篩選,再從篩選結果中進行第二段篩選,但不支持為這兩段設置相同的選項。
具體策略如下:
最早伸縮配置對應的實例:篩選添加時間最早的伸縮配置和啟動模板對應的實例。手動添加的實例沒有關聯伸縮配置或啟動模板,因此不會首先選出手動添加的實例。如果已移出全部關聯的實例,仍需要繼續移出實例,則隨機移出手動添加的實例。
說明最早伸縮配置對應的實例中提到的伸縮配置泛指組內實例配置信息來源,包括伸縮配置和啟動模板。
啟動模板的版本號低不代表添加時間早,例如在創建伸縮組時選擇實例啟動模板lt-foress的版本2,然后修改伸縮組,選擇實例啟動模板lt-foress的版本1,則對伸縮組來說,啟動模板lt-foress的版本2是最早的。
最早創建的實例:篩選創建時間最早的實例。
最新創建的實例:篩選創建時間最新的實例。
自定義策略:用戶自定義實例移出策略,根據函數計算服務名、版本和函數名,篩選出符合自定義策略的實例。
ECS實例移出示例
假設,某伸縮組內存在的ECS實例如下表所示。以不同實例終止策略(擴縮容策略+實例移出策略)場景分類,為您展示彈性伸縮在不同策略場景下如何移出一臺ECS實例。
下表中各ECS實例數據僅作為示例,實際數據請以彈性伸縮控制臺為準。
實例ID | 可用區 | 加入時間 | 伸縮配置 (asc-1的添加時間最早) | vCPU單價(元) |
i-1 | 杭州可用區H | 2021年5月17日 11:05 | asc-1 | 1 |
i-2 | 杭州可用區I | 2021年5月18日 11:05 | asc-1 | 2 |
i-3 | 杭州可用區I | 2021年5月19日 11:05 | asc-1 | 3 |
i-4 | 杭州可用區H | 2021年5月20日 11:05 | asc-2 | 3 |
i-5 | 杭州可用區I | 2021年5月21日 11:05 | asc-2 | 3 |
場景一:擴縮容策略(優先級策略)+實例移出策略
彈性伸縮會嚴格按照實例移出策略篩選移出的ECS實例,優先級策略不改變該結果。
本示例中,實例移出策略的第一階段移出策略選擇自定義策略時,以自定義策略的篩選結果為杭州可用區H和杭州可用區I的ECS實例為例,且實例ID分別為i-1和i-3。下表說明該實例終止策略的最終效果。
第一段移出策略 | 第二段移出策略 | 實例移出效果 | 移出實例的實例ID |
最早伸縮配置對應的實例 | 最早創建的實例 | 先篩選最早伸縮配置對應的ECS實例,再從中選擇最早創建的ECS實例。 | i-1 |
最新創建的實例 | 先篩選最早伸縮配置對應的ECS實例,再從中選擇最新創建的ECS實例。 | i-3 | |
無策略 | 篩選最早伸縮配置對應的實例,再從中隨機選擇一臺ECS實例。 |
| |
最早創建的實例 | - | 移出最早創建的ECS實例。 | i-1 |
最新創建的實例 | - | 移出最新創建的ECS實例。 | i-5 |
自定義策略 | 最早伸縮配置對應的實例 | 先篩選符合自定義策略規則的ECS實例,再從中選擇最早伸縮配置對應的ECS實例。 | i-1 |
最早創建的實例 | 先篩選符合自定義策略規則的ECS實例,再從中選擇最早創建的ECS實例。 | i-1 | |
最新創建的實例 | 先篩選符合自定義策略規則的ECS實例,再從中選擇最新創建的ECS實例。 | i-3 | |
無策略 | 篩選符合自定義策略規則的ECS實例,再從中隨機選擇一臺ECS實例。 |
|
場景二:擴縮容策略(均衡分布策略)+實例移出策略
彈性伸縮會按照均衡分布策略篩選ECS實例的可用區,再按照實例移出策略篩選并移出ECS實例,使移出ECS實例后伸縮組各可用區的ECS實例數量大致相當。本示例中:
由于位于杭州可用區I的ECS實例比位于杭州可用區H的ECS實例多一臺,所以,均衡發布策略的篩選結果為杭州可用區I的ECS實例,實例ID分別為i-2、i-3和i-5。
如果實例移出策略的第一階段移出策略選擇自定義策略時,以自定義策略的篩選結果為杭州可用區H和杭州可用區I的ECS實例為例,且實例ID分別為i-1和i-3。
下表結合實例移出策略說明該實例終止策略的最終效果。
第一段移出策略 | 第二段移出策略 | 說明 | 移出實例的實例ID |
最早伸縮配置對應的實例 | 最早創建的實例 | 先篩選最早伸縮配置對應的實例,再從中選擇最早創建的實例。 | i-2 |
最新創建的實例 | 先篩選最早伸縮配置對應的實例,再從中選擇最新創建的實例。 | i-3 | |
無策略 | 篩選最早伸縮配置對應的實例,再從中隨機選擇一臺ECS實例。 |
| |
最早創建的實例 | - | 移出最早創建的ECS實例。 | i-2 |
最新創建的實例 | - | 移出最新創建的ECS實例。 | i-5 |
自定義策略 | 最早伸縮配置對應的實例 | 先篩選符合自定義策略規則的ECS實例,再從中選擇最早伸縮配置對應的ECS實例。 | i-3 |
最早創建的實例 | 先篩選符合自定義策略規則的ECS實例,再從中選擇最早創建的ECS實例。 | i-3 | |
最新創建的實例 | 先篩選符合自定義策略規則的ECS實例,再從中選擇最新創建的ECS實例。 | i-3 | |
無策略 | 篩選符合自定義策略規則的ECS實例,再從中隨機選擇一臺ECS實例。 | i-3 |
場景三:擴縮容策略(成本優化策略)+實例移出策略
彈性伸縮會按照成本優化策略篩選并移出vCPU單價最高的ECS實例。如果伸縮組存在多個vCPU單價最高的實例時,彈性伸縮再按照實例移出策略篩選并移出ECS實例。本示例中:
由于vCPU單價最高為3元,所以,成本優化策略的篩選結果是實例ID為i-3、i-4和i-5的ECS實例。
如果實例移出策略的第一階段移出策略選擇自定義策略時,以自定義策略的篩選結果為杭州可用區H和杭州可用區I的ECS實例為例,且實例ID分別為i-1和i-3。
下表結合實例移出策略說明該組合策略的最終效果。
第一段移出策略 | 第二段移出策略 | 說明 | 移出實例的實例ID |
最早伸縮配置對應的實例 | 最早創建的實例 | 先篩選最早伸縮配置對應的實例,再從中選擇最早創建的實例 | i-3 |
最新創建的實例 | 先篩選最早伸縮配置對應的實例,再從中選擇最新創建的實例 | i-3 | |
無策略 | 篩選最早伸縮配置對應的實例,再從中隨機選擇一臺ECS實例 | i-3 | |
最早創建的實例 | - | 移出最早創建的ECS實例 | i-3 |
最新創建的實例 | - | 移出最新創建的ECS實例 | i-5 |
自定義策略 | 最早伸縮配置對應的實例 | 先篩選符合自定義策略規則的ECS實例,再從中選擇最早伸縮配置對應的ECS實例。 | i-3 |
最早創建的實例 | 先篩選符合自定義策略規則的ECS實例,再從中選擇最早創建的ECS實例。 | i-3 | |
最新創建的實例 | 先篩選符合自定義策略規則的ECS實例,再從中選擇最新創建的ECS實例。 | i-3 | |
無策略 | 篩選符合自定義策略規則的ECS實例。 | i-3 |
相關文檔
基于多實例規格和多可用區的成本優化策略,可以提高彈性伸縮的成功率,同時降低成本。具體操作,請參見設置擴縮容策略和多實例規格降低成本。
彈性伸縮觸發縮容活動時,系統可以根據自身設置的自定義實例移出策略選擇縮容某些特定實例。如需了解如何設置伸縮組的自定義策略,請參見通過函數自定義ECS實例縮容策略。