Auto Scaling產品支援關連網絡型負載平衡NLB的伺服器組,通過配置觸發任務,自動調整伺服器組內的ECS執行個體個數,從而有效增強了NLB的高可用服務能力並降低了資源使用成本。
情境樣本
某新聞網站播出了一則新聞,訪問量突增,伺服器無法承載巨大訪問量,導致新聞頁面重新整理不出來。新聞的時效性降低後,訪問量回落,可以正常訪問新聞頁面。由於該新聞網站的訪問量突增和回落的具體時間難以預測,無法及時手動調整執行個體,且執行個體的調整數量也不確定,為維護新聞網站的服務增加了困難。
面對以上的情境,您可以利用Auto Scaling的警示任務,由阿里雲CloudMonitor根據CPU使用率等衡量指標自動調整其彈性資源服務,同時自動關聯NLB伺服器組。伸縮組關聯NLB執行個體的伺服器組後,無論是伸縮組自動添加或移除ECS執行個體,還是您向伸縮組手動添加或移除ECS執行個體,都會自動同步到NLB執行個體的伺服器組。NLB執行個體會根據流量分發、健全狀態檢查等策略靈活使用ECS執行個體資源,在資源彈性的基礎上大大提高資源可用性。
本文以如下方案作為樣本進行介紹,NLB通過配置的轉寄規則將用戶端的請求分發給後端伺服器ECS01。通過建立Auto Scaling服務並配置警示任務,當ECS01的CPU使用率上升到設定的閾值時,自動建立ECS執行個體並添加到後端伺服器組;當ECS01的CPU使用率下降到設定的閾值時,自動將ECS執行個體從後端伺服器組移除並刪除。
前提條件
您已建立一個或多個處於運行中狀態的NLB執行個體。具體操作,請參見建立和管理NLB執行個體。
NLB執行個體已建立伺服器組RS1並添加了ECS01執行個體,且開啟了健全狀態檢查,伺服器組處於可用狀態。
您已建立了ECS01執行個體的自訂鏡像。具體操作,請參見使用執行個體建立自訂鏡像。
NLB執行個體至少配置了一個監聽。具體操作,請參見添加TCP監聽。
NLB執行個體和伸縮組必須位於同一專用網路。
步驟一:建立伸縮組
- 登入Auto Scaling控制台。
- 在左側導覽列中,單擊伸縮組管理。
- 在頂部功能表列處,選擇地區。
進入伸縮組管理頁面。單擊建立伸縮組,您在建立伸縮組時,部分配置項可參考如下配置。
配置項
說明
組內執行個體配置資訊來源
選擇從零開始建立
組內最小執行個體數
當伸縮組的當前執行個體數小於伸縮最小執行個體數時,Auto Scaling服務會自動添加執行個體,使得伸縮組的當前執行個體數等於伸縮最小執行個體數。本文配置樣本為1(至少需要1個已有ECS01執行個體)
組內最大執行個體數
當伸縮組的當前執行個體數大於伸縮最大執行個體數時,Auto Scaling服務會自動移出執行個體,使得伸縮組的當前執行個體數等於伸縮最大執行個體數。本文配置樣本為2(本文樣本中除ECS01執行個體外最多添加一個執行個體)
預設冷卻時間
一個伸縮活動(添加或移出執行個體)執行完成後的一段冷卻時間內,該伸縮組不執行其他的伸縮活動。目前僅針對警示任務(CloudMonitor)觸發的伸縮活動有效。本文配置樣本為0,實際使用時需要根據實際情況調整
專用網路、選擇交換器
選擇ECS01執行個體所在的專用網路及交換器
關聯負載平衡ALB、NLB伺服器組
選擇對應伺服器組,並配置連接埠及權重
根據需要配置其餘選項,單擊確認。完成後您可以在伸縮組管理頁面查看已建立的伸縮組。
步驟二:建立伸縮配置
在伸縮組管理頁面的操作列單擊查看詳情,在執行個體配置來源頁簽選擇伸縮配置。
在伸縮配置頁簽,單擊建立伸縮配置並完成配置,部分配置項可參考下表,其他配置項可根據實際需求進行配置。
配置項
說明
付費模式
ECS的付費方式,本文選擇隨用隨付
執行個體配置方式
本文選擇指定執行個體規格
選擇執行個體規格
選擇與建立的ECS01執行個體規格相同的規格
選擇鏡像
選擇已經建立的ECS01執行個體的自訂鏡像
安全性群組
選擇已建立的ECS01執行個體所在安全性群組
配置完成後單擊建立,然後單擊確認建立。
在伸縮配置建立成功對話方塊,單擊啟用配置,並在彈窗中啟動伸縮配置與伸縮組。
步驟三:建立伸縮規則
在伸縮組管理頁面的操作列單擊查看詳情,在伸縮規則與警示任務頁簽單擊伸縮規則。
建立自動添加的伸縮規則:在伸縮規則頁簽,單擊建立伸縮規則完成配置,部分配置項可參考下表,其他配置項可根據實際需求進行配置。完成後單擊確認。
配置項
說明
規則名稱
自訂填寫,例如:自動添加1台的規則
伸縮規則類型
本文選擇簡單規則
執行的操作
本文選擇增加1台
建立自動移除的伸縮規則:在伸縮規則頁簽,單擊建立伸縮規則完成配置,部分配置項可參考下表,其他配置項可根據實際需求進行配置。完成後單擊確認。
配置項
說明
規則名稱
自訂填寫,例如:自動移除1台的規則
伸縮規則類型
本文選擇簡單規則
執行的操作
本文選擇減少1台
步驟四:建立警示任務並添加伸縮規則
在左側導覽列選擇
。在警示任務頁面,選擇系統監控頁簽,然後單擊建立警示任務。
建立自動添加的警示任務:在建立警示任務對話方塊中完成配置,部分配置項可參考下表,其他配置項可根據實際需求進行配置。完成後單擊確認。
配置項
說明
名稱
自訂任務名稱,例如:自動添加1台的警示任務
監控資源
選擇步驟一中建立的伸縮組
警示指標描述
本文選擇CPU使用率、Maximum(最大值)>= 閾值 60%
統計周期
本文選擇1分鐘
重複幾次後警示
本文選擇1次
警示觸發規則
選擇步驟三中建立的自動添加的伸縮規則
建立自動減少的警示任務:在建立警示任務對話方塊中完成配置,部分配置項可參考下表,其他配置項可根據實際需求進行配置。完成後單擊確認。
配置項
說明
名稱
自訂任務名稱,例如:自動移除1台的警示任務
監控資源
選擇步驟一中建立的伸縮組
警示指標描述
本文選擇CPU使用率、Maximum(最大值)<= 閾值 30%
統計周期
本文選擇1分鐘
重複幾次後警示
本文選擇1次
警示觸發規則
選擇步驟三中建立的自動移除的伸縮規則
步驟五:已有執行個體添加到伸縮組中進行監控
Auto Scaling需要基於已有商務服務器進行監控,根據警示任務觸發執行個體。因此需要將已有伺服器執行個體添加到伸縮組中進行監控。
在伸縮組管理頁面的操作列單擊查看詳情,在執行個體列表頁簽單擊手動建立。
單擊添加已有執行個體,選擇並添加ECS01執行個體,完成後單擊確認添加。
在手動建立頁簽,可查看到ECS01執行個體已添加成功。
步驟六:驗證自動添加和移除效果
通過stress壓測的方式,增加ECS01執行個體的CPU使用率超過60%,從而觸發Auto Scaling的自動添加警示任務,在這期間登入控制台可查看到ECS執行個體自動增加。壓測時間結束後,ECS01執行個體的CPU使用率低於30%,從而觸發Auto Scaling的自動移除警示任務,自動移除此前自動添加的ECS執行個體。
遠程登入ECS01執行個體後,執行以下命令安裝stress工具。
sudo yum install -y epel-release sudo yum install -y stress
執行以下命令通過stress工具對ECS01執行個體進行壓測,壓測時間為60s。
sudo stress --cpu 1 --io 4 --vm 2 --vm-bytes 128M --timeout 60s &
返回Auto Scaling的警示任務頁面,等待幾分鐘後,警示狀態顯示警示。
進入伸縮組管理頁面,在執行個體數/容量列查看總執行個體數增加1個。證明已添加一台新的ECS執行個體到伸縮組。
- 登入網路型負載平衡NLB控制台。
在左側導覽列,選擇
。單擊建立的目標伺服器組的ID,單擊後端伺服器頁簽,可以看到後端伺服器有兩台執行個體,其中以
ESS-XX
命名的執行個體為通過Auto Scaling服務自動添加的ECS執行個體。壓測時間60s結束後,可再次登入Auto Scaling與負載平衡控制台,可查看到此前已經添加的執行個體已自動移除。
相關文檔
如您想詳細瞭解Auto Scaling服務,可參考什麼是Auto Scaling。
如您需要設定定時任務進行伺服器數量自動調整,可參考通過定時任務設定伸縮組內的執行個體數量。
結合CloudMonitor配置不同的伸縮規則,可實現基於監控指標的伸縮、指標預測等更多進階功能,詳情可參考配置伸縮規則。