本教程介紹了如何利用Auto Scaling組合購買隨用隨付ECS執行個體和搶佔式執行個體,應對周期性業務波動的同時降低使用成本。
業務情境
某線上教育平台的上課高峰為每天下午5點至晚上10點,其他時間段業務流量較低。為保證順利承載上課高峰帶來的流量,營運人員需要長期保有上課高峰期的計算資源,但計算資源在其餘時間段處於閑置狀態,導致資源成本浪費。如果上課高峰時間段流量超出預估,仍需要臨時手動建立ECS執行個體。
假設您的應用具有以下特徵,也可以採用類似解決方案:
採用叢集方式部署,並且叢集擁有1台以上的伺服器。
業務具有高容錯性,可以接受隨時被打斷的風險。例如,採用搶佔式執行個體的測試業務。
業務具有明顯的周期性波峰波穀變化,例如,每天下午5點至晚上10點是業務高峰(波峰)時間段,其他時間段資源閑置。
解決方案
Auto Scaling支援組合使用按量執行個體和搶佔式執行個體,以更低成本來滿足業務周期性波動時間段流量的要求。
您可以採用以下方案:
對於非波峰波穀時間段的業務,建議您購買訂用帳戶ECS執行個體。
對于波峰波穀時間段的業務,您可以採用定時任務功能添加和釋放對應的ECS執行個體。具體說明如下:
業務高峰(波峰)期間,伸縮組採用定時任務方式,將臨時自動添加需要的ECS執行個體,該執行個體可以指定多種執行個體規格,即組合使用按量執行個體和搶佔式執行個體,進一步降低成本。伸縮組會按照vCPU的單價從低到高進行排序,優先選擇vCPU單價更低的執行個體規格。
業務低穀(波穀)期間,伸縮組採用定時任務方式,將自動釋放不需要的ECS執行個體。
業務收益
利用Auto Scaling降低成本,您可以獲得以下收益:
零備機成本
Auto Scaling可自動建立和釋放ECS執行個體,實現按需取用,無需備機。您只需針對非波峰波穀時間段的流量保有計算資源。
零營運成本
您只需提前配置擴容策略。負載增加時,Auto Scaling自動建立ECS執行個體,並將ECS執行個體添加到RDS執行個體的白名單和SLB執行個體的後端伺服器組。整個過程自動觸發和完成,無需人工幹預。
超高性價比
Auto Scaling支援組合使用按量執行個體和搶佔式執行個體,搶佔式執行個體最低能以一折的價格購得ECS執行個體。如果搶佔式執行個體庫存不足,也會以按量執行個體的方式交付,保證交付結果。成本最佳化策略還支援搶佔式執行個體補償,在已有搶佔式執行個體被釋放前5分鐘,會自動嘗試建立當前較低價格的新搶佔式執行個體,性價比超高。
操作步驟
請根據您的業務架構評估業務模組,並執行以下操作為有需要的業務模組降低成本:
本操作前,請您提前為應用的ECS執行個體建立自訂鏡像,具體操作,請參見使用執行個體建立自訂鏡像。
步驟一:使用自訂鏡像建立訂用帳戶ECS執行個體
建立指定數量的訂用帳戶ECS執行個體,用於添加到伸縮組,滿足業務模組的非波峰波穀時間段要求。
步驟二:建立並啟用伸縮組
為需要降低成本的業務模組建立伸縮組,並為伸縮配置選擇應用執行個體的自訂鏡像,確保自動建立出的ECS執行個體符合應用的要求。
- 登入Auto Scaling控制台。
- 在左側導覽列中,單擊伸縮組管理。
- 在頂部功能表列處,選擇地區。
單擊建立伸縮組,完成配置項參數並建立一個伸縮組。
伸縮組名稱設定為您的自訂名稱(例如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執行個體。