全部產品
Search
文件中心

Auto Scaling:基於ALB的單機QPS監控指標實現自動擴縮容ECI執行個體

更新時間:Jul 12, 2024

Auto Scaling支援使用ALB伺服器組的單機QPS監控指標作為系統警示任務的觸發條件,從而實現自動擴縮容ECS或ECI執行個體。本文將具體為您介紹自動擴縮容ECI執行個體的操作。

概念介紹

  • 應用型負載平衡ALB(Application Load Balancer):是阿里雲推出的專門面向HTTP、HTTPS和QUIC等應用程式層負載情境的負載平衡服務,具備超強彈性及大規模應用程式層流量處理能力。更多資訊,請參見什麼是應用型負載平衡ALB

  • 每秒查詢數QPS(Query Per Second):是七層監聽特有的概念,指負載平衡ALB每秒可以完成的HTTP(S)的查詢(請求)的總數量。單機QPS指單個伺服器的效能指標,表示負載平衡ALB每秒完成的客戶請求總數量/後端伺服器組的ECS或ECI總數量。

應用情境

如果您的業務依託於ALB來統一承接並分配客戶的請求流量(以每秒查詢量QPS衡量),這些請求隨後被導向至後端伺服器叢集(如ECS或ECI執行個體)進行處理。當發生請求QPS激增,為了維持服務的流暢與穩定,系統需敏捷擴容後端服務資源來應對。

基於以上情境,您可以通過為伸縮組配置基於單機QPS監控的警示任務,比如設定警示指標QPS的閾值等,自動觸發彈性擴縮容活動,提高應用的高可用效能。該方案具有以下優勢:

  • 當單機QPS指標大於監控閾值時,觸發彈性擴容活動,降低單機QPS負載,以提升系統的回應時間和穩定性。

  • 當單機QPS指標小於監控閾值時,觸發彈性縮容活動,自動減少執行個體數量,從而節省成本。

前提條件

步驟一:配置應用型負載平衡ALB

  1. 建立應用型負載平衡ALB。

    具體操作,請參見建立應用型負載平衡

    主要配置參數說明如下:

    配置

    說明

    樣本

    執行個體名稱

    輸入自訂執行個體名稱。

    alb-qps-instance

    VPC

    選擇執行個體所屬的Virtual Private Cloud。

    vpc-test****-001

    可用性區域

    選擇可用性區域和交換器。

    說明

    應用型負載平衡支援多可用性區域部署,若當前地區支援2個及以上可用性區域,為保障業務高可用,請至少選擇2個或2個以上可用性區域。

    • 可用性區域:杭州 可用性區域G和杭州 可用性區域H

    • 交換器:vsw-test003和vsw-test002

  2. 建立應用型負載平衡ALB伺服器組。

    具體操作,請參見建立和管理伺服器組

    主要配置參數說明如下:

    配置

    說明

    樣本

    伺服器群組類型

    選擇一種伺服器群組類型:選擇伺服器類型將按照ECI執行個體添加後端伺服器。

    伺服器類型

    伺服器組名稱

    輸入自訂伺服器組名稱。

    alb-qps-servergroup

    VPC

    從VPC下拉式清單中選擇一個VPC,只有該VPC下的伺服器可以加入到該伺服器組。

    重要

    該步驟中VPC參數選步驟1中新建立ALB執行個體時使用的VPC。

    vpc-test****-001

  3. 配置監聽。

    1. 在左側導覽列,選擇應用負載平衡ALB > 執行個體

    2. 執行個體頁面,找到已建立的ALB執行個體(即alb-qps-instance),單擊對應操作列下的建立監聽

    3. 配置監聽設定精靈,監聽連接埠選擇80,其他參數保持預設選項即可,單擊下一步

      說明

      本步驟中監聽連接埠選擇以80為例,您可以根據實際業務情境選擇其他連接埠。

    4. 選擇伺服器組設定精靈,選擇伺服器類型下的後端伺服器組為步驟2新建立的伺服器組(即alb-qps-servergroup),然後單擊下一步後端伺服器-zh

    5. 組態稽核設定精靈,確認配置資訊,單擊提交,然後單擊知道了

  4. 完成配置後,單擊執行個體詳情頁簽,擷取ALB執行個體的Elastic IP Address。ALB的IP-zh

步驟二:建立關聯ALB伺服器組的伸縮組

