全部產品
Search
文件中心

Auto Scaling:什麼是Auto Scaling

更新時間:Oct 22, 2024

Auto Scaling(Elastic Scaling Service,簡稱ESS),也稱為Auto Scaling,其能根據您設定的策略自動調整計算資源數量(即業務所需的執行個體數量),協助您應對業務流量波動的同時,提高資源使用率,有效降低成本。

本視頻以ECS執行個體為例介紹Auto Scaling產品。

為什麼選擇Auto Scaling

在業務需求增長時,Auto Scaling自動增加指定類型的執行個體(即ECS執行個體或ECI執行個體),來保證計算能力;在業務需求下降時,Auto Scaling自動減少指定類型的執行個體(即ECS執行個體或ECI執行個體),來節約成本。當您的業務需求量有波動時,Auto Scaling能夠協助您自動調整指定類型的執行個體數量,以滿足業務需求。

Auto Scaling可以為您提供以下優勢:

優勢

說明

自動化

  • 彈性擴張時,自動建立指定類型的執行個體,為該執行個體關聯負載平衡服務,同時也支援為該執行個體自動關聯RDS執行個體。

  • 彈性收縮時,自動移出指定類型的執行個體,為該執行個體取消關聯負載平衡服務。同時也支援為該執行個體自動取消關聯RDS執行個體。

降成本

無需投入大量人力來調整計算資源,無需提前預備計算資源,也無需擔心不能及時釋放冗餘資源。Auto Scaling在適當的時間進行伸縮任務,降低資源擁有成本。

Auto Scaling會自動監測對應的伸縮指標(或期望執行個體數)的變化(檢測頻率預設是每分鐘一次),如果檢查到對應的伸縮指標與您指定的閾值不匹配,Auto Scaling會立即觸發擴縮容活動。Auto Scaling的回應時間取決於以下因素:

  • 伸縮組中待擴縮容的執行個體啟動時間,即執行個體從建立開始到建立完成且執行個體系統可以使用的時間。

  • 伸縮組中待擴縮容的執行個體數量。如果執行個體數量不超過千台,一般會在1分鐘內完成擴縮容。

高可用

無需擔心ECS執行個體或ECI執行個體的運行狀態。Auto Scaling提供健全狀態檢查功能,在ECS執行個體或ECI執行個體不健康,即執行個體未處於運行中狀態時,自動增加相應類型的執行個體替換不健康的執行個體。

靈活智能

  • 支援指定提供計算能力的執行個體類型,即ECS執行個體或ECI執行個體。

  • 支援多種伸縮模式相容,可靈活調度應對各種複雜情境。伸縮模式包括固定數量、健康、定時、動態、自訂等,其中動態模式支援通過API對接外部的監控系統。

  • 支援靈活的執行個體模板,提高建立執行個體的成功率。

  • 支援豐富的擴縮容策略,可靈活適用於各種業務情境。

易審計

Auto Scaling支援記錄每個伸縮活動,提供伸縮組監控功能,有助於您快速定位問題根源。

更多資訊,請參見產品優勢

功能說明

Auto Scaling僅支援ECS執行個體或ECI執行個體數量的增加和減少,但不支援單個ECS執行個體或ECI執行個體的配置變更。例如需要調整ECS執行個體的CPU、記憶體和頻寬等配置,您可以通過阿里雲營運編排服務(Operation Orchestration Service,簡稱OOS)功能來實現。更多資訊,請參見什麼是營運編排服務

Auto Scaling可以根據業務需求,自動建立或者移出ECS執行個體或ECI執行個體。您需要配置以下主要功能組件:

功能名稱

說明

伸縮組

用來管理一組具有相同應用情境、相同執行個體類型的執行個體。您需要指定伸縮群組類型(即ECS執行個體或ECI執行個體,用於指定提供計算能力的執行個體類型)、執行個體配置來源、邊界值(即最大執行個體數和最小執行個體數)或負載平衡(CLB執行個體或ALB伺服器組)等。如果您有多個應用情境,您可以建立多個伸縮組。Auto Scaling按照您的配置為每個伸縮組分別調整計算能力。

執行個體配置來源

用來管理ECS執行個體或ECI執行個體使用的模板資訊。在彈性擴張時,Auto Scaling使用ECS類型的模板資訊建立ECS執行個體,使用ECI類型的模板資訊建立ECI執行個體。

伸縮規則

主要用來觸發伸縮活動,例如增加1台ECS執行個體或ECI執行個體,您可以手動執行伸縮規則,或者通過警示任務或定時任務執行伸縮規則。伸縮規則還支援智能設定伸縮組的邊界值(即最大執行個體數和最小執行個體數)。

警示任務

通過CloudMonitor系統,即時監測伸縮組的各項指標,在指標滿足配置的閾值條件時,執行相應的伸縮規則。

定時任務

指定時間執行相應的伸縮規則。

上述功能組件中,Auto Scaling必須配置並啟用了伸縮組和組內執行個體配置來源,其他功能組件可以按需配置。Auto Scaling的使用流程如下圖所示:

Auto Scaling還為您提供了其他更多功能,來實現您不同情境的需求:

  • 在伸縮活動成功、失敗或者被拒絕時,Auto Scaling支援通過以下方式發送通知資訊:

    功能名稱

    說明

    訊息通知

    支援通過站內信和郵件發送訊息通知。

    事件通知

    支援發送訊息到CloudMonitor系統事件或Simple Message Queue (formerly MNS)Simple Message Queue (formerly MNS)包括MNS主題和MNS隊列兩種服務模型。Simple Message Queue (formerly MNS)涉及計費,更多計費詳情,請參見計費說明

  • 在管理伸縮組內的執行個體時,Auto Scaling還支援以下功能:

    功能名稱

    說明

    生命週期掛鈎

    管理伸縮組內ECS執行個體或ECI執行個體生命週期的工具。Auto Scaling自動觸發擴縮容活動,並觸發生命週期掛鈎使伸縮活動中的ECS執行個體或ECI執行個體處於掛起中的狀態(即等待的狀態),為您保留一段自訂動作的時間,直至生命週期掛鈎逾時結束。

    手動設定伸縮組執行個體

    自訂方式,手動向伸縮組添加或移出ECS執行個體、ECI執行個體或受管理的執行個體等。

    滾動升級

    如果伸縮群組類型為ECS執行個體,即您指定由ECS執行個體提供計算能力時,支援滾動升級功能。通過任務形式批次更新ECS執行個體配置,您可以為伸縮組內處於服務中狀態的ECS執行個體批次更新鏡像、執行指令碼或者安裝OOS軟體包。

應用情境

Auto Scaling為您提供了豐富的伸縮功能,適用各種業務量有變化的情境:

  • 業務量變化有規律。

    例如,每周五20:00熱門節目來臨時,某視頻公司的業務量激增,您可以建立定時任務,在每周五20:00自動增加1台ECS執行個體或ECI執行個體。

  • 業務量變化無規律。

    例如,某ApsaraVideo for Live公司的日常業務量難以預測,您可以建立警示任務,在CPU使用率大於60%時自動增加1台ECS執行個體或ECI執行個體。

更多資訊,請參見應用情境

工作原理

Auto Scaling會自動根據伸縮模式的配置適時觸發伸縮活動,增加或移出伸縮組內的ECS執行個體或ECI執行個體。您可以通過Auto Scaling調整ECS執行個體或ECI執行個體(該執行個體主要負責處理用戶端請求)數量,從而自動調整業務請求的處理能力。更多資訊,請參見工作原理

產品計費

Auto Scaling本身不收取任何費用,但使用ECS執行個體、ECI執行個體、RDS執行個體、負載平衡服務(例如CLB執行個體、ALB伺服器組或者NLB伺服器組)、Simple Message Queue (formerly MNS)等其他產品資源時涉及收費。更多資訊,請參見產品計費

使用方式

  • Auto Scaling控制台:具有互動式操作的Web服務頁面。

  • API:支援GET和POST請求的RPC風格API。關於API的更多資訊,請參見API概覽。以下為調用Auto ScalingAPI的常用開發人員工具:

    • 命令列工具CLI:基於阿里雲API建立的靈活且易於擴充的管理工具。您可基於命令列工具封裝阿里雲的原生API,擴充出您需要的功能。

    • OpenAPI Explorer:提供快速檢索介面、線上調用API和動態產生SDK範例程式碼等服務。

相關服務

服務名稱

說明

Elastic Compute Service

是阿里雲提供的IaaS(Infrastructure as a Service)層級雲端運算服務,可以協助您實現計算資源的即開即用和Auto Scaling。

Elastic Container Instance

是阿里雲提供的敏捷安全的Serverless容器運行服務,使用ECI作為容器運行環境,可以為您的業務系統提供更高的彈性和安全性,同時降低使用和營運成本。

雲資料庫RDS

是一種安全、穩定、可靠、高性價比、可Auto Scaling的線上資料庫服務,可以協助您解決資料庫營運的煩惱。

Server Load Balancer產品

是一種對流量進行按需分發的服務,可以消除應用系統中的單點故障,提升應用系統的可用性。包括應用型ALB、網路型NLB或傳統型CLB三種產品類型。

CloudMonitorCloudMonitor

是一項針對阿里雲資源和互連網應用進行監控的服務。協助您全面瞭解阿里雲上資源的使用方式和業務健全狀態,並及時對故障資源進行處理,保證業務正常運行。

輕量訊息佇列(原 MNS)

是一種高效、可靠、安全、便捷和可彈性擴充的輕量訊息佇列服務。能夠協助開發人員在應用的分布式組件之間自由地傳遞資料、通知訊息,從而構建松耦合系統。