1. 程式人生 > >彈性伸縮Auto Scaling產品全面升級,輕松應對業務負載變化

彈性伸縮Auto Scaling產品全面升級,輕松應對業務負載變化

冗余 穩定性 阿裏 server 反饋 公鑰 一段時間 采集 總數

摘要:?彈性伸縮是阿裏雲上非常受歡迎的一個雲服務編排產品,它能夠根據用戶的策略定義和業務需求變化,動態調整彈性計算資源,在有效支撐業務負載變化的同時保持最合理經濟的基礎設施費用開支。基於廣大用戶的反饋和建議,彈性伸縮產品全面升級,幫助用戶輕松應對業務負載變化,張弛有度,收放自如!

彈性伸縮是阿裏雲上非常受歡迎的一個雲服務編排產品,它能夠根據用戶的策略定義和業務需求變化,動態調整彈性計算資源,在有效支撐業務負載變化的同時保持最合理經濟的基礎設施費用開支。彈性伸縮可以根據用戶設置的伸縮策略和模式,在業務需求增長時自動增加ECS實例以保證計算能力,在業務需求下降時自動減少ECS實例以節約成本,還可以自動替換不健康的ECS實例使業務始終保持正常的負載,無需人工幹預即可應對各種復雜場景,真正實現對業務負載的彈性處理能力,為業務保駕護航。

技術分享圖片

在廣大用戶使用過程中,我們也接到了很多寶貴的反饋意見,為了能讓大家更靈活、高效地使用彈性伸縮服務支撐業務變化,並獲得更高的性價比,彈性伸縮產品近期在各項功能上全面升級,這裏將向大家匯總介紹各方面的更新,希望能讓您更輕松自如地應對負載波動,保障業務快速穩定發展。
技術分享圖片

易用性:配置更豐富,管理更靈活
伸縮組支持新增或修改SLB和RDS實例
在實際的使用中,經常遇到用戶需要新增或者修改已經跟伸縮組綁定的SLB和RDS的場景,由於此前伸縮組一旦創建便不能更改SLB和RDS的配置,因此用戶必須創建新的伸縮組來滿足變更需求。隨著功能升級,彈性伸縮目前已經支持SLB和RDS的Attach/Detach,無需重建伸縮組即可輕松應對架構變更或升級。

負載均衡SLB篇
彈性伸縮服務(AutoScaling)與負載均衡(SLB)結合,使您可以將 SLB實例附加到伸縮組,並通過 SLB 實例可以將流量分配到伸縮組中的各個實例。長久以來,SLB 實例只能在創建伸縮組的時候進行指定,不支持修改。這意味著您在創建伸縮組的同時,就不得不仔細的考量好自己的業務需求量及所需要的 SLB 實例數量。現在,AutoScaling推出最新功能:AttachLoadBalancer和DetachLoadBalancers,這種尷尬的現狀將一去不復返。

將 Slb 附加到伸縮組

您可以選擇將 Slb 實例附加到伸縮組上,在將負載附加到伸縮組的時候根據您指定的forceAttach參數值,將有以下兩種行為:

forceAttach為true,將 Slb 附加到伸縮組上的同時,將把當前伸縮組內的所有實例添加到 Slb 實例後端。
forceAttach為false,將 Slb 附加到伸縮組上的同時,不會添加當前組內已有實例到 Slb實例後端。
對於一個已經附加在伸縮組上的 Slb實例,如果您想將伸縮組中當前全部實例加入到某一 Slb 實例的後端,您可以選擇再次將該 Slb 附加到伸縮組,並選擇 forceAttach 為 true。

您需要註意,將Slb實例添加到伸縮組時,由於Slb實例類型的限制,Slb實例需要滿足以下條件:

Slb實例必須是用戶擁有的未刪除實例。
Slb實例與伸縮組必須在相同地域(region)下。
Slb實例必須為active狀態。
Slb實例必須至少配置一個監聽並開啟健康檢查。
如果Slb實例與伸縮組都為專有網絡(vpc網絡)類型,需要處於相同的vpc下。
當伸縮組為vpc網絡類型,Slb實例為經典網絡類型時,Slb實例後端服務器中如果包含vpc實例,必須與當前伸縮組處於相同vpc下。
伸縮組中附加的Slb實例個數必須少於伸縮組的配額。
將 Slb 分離出伸縮組

在將 Slb 從伸縮組移除的時,根據您指定的 forceDetach參數,將有以下兩種行為:

forceDetach 為true,將 Slb 從伸縮組移除的同時,將把 Slb 後端實例中與伸縮組關聯的實例移除。
forceDetach 為false,將 Slb 從伸縮組移除的同時,不會從 Slb 後端實例中移除與伸縮組關聯實例。
在分離伸縮組的Slb實例時,您應該確認Slb實例不再向伸縮組內實例分發請求,以免造成您的服務請求丟失。並且,不同於 attachLoadBalancer操作,您不能多次嘗試移除伸縮組中的同一個 Slb 實例。
詳情參閱

關系型數據庫RDS篇
RDS是阿裏雲提供的一種穩定可靠的在線數據庫服務,支持MySQL、SQL Server、PostgreSQL 和 PPAS引擎,並且提供了容災、備份、恢復、監控、遷移等方面的全套解決方案,徹底解決數據庫運維的煩惱。RDS 與 彈性伸縮相結合時,通過將伸縮組內的實例自動加入到 RDS 實例的白名單,實現組內實例能夠安全訪問 RDS實例。

將 RDS 實例附加到伸縮組

將 RDS 實例附加到伸縮組時,根據您指定的 forceAttch 參數值,附加過程有以下兩種行為:

forceAttach 為true,將 RDS 實例附加到伸縮組時,會把伸縮組中當前擁有的所有實例私網IP都加入到 RDS 實例的IP白名單中。
forceAttach 為false,將 RDS 實例附加到伸縮組時,不會嘗試將伸縮組中已有實例私網IP加入到 RDS 實例的IP白名單中。
對於上述 RDS 附加過程,如果您將一個已經存在伸縮組中的 RDS 實例再次附加到伸縮組,此時,組內 RDS 實例數量不會改變,僅會嘗試把當前伸縮組內的實例私網IP全部加入其IP白名單中。

您需要註意,將 RDS 實例附加到伸縮組,RDS 實例需要滿足一下限制:

RDS 實例必須是用戶擁有的未刪除實例。
RDS 實例必須為 UNLOCK。
RDS 實例運行狀態必須為 RUNNING。
RDS default分組的IP白名單總數在完成添加後不能超過1000個。
將 RDS 實例分離出伸縮組

將 RDS 實例從伸縮組中分離時,根據您指定的forceDetach參數,將有以下兩種行為:

forceDetach 為true,將 RDS 實例從伸縮組移除的同時,將把 RDS 白名單中與伸縮組關聯的實例IP移除。
forceDetach 為false,將 RDS 實例從伸縮組移除的同時,不會把 RDS 白名單中與伸縮組關聯的實例IP移除。
您可以根據您的實際需要確定 forceDetach 的設置,需要註意的是,您無法對同一個 RDS 實例重復執行移除操作。
詳情參閱

伸縮配置支持修改功能、以及鏡像預設密碼等功能
與伸縮組類似,為了解決伸縮配置重復創建的問題,我們提供了伸縮配置的修改能力,並進一步支持了更多的ECS特性,如鏡像預設密碼。

彈性伸縮配置支持修改以下參數:

imageId
instanceTypes
internetMaxBandwidthOut
ramRoleName
keyPairName
systemDiskCategory
scalingConfigurationName
tags
userData
instanceName
loadBalancerWeight
systemDiskSize
internetChargeType
passwordInherit(鏡像預設密碼)
hostName(主機名稱)
詳情參閱

伸縮配置支持UserData & KeyPair & RamRole & Tags
為了提供更加彈性、靈活的伸縮服務,ESS 彈性伸縮配置中新增了 UserData、KeyPair、RamRole、Tags 四個特性。使用 UserData,您可以快速安全的完成自動化的配置過程,在 ECS 實例數量隨著業務需求彈性變化的同時,您還能夠安全、快速地完成應用級別的擴容和縮容。您還可以通過配置 KeyPair、Tags 等參數,實現更加高效、智能的 ECS 實例管理服務。

實例自定義數據(UserData)
實例自定義數據(UserData),是阿裏雲 ECS 為您提供的一種自定義實例啟動行為及傳入數據的功能,該功能兼容 Windows 實例及 Linux 實例,主要有兩種用途:

作為實例自定義腳本,在啟動實例時執行。
作為普通數據,將一定的信息傳入實例中,您可以在實例中引用這些數據。
您在使用 ESS 來滿足您 ECS 實例數隨著業務需求彈性伸縮的要求時,如果您還要自動化地實現應用級別的擴容和縮容,常用地方法可能是通過自定義鏡像的方式來實現,也可能是通過使用Terraform等開源的IT基礎架構管理工具來實現。ESS 伸縮配置中添加了 UserData 參數以後,您只需要準備好您的 UserData 自定義腳本數據,然後以 Base64 編碼的方式傳入伸縮配置中即可。當 ESS 彈性擴容 ECS 實例數的時候,UserData 實例自定義腳本會在實例啟動的時候自動地執行,從而幫您實現應用級別的擴容和縮容。相比借助於自定義鏡像或其它開源工具來實現應用自動擴展的方法,使用 ESS 原生的 UserData 特性顯得更加快捷、安全。

在創建伸縮配置,並使用了 UserData 參數時,需要註意以下幾點:

專有網絡(VPC)的伸縮配置才能使用 UserData 參數。
UserData 要以 Base64 編碼的方式傳入。
UserData 將以不加密的方式傳入,所以請不要以明文方式傳入機密的信息(比如密碼、私鑰數據等),如果必須傳入,建議加密後,然後以 Base64 的方式編碼後再傳入,在實例內部以同樣的方式反解密。
關於 UserData 更多的使用方法,您可以參考?阿裏雲實例自定義數據?文檔。

SSH 秘鑰對(KeyPairName)
在使用 SSH 登錄遠程 Linux 服務器時,您可以選擇使用密碼的方式來登錄,也可以選擇使用 SSH Key 的方式來登錄。當您要管理的服務器集群較多時,頻繁地輸入密碼不僅浪費時間,而且容易發生密碼輸入錯誤,無法登陸服務器的情況。此時,如果您通過 SSH Key 的方式來登陸服務器,您只需要配置好您的公鑰和私鑰,即可登錄到服務器。一次配置,長期有效。

阿裏雲創建的 SSH Key 只支持 RSA 2048 位的密鑰對。在生成秘鑰的時候,阿裏雲會保存密鑰的公鑰部分,並返回給您秘鑰的私鑰部分。
ESS 彈性伸縮配置中的 KeyPairName 參數,為您提供了 SSH Key的方式來登錄服務器的能力。在創建伸縮配置時,選擇您想要使用的秘鑰對名稱作為 KeyPairName 參數配置到伸縮配置中。當 ECS 實例被彈性伸縮服務創建出來時,實例會存儲此秘鑰對的公鑰部分,您只需要在本機配置一下秘鑰對的私鑰部分,便可以使用 SSH Key 的方式快速地登錄到您的服務器上去。

在創建伸縮配置,並使用了 KeyPairName 參數時,需要註意以下幾點:

Windows ECS 實例,忽略該參數。即使傳入了 KeyPairName,也不會生效。
當傳入了 KeyPairName 參數後,Linux ECS 實例的密碼登錄方式會被初始化成禁止。
RAM角色名稱(RamRoleName)
RAM (Resource Access Management) 是阿裏雲為客戶提供的用戶身份管理與訪問控制服務。使用 RAM,您可以創建、管理用戶賬號(比如員工、系統或應用程序),並可以控制這些用戶賬號對您名下資源具有的操作權限。當您的企業存在多用戶協同操作資源時,使用 RAM 可以讓您避免與其他用戶共享雲賬號密鑰,按需為用戶分配最小權限,從而降低您的企業信息安全風險。

RAM 支持創建不同的角色,不同的角色具有對不同的雲產品的不同的操作權限。ESS 彈性伸縮配置新增了 RamRoleName 參數,您可以通過設置該參數,讓您的 ECS 實例 來扮演不同的角色,這些實例便擁有了這些角色不同的雲產品的操作權限。在給伸縮配置指定 RamRoleName 參數時,您需要確保當前的 RamRole 策略中允許您的 ECS 實例來扮演該角色,否則伸縮配置無法有效地彈出 ECS 實例。