Auto Scaling產品支援關聯傳統型負載平衡CLB的伺服器組,通過配置觸發任務,自動調整伺服器組內的ECS執行個體個數,從而有效增強了CLB的高可用服務能力並降低了資源使用成本。
情境樣本
某新聞網站播出了一則新聞,訪問量突增,伺服器無法承載巨大訪問量,導致新聞頁面重新整理不出來。新聞的時效性降低後,訪問量回落,可以正常訪問新聞頁面。由於該新聞網站的訪問量突增和回落的具體時間難以預測,無法及時手動調整執行個體,且執行個體的調整數量也不確定,為維護新聞網站的服務增加了困難。
面對以上的情境,您可以利用Auto Scaling的警示任務,由阿里雲CloudMonitor根據CPU使用率等衡量指標自動調整其彈性資源服務,同時自動關聯CLB伺服器組。伸縮組關聯CLB執行個體的伺服器組後,無論是伸縮組自動添加或移除ECS執行個體,還是您向伸縮組手動添加或移除ECS執行個體,都會自動同步到CLB執行個體的伺服器組。CLB執行個體會根據流量分發、健全狀態檢查等策略靈活使用ECS執行個體資源,在資源彈性的基礎上大大提高資源可用性。
本文以如下方案作為樣本進行介紹,CLB通過配置的轉寄規則將用戶端的請求分發給後端伺服器ECS01。通過建立Auto Scaling服務並配置警示任務,當ECS01的CPU使用率上升到設定的閾值時,自動建立ECS執行個體並添加到後端伺服器組;當ECS01的CPU使用率下降到設定的閾值時,自動將ECS執行個體從後端伺服器組移除並刪除。
步驟一:建立伸縮組
- 登入Auto Scaling控制台。
- 在左側導覽列中,單擊伸縮組管理。
- 在頂部功能表列處,選擇地區。
進入伸縮組管理頁面。單擊建立伸縮組,您在建立伸縮組時,部分配置項可參考如下配置。
配置項 | 說明 |
組內執行個體配置資訊來源 | 選擇從零開始建立 |
組內最小執行個體數 | 當伸縮組的當前執行個體數小於伸縮最小執行個體數時,Auto Scaling服務會自動添加執行個體,使得伸縮組的當前執行個體數等於伸縮最小執行個體數。本文配置樣本為1(至少需要1個已有ECS01執行個體) |
組內最大執行個體數 | 當伸縮組的當前執行個體數大於伸縮最大執行個體數時,Auto Scaling服務會自動移出執行個體,使得伸縮組的當前執行個體數等於伸縮最大執行個體數。本文配置樣本為2(本文樣本中除ECS01執行個體外最多添加一個執行個體) |
預設冷卻時間 | 一個伸縮活動(添加或移出執行個體)執行完成後的一段冷卻時間內,該伸縮組不執行其他的伸縮活動。目前僅針對警示任務(CloudMonitor)觸發的伸縮活動有效。本文配置樣本為0,實際使用時需要根據實際情況調整 |
專用網路、選擇交換器 | 選擇ECS01執行個體所在的專用網路及交換器 |
關聯傳統型負載平衡CLB(原SLB) | 選擇對應伺服器組,並配置連接埠及權重 |
根據需要配置其餘選項,單擊確認。完成後您可以在伸縮組管理頁面查看已建立的伸縮組。
步驟二:建立伸縮配置
在伸縮組管理頁面的操作列單擊查看詳情,在執行個體配置來源頁簽選擇伸縮配置。
在伸縮配置頁簽,單擊建立伸縮配置並完成配置,部分配置項可參考下表,其他配置項可根據實際需求進行配置。
配置項 | 說明 |
付費模式 | 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執行個體到伸縮組。
登入傳統型負載平衡CLB控制台。
在左側導覽列,選擇 。
單擊目標執行個體ID,單擊虛擬伺服器組頁簽,單擊目標分組名稱,可以看到後端伺服器有兩台執行個體,其中以ESS-XX
命名的執行個體為通過Auto Scaling服務自動添加的ECS執行個體。
壓測時間結束後,可再次登入Auto Scaling與負載平衡控制台,可查看到此前已經添加的執行個體已自動移除。