建立ECS類型的伸縮組與建立ECI類型伸縮組操作存在部分差異,請您以實際頁面顯示的參數配置為準,本步驟以建立ECI類型的伸縮組為例。

  1. 建立伸縮組。

    具體操作,請參見建立伸縮組。在建立過程中,主要配置項參數說明如下,其他參數請根據實際需要設定。

    配置項

    說明

    樣本

    伸縮組名稱

    輸入自訂伸縮組名稱。

    alb-qps-scalinggroup

    伸縮群組類型

    指定伸縮組內提供計算能力的執行個體類型。

    ECI

    組內執行個體配置資訊來源

    Auto Scaling使用該配置建立執行個體。

    從零開始建立

    組內最小執行個體數

    當前執行個體數量低於下限時,伸縮組會自動添加執行個體,使得伸縮組內的執行個體數量等於下限。

    1

    組內最大執行個體數

    當前執行個體數量超過上限時,伸縮組會自動移出執行個體,使得伸縮組內的執行個體數量等於上限。

    5

    專用網路

    選擇與ALB相同的Virtual Private Cloud。

    vpc-test****-001

    選擇交換器

    選擇與ALB相同的交換器。

    vsw-test003和vsw-test002

    關聯負載平衡ALB、NLB伺服器組

    選擇步驟一新建立的ALB伺服器組。連接埠輸入80。

    • 伺服器組:sgp-****/alb-qps-servergroup

    • 連接埠:80

  2. 建立並啟動伸縮配置。

    具體操作,請參見建立伸縮配置(ECI執行個體)。在建立過程中,主要配置項參數說明如下,其他參數請根據實際需要設定。

    配置項

    說明

    樣本

    容器組配置

    選擇容器組的規格(例如CPU和記憶體)。

    • CPU:2 vCPU

    • 記憶體:4 GiB

    容器配置

    選擇容器鏡像和鏡像版本。

    • 容器鏡像:registry-vpc.cn-hangzhou.aliyuncs.com/eci_open/nginx

    • 鏡像版本:latest

  3. 啟用伸縮組。

    具體操作,請參見啟用或停用伸縮組

    說明

    啟用伸縮組後,因伸縮組最小執行個體數為1,伸縮組會自動觸發彈性擴容活動,自動建立1台ECI執行個體。

  4. 查看伸縮組內ECI執行個體及其容器的狀態,確認容器已經處於運行中。

  5. 訪問步驟一中擷取的ALB執行個體的Elastic IP Address,確認可以正常訪問nginx服務。訪問ip

步驟三:配置基於ALB單機QPS指標的警示任務

  1. 登入Auto Scaling控制台

  2. 建立伸縮規則。

    本步驟以建立2條簡單規則類型的伸縮規則為例,即伸縮規則(Add1)為增加1台執行個體的擴容規則,伸縮規則(Reduce1)為減少1台執行個體的縮容規則。具體操作,請參見配置伸縮規則

  3. 建立警示任務。

    1. 伸縮組管理頁面,找到已建立的伸縮組(alb-qps-scalinggroup),單擊對應操作列的查看詳情

    2. 選擇伸縮規則與警示任務 > 警示任務 > 警示任務(系統),然後單擊建立警示任務

      本步驟以建立2條警示任務為例,即警示認任務(Alarm1)為關聯擴容規則(Add1)的警示任務,警示認任務(Alarm2)為關聯縮容規則(Reduce1)的警示任務。具體操作,請參見配置警示任務

      • 警示任務(Alarm1):警示指標選擇(ALB)伺服器組單機QPS,監控指標選擇Average(平均值)>= 100次/s

        說明

        單機QPS=總QPS/後端伺服器上的執行個體數量。

        alarm1

      • 警示任務(Alarm2):警示指標選擇(ALB)伺服器組單機QPS,監控指標選擇Average(平均值)< 50次/salarm2-zh1

驗證QPS監控效果

您可以選用Apache JMeter、ApacheBench 或wrk這類壓測工具,針對步驟一中擷取的ALB執行個體綁定的Elastic IP Address實施壓力測試。配置測試情境時,類比500 QPS的負載。測試進程中,您可通過Auto Scaling服務的控制台監控介面,觀察如下動態:

隨著QPS的增加,超出警示閾值,觸發系統警示任務,自動觸發擴容機制,每次添加1台ECI執行個體,單一實例負載減輕,QPS隨之減小。