本教程介紹了如何利用彈性伸縮組合購買按量付費ECS實例和搶占式實例,應對周期性業務波動的同時降低使用成本。
業務場景
某在線教育平臺的上課高峰為每天下午5點至晚上10點,其他時間段業務流量較低。為保證順利承載上課高峰帶來的流量,運維人員需要長期保有上課高峰期的計算資源,但計算資源在其余時間段處于閑置狀態,導致資源成本浪費。如果上課高峰時間段流量超出預估,仍需要臨時手動創建ECS實例。
假設您的應用具有以下特征,也可以采用類似解決方案:
采用集群方式部署,并且集群擁有1臺以上的服務器。
業務具有高容錯性,可以接受隨時被打斷的風險。例如,采用搶占式實例的測試業務。
業務具有明顯的周期性波峰波谷變化,例如,每天下午5點至晚上10點是業務高峰(波峰)時間段,其他時間段資源閑置。
解決方案
彈性伸縮支持組合使用按量實例和搶占式實例,以更低成本來滿足業務周期性波動時間段流量的要求。
您可以采用以下方案:
對于非波峰波谷時間段的業務,建議您購買包年包月ECS實例。
對于波峰波谷時間段的業務,您可以采用定時任務功能添加和釋放對應的ECS實例。具體說明如下:
業務高峰(波峰)期間,伸縮組采用定時任務方式,將臨時自動添加需要的ECS實例,該實例可以指定多種實例規格,即組合使用按量實例和搶占式實例,進一步降低成本。伸縮組會按照vCPU的單位價格從低到高進行排序,優先選擇vCPU單位價格更低的實例規格。
業務低谷(波谷)期間,伸縮組采用定時任務方式,將自動釋放不需要的ECS實例。
業務收益
利用彈性伸縮降低成本,您可以獲得以下收益:
零備機成本
彈性伸縮可自動創建和釋放ECS實例,實現按需取用,無需備機。您只需針對非波峰波谷時間段的流量保有計算資源。
零運維成本
您只需提前配置擴容策略。負載增加時,彈性伸縮自動創建ECS實例,并將ECS實例添加到RDS實例的白名單和SLB實例的后端服務器組。整個過程自動觸發和完成,無需人工干預。
超高性價比
彈性伸縮支持組合使用按量實例和搶占式實例,搶占式實例最低能以一折的價格購得ECS實例。如果搶占式實例庫存不足,也會以按量實例的方式交付,保證交付結果。成本優化策略還支持搶占式實例補償,在已有搶占式實例被釋放前5分鐘,會自動嘗試創建當前較低價格的新搶占式實例,性價比超高。
以使用ecs.g5.xlarge實例規格為例計算三種方案的成本差距。
表中價格僅為示例,實際計算時請以售賣頁中的價格為準。另外,搶占式實例的價格隨庫存、時間等因素波動,更多說明請參見什么是搶占式實例。
對比項目 | 傳統方案 | 成本優化方案(按量實例) | 成本優化方案(搶占式實例) |
實例數量 | 包年包月ECS實例:10臺 |
|
|
使用時間 | 包年包月ECS實例:1個月 |
|
|
成本計算 | 510元/月*10臺 |
|
|
每月總成本 | 5100元 | 3388.5元 | 1579.99元 |
節省成本 | 0% | 33.6% | 69% |
操作步驟
請根據您的業務架構評估業務模塊,并執行以下操作為有需要的業務模塊降低成本:
本操作前,請您提前為應用的ECS實例創建自定義鏡像,具體操作,請參見使用實例創建自定義鏡像。
步驟一:使用自定義鏡像創建包年包月ECS實例
創建指定數量的包年包月ECS實例,用于添加到伸縮組,滿足業務模塊的非波峰波谷時間段要求。
步驟二:創建并啟用伸縮組
為需要降低成本的業務模塊創建伸縮組,并為伸縮配置選擇應用實例的自定義鏡像,確保自動創建出的ECS實例符合應用的要求。
- 登錄彈性伸縮控制臺。
- 在左側導航欄中,單擊伸縮組管理。
- 在頂部菜單欄處,選擇地域。
單擊創建伸縮組,完成配置項參數并創建一個伸縮組。
伸縮組名稱設置為您的自定義名稱(例如testname)。
組內實例配置信息來源選擇為從零開始創建。
組內最小實例數設置為0。
組內最大實例數設置為10。
默認冷卻時間(秒)默認為300。
網絡類型選擇為專有網絡。
擴縮容策略選擇為成本優化策略。
組內最小按量實例數(臺)設置為0。
按量實例所占比例(%)設置為30。
最低價的多個實例規格(個)設置為3。
開啟搶占式實例補償設置為開啟狀態。
使用按量實例補充搶占式容量默認為開啟狀態。
實例回收模式選擇為釋放模式。
選擇已創建的專有網絡和相應的交換機。
關聯當前業務模塊所使用的傳統型負載均衡CLB(原SLB)、負載均衡ALB、NLB服務器組以及RDS實例。
請根據需要配置其他信息,具體操作,請參見配置伸縮組。
找到已創建好的伸縮組,在對應操作列下,單擊查看詳情。
- 在頁面上方,單擊實例配置來源頁簽。
單擊創建伸縮配置,完成配置項參數并創建一個伸縮配置。
付費模式設置為搶占式實例。
實例配置選擇3個或以上的實例規格。
選擇鏡像設置為您的自定義鏡像。
請根據需要配置其他信息,具體操作,請參見創建伸縮配置(ECS實例)。
啟用伸縮配置和伸縮組。
步驟三:添加包年包月ECS實例并設置自動伸縮策略
將包年包月ECS實例添加至伸縮組,并創建定時任務,實現根據業務峰谷自動平滑伸縮,結合搶占式實例最大程度地降低成本。
前往實例列表頁簽,將創建好的包年包月ECS實例添加至伸縮組。
將包年包月ECS實例轉為保護狀態,保證業務在非波峰波谷時間段正常運行。
前往伸縮組管理界面,根據業務需求,修改伸縮組的最小實例數和最大實例數。
關于如何修改伸縮組內最大最小實例數的具體操作,請參見修改伸縮組。
在伸縮組詳情頁,選擇 ,創建2條簡單規則。
需要配置的主要參數項如下所示:
伸縮規則類型選擇為簡單規則。
執行的操作設置的規則如下:
簡單規則1:當伸縮組需要彈性擴容時,增加5臺。
簡單規則2:當伸縮組需要彈性縮容時,減少5臺。
請根據需要配置其他信息,具體操作,請參見配置伸縮規則。
在伸縮組詳情頁,選擇,創建2條定時任務。
執行時間設置的規則如下:
定時任務1:當業務高峰期(例如下午5點)即將到來時需要進行擴容時,設置為2021年11月20日16:59。
定時任務2:當業務低谷期(例如晚上10點)即將到來時需要進行縮容時,設置為2021年11月20日21:59。
伸縮組設置為已添加包年包月ECS實例的伸縮組。
伸縮方式設置為選擇已有伸縮規則。
伸縮規則(簡單規則)設置的規則如下所示:
定時任務1:當業務高峰期(例如下午5點)即將到來時需要進行彈性擴容時,選擇簡單規則1。
定時任務2:當業務低谷期(例如晚上10點)即將到來時需要進行彈性縮容時,選擇簡單規則2。
請根據需要配置其他信息,具體操作,請參見配置定時任務。
執行結果
您可以在伸縮活動頁面,查看伸縮活動詳情,看伸縮組內的實例是否正常擴容和縮容,具體操作,請參見查看伸縮活動詳情。
如果伸縮活動存在異常,您可以根據提示進行排查,更多信息,請參見排查伸縮活動異常。
包年包月ECS實例已被轉為保護狀態,用于在非波峰波谷時間段承載業務。處于保護中狀態的ECS實例不會被移除伸縮組,而且負載均衡權重不受影響。
在業務高峰(波峰)時間段,伸縮組采用定時任務方式,將自動創建相應數量的ECS實例,過程更加平滑。由于采用了成本優化策略且開啟了搶占式實例補償,購買ECS實例時的價格更低,性價比較高。
在業務低谷(波谷)時間段,伸縮組采用定時任務方式,將自動釋放不需要的ECS實例。