彈性伸縮(Elastic Scaling Service,簡稱ESS),也稱為Auto Scaling,其能根據您設定的策略自動調整計算資源數量(即業務所需的實例數量),幫助您應對業務流量波動的同時,提高資源利用率,有效降低成本。
本視頻以ECS實例為例介紹彈性伸縮產品。
前置概念
閱讀本文前,您可能需要了解如下概念:
為什么選擇彈性伸縮
在業務需求增長時,彈性伸縮自動增加指定類型的實例(即ECS實例或ECI實例),來保證計算能力;在業務需求下降時,彈性伸縮自動減少指定類型的實例(即ECS實例或ECI實例),來節約成本。當您的業務需求量有波動時,彈性伸縮能夠幫助您自動調整指定類型的實例數量,以滿足業務需求。
彈性伸縮可以為您提供以下優勢:
優勢 | 說明 |
自動化 |
|
降成本 | 無需投入大量人力來調整計算資源,無需提前預備計算資源,也無需擔心不能及時釋放冗余資源。彈性伸縮在適當的時間進行伸縮任務,降低資源擁有成本。 彈性伸縮會自動監測對應的伸縮指標(或期望實例數)的變化(檢測頻率默認是每分鐘一次),如果檢查到對應的伸縮指標與您指定的閾值不匹配,彈性伸縮會立即觸發擴縮容活動。彈性伸縮的響應時間取決于以下因素:
|
高可用 | 無需擔心ECS實例或ECI實例的運行狀態。彈性伸縮提供健康檢查功能,在ECS實例或ECI實例不健康,即實例未處于運行中狀態時,自動增加相應類型的實例替換不健康的實例。 |
靈活智能 |
|
易審計 | 彈性伸縮支持記錄每個伸縮活動,提供伸縮組監控功能,有助于您快速定位問題根源。 |
更多信息,請參見產品優勢。
功能說明
彈性伸縮僅支持ECS實例或ECI實例數量的增加和減少,但不支持單個ECS實例或ECI實例的配置變更。例如需要調整ECS實例的CPU、內存和帶寬等配置,您可以通過阿里云運維編排服務(Operation Orchestration Service,簡稱OOS)功能來實現。更多信息,請參見什么是運維編排服務。
彈性伸縮可以根據業務需求,自動創建或者移出ECS實例或ECI實例。您需要配置以下主要功能組件:
功能名稱 | 說明 |
用來管理一組具有相同應用場景、相同實例類型的實例。您需要指定伸縮組類型(即ECS實例或ECI實例,用于指定提供計算能力的實例類型)、實例配置來源、邊界值(即最大實例數和最小實例數)或負載均衡(CLB實例或ALB服務器組)等。如果您有多個應用場景,您可以創建多個伸縮組。彈性伸縮按照您的配置為每個伸縮組分別調整計算能力。 | |
用來管理ECS實例或ECI實例使用的模板信息。在彈性擴張時,彈性伸縮使用ECS類型的模板信息創建ECS實例,使用ECI類型的模板信息創建ECI實例。 | |
主要用來觸發伸縮活動,例如增加1臺ECS實例或ECI實例,您可以手動執行伸縮規則,或者通過報警任務或定時任務執行伸縮規則。伸縮規則還支持智能設置伸縮組的邊界值(即最大實例數和最小實例數)。 | |
通過云監控系統,實時監測伸縮組的各項指標,在指標滿足配置的閾值條件時,執行相應的伸縮規則。 | |
指定時間執行相應的伸縮規則。 |
上述功能組件中,彈性伸縮必須配置并啟用了伸縮組和組內實例配置來源,其他功能組件可以按需配置。彈性伸縮的使用流程如下圖所示:
彈性伸縮還為您提供了其他更多功能,來實現您不同場景的需求:
在伸縮活動成功、失敗或者被拒絕時,彈性伸縮支持通過以下方式發送通知信息:
功能名稱
說明
支持通過短信、站內信和郵件發送消息通知。
支持發送消息到云監控系統事件或輕量消息隊列(原 MNS)。輕量消息隊列(原 MNS)包括MNS主題和MNS隊列兩種服務模型。輕量消息隊列(原 MNS)涉及計費,更多計費詳情,請參見定價中心。
在管理伸縮組內的實例時,彈性伸縮還支持以下功能:
功能名稱
說明
管理伸縮組內ECS實例或ECI實例生命周期的工具。彈性伸縮自動觸發擴縮容活動,并觸發生命周期掛鉤使伸縮活動中的ECS實例或ECI實例處于掛起中的狀態(即等待的狀態),為您保留一段自定義操作的時間,直至生命周期掛鉤超時結束。
自定義方式,手動向伸縮組添加或移出ECS實例、ECI實例或托管實例等。
如果伸縮組類型為ECS實例,即您指定由ECS實例提供計算能力時,支持滾動升級功能。通過任務形式批量更新ECS實例配置,您可以為伸縮組內處于服務中狀態的ECS實例批量更新鏡像、執行腳本或者安裝OOS軟件包。
應用場景
彈性伸縮為您提供了豐富的伸縮功能,適用各種業務量有變化的場景:
業務量變化有規律。
例如,每周五20:00熱門節目來臨時,某視頻公司的業務量激增,您可以創建定時任務,在每周五20:00自動增加1臺ECS實例或ECI實例。
業務量變化無規律。
例如,某視頻直播公司的日常業務量難以預測,您可以創建報警任務,在CPU使用率大于60%時自動增加1臺ECS實例或ECI實例。
更多信息,請參見應用場景。
工作原理
彈性伸縮會自動根據伸縮模式的配置適時觸發伸縮活動,增加或移出伸縮組內的ECS實例或ECI實例。您可以通過彈性伸縮調整ECS實例或ECI實例(該實例主要負責處理客戶端請求)數量,從而自動調整業務請求的處理能力。更多信息,請參見工作原理。
產品計費
彈性伸縮本身不收取任何費用,但使用ECS實例、ECI實例、RDS實例、負載均衡服務(例如CLB實例、ALB服務器組或者NLB服務器組)、輕量消息隊列(原 MNS)等其他產品資源時涉及收費。更多信息,請參見產品計費。
使用方式
彈性伸縮控制臺:具有交互式操作的Web服務頁面。
API:支持GET和POST請求的RPC風格API。關于API的更多信息,請參見API概覽。以下為調用彈性伸縮API的常用開發者工具:
命令行工具CLI:基于阿里云API建立的靈活且易于擴展的管理工具。您可基于命令行工具封裝阿里云的原生API,擴展出您需要的功能。
OpenAPI開發者門戶:提供快速檢索接口、在線調用API和動態生成SDK示例代碼等服務。
相關服務
服務名稱 | 說明 |
是阿里云提供的IaaS(Infrastructure as a Service)級別云計算服務,可以幫助您實現計算資源的即開即用和彈性伸縮。 | |
是阿里云提供的敏捷安全的Serverless容器運行服務,使用ECI作為容器運行環境,可以為您的業務系統提供更高的彈性和安全性,同時降低使用和運維成本。 | |
是一種安全、穩定、可靠、高性價比、可彈性伸縮的在線數據庫服務,可以幫助您解決數據庫運維的煩惱。 | |
是一種對流量進行按需分發的服務,可以消除應用系統中的單點故障,提升應用系統的可用性。包括應用型ALB、網絡型NLB或傳統型CLB三種產品類型。 | |
是一項針對阿里云資源和互聯網應用進行監控的服務。幫助您全面了解阿里云上資源的使用情況和業務運行狀況,并及時對故障資源進行處理,保證業務正常運行。 | |
是一種高效、可靠、安全、便捷和可彈性擴展的輕量消息隊列服務。能夠幫助開發者在應用的分布式組件之間自由地傳遞數據、通知消息,從而構建松耦合系統。 |