摘要:?彈性伸縮是阿里云上非常受歡迎的一個(gè)云服務(wù)編排產(chǎn)品,它能夠根據(jù)用戶的策略定義和業(yè)務(wù)需求變化,動(dòng)態(tài)調(diào)整彈性計(jì)算資源,在有效支撐業(yè)務(wù)負(fù)載變化的同時(shí)保持最合理經(jīng)濟(jì)的基礎(chǔ)設(shè)施費(fèi)用開支。基于廣大用戶的反饋和建議,彈性伸縮產(chǎn)品全面升級(jí),幫助用戶輕松應(yīng)對(duì)業(yè)務(wù)負(fù)載變化,張弛有度,收放自如!
彈性伸縮是阿里云上非常受歡迎的一個(gè)云服務(wù)編排產(chǎn)品,它能夠根據(jù)用戶的策略定義和業(yè)務(wù)需求變化,動(dòng)態(tài)調(diào)整彈性計(jì)算資源,在有效支撐業(yè)務(wù)負(fù)載變化的同時(shí)保持最合理經(jīng)濟(jì)的基礎(chǔ)設(shè)施費(fèi)用開支。彈性伸縮可以根據(jù)用戶設(shè)置的伸縮策略和模式,在業(yè)務(wù)需求增長(zhǎng)時(shí)自動(dòng)增加ECS實(shí)例以保證計(jì)算能力,在業(yè)務(wù)需求下降時(shí)自動(dòng)減少ECS實(shí)例以節(jié)約成本,還可以自動(dòng)替換不健康的ECS實(shí)例使業(yè)務(wù)始終保持正常的負(fù)載,無需人工干預(yù)即可應(yīng)對(duì)各種復(fù)雜場(chǎng)景,真正實(shí)現(xiàn)對(duì)業(yè)務(wù)負(fù)載的彈性處理能力,為業(yè)務(wù)保駕護(hù)航。
在廣大用戶使用過程中,我們也接到了很多寶貴的反饋意見,為了能讓大家更靈活、高效地使用彈性伸縮服務(wù)支撐業(yè)務(wù)變化,并獲得更高的性價(jià)比,彈性伸縮產(chǎn)品近期在各項(xiàng)功能上全面升級(jí),這里將向大家匯總介紹各方面的更新,希望能讓您更輕松自如地應(yīng)對(duì)負(fù)載波動(dòng),保障業(yè)務(wù)快速穩(wěn)定發(fā)展。
易用性:配置更豐富,管理更靈活
伸縮組支持新增或修改SLB和RDS實(shí)例
在實(shí)際的使用中,經(jīng)常遇到用戶需要新增或者修改已經(jīng)跟伸縮組綁定的SLB和RDS的場(chǎng)景,由于此前伸縮組一旦創(chuàng)建便不能更改SLB和RDS的配置,因此用戶必須創(chuàng)建新的伸縮組來滿足變更需求。隨著功能升級(jí),彈性伸縮目前已經(jīng)支持SLB和RDS的Attach/Detach,無需重建伸縮組即可輕松應(yīng)對(duì)架構(gòu)變更或升級(jí)。
負(fù)載均衡SLB篇
彈性伸縮服務(wù)(AutoScaling)與負(fù)載均衡(SLB)結(jié)合,使您可以將 SLB實(shí)例附加到伸縮組,并通過 SLB 實(shí)例可以將流量分配到伸縮組中的各個(gè)實(shí)例。長(zhǎng)久以來,SLB 實(shí)例只能在創(chuàng)建伸縮組的時(shí)候進(jìn)行指定,不支持修改。這意味著您在創(chuàng)建伸縮組的同時(shí),就不得不仔細(xì)的考量好自己的業(yè)務(wù)需求量及所需要的 SLB 實(shí)例數(shù)量。現(xiàn)在,AutoScaling推出最新功能:AttachLoadBalancer和DetachLoadBalancers,這種尷尬的現(xiàn)狀將一去不復(fù)返。
將 Slb 附加到伸縮組
您可以選擇將 Slb 實(shí)例附加到伸縮組上,在將負(fù)載附加到伸縮組的時(shí)候根據(jù)您指定的forceAttach參數(shù)值,將有以下兩種行為:
forceAttach為true,將 Slb 附加到伸縮組上的同時(shí),將把當(dāng)前伸縮組內(nèi)的所有實(shí)例添加到 Slb 實(shí)例后端。
forceAttach為false,將 Slb 附加到伸縮組上的同時(shí),不會(huì)添加當(dāng)前組內(nèi)已有實(shí)例到 Slb實(shí)例后端。
對(duì)于一個(gè)已經(jīng)附加在伸縮組上的 Slb實(shí)例,如果您想將伸縮組中當(dāng)前全部實(shí)例加入到某一 Slb 實(shí)例的后端,您可以選擇再次將該 Slb 附加到伸縮組,并選擇 forceAttach 為 true。
您需要注意,將Slb實(shí)例添加到伸縮組時(shí),由于Slb實(shí)例類型的限制,Slb實(shí)例需要滿足以下條件:
Slb實(shí)例必須是用戶擁有的未刪除實(shí)例。
Slb實(shí)例與伸縮組必須在相同地域(region)下。
Slb實(shí)例必須為active狀態(tài)。
Slb實(shí)例必須至少配置一個(gè)監(jiān)聽并開啟健康檢查。
如果Slb實(shí)例與伸縮組都為專有網(wǎng)絡(luò)(vpc網(wǎng)絡(luò))類型,需要處于相同的vpc下。
當(dāng)伸縮組為vpc網(wǎng)絡(luò)類型,Slb實(shí)例為經(jīng)典網(wǎng)絡(luò)類型時(shí),Slb實(shí)例后端服務(wù)器中如果包含vpc實(shí)例,必須與當(dāng)前伸縮組處于相同vpc下。
伸縮組中附加的Slb實(shí)例個(gè)數(shù)必須少于伸縮組的配額。
將 Slb 分離出伸縮組
在將 Slb 從伸縮組移除的時(shí),根據(jù)您指定的 forceDetach參數(shù),將有以下兩種行為:
forceDetach 為true,將 Slb 從伸縮組移除的同時(shí),將把 Slb 后端實(shí)例中與伸縮組關(guān)聯(lián)的實(shí)例移除。
forceDetach 為false,將 Slb 從伸縮組移除的同時(shí),不會(huì)從 Slb 后端實(shí)例中移除與伸縮組關(guān)聯(lián)實(shí)例。
在分離伸縮組的Slb實(shí)例時(shí),您應(yīng)該確認(rèn)Slb實(shí)例不再向伸縮組內(nèi)實(shí)例分發(fā)請(qǐng)求,以免造成您的服務(wù)請(qǐng)求丟失。并且,不同于 attachLoadBalancer操作,您不能多次嘗試移除伸縮組中的同一個(gè) Slb 實(shí)例。
詳情參閱
關(guān)系型數(shù)據(jù)庫(kù)RDS篇
RDS是阿里云提供的一種穩(wěn)定可靠的在線數(shù)據(jù)庫(kù)服務(wù),支持MySQL、SQL Server、PostgreSQL 和 PPAS引擎,并且提供了容災(zāi)、備份、恢復(fù)、監(jiān)控、遷移等方面的全套解決方案,徹底解決數(shù)據(jù)庫(kù)運(yùn)維的煩惱。RDS 與 彈性伸縮相結(jié)合時(shí),通過將伸縮組內(nèi)的實(shí)例自動(dòng)加入到 RDS 實(shí)例的白名單,實(shí)現(xiàn)組內(nèi)實(shí)例能夠安全訪問 RDS實(shí)例。
將 RDS 實(shí)例附加到伸縮組
將 RDS 實(shí)例附加到伸縮組時(shí),根據(jù)您指定的 forceAttch 參數(shù)值,附加過程有以下兩種行為:
forceAttach 為true,將 RDS 實(shí)例附加到伸縮組時(shí),會(huì)把伸縮組中當(dāng)前擁有的所有實(shí)例私網(wǎng)IP都加入到 RDS 實(shí)例的IP白名單中。
forceAttach 為false,將 RDS 實(shí)例附加到伸縮組時(shí),不會(huì)嘗試將伸縮組中已有實(shí)例私網(wǎng)IP加入到 RDS 實(shí)例的IP白名單中。
對(duì)于上述 RDS 附加過程,如果您將一個(gè)已經(jīng)存在伸縮組中的 RDS 實(shí)例再次附加到伸縮組,此時(shí),組內(nèi) RDS 實(shí)例數(shù)量不會(huì)改變,僅會(huì)嘗試把當(dāng)前伸縮組內(nèi)的實(shí)例私網(wǎng)IP全部加入其IP白名單中。
您需要注意,將 RDS 實(shí)例附加到伸縮組,RDS 實(shí)例需要滿足一下限制:
RDS 實(shí)例必須是用戶擁有的未刪除實(shí)例。
RDS 實(shí)例必須為 UNLOCK。
RDS 實(shí)例運(yùn)行狀態(tài)必須為 RUNNING。
RDS default分組的IP白名單總數(shù)在完成添加后不能超過1000個(gè)。
將 RDS 實(shí)例分離出伸縮組
將 RDS 實(shí)例從伸縮組中分離時(shí),根據(jù)您指定的forceDetach參數(shù),將有以下兩種行為:
forceDetach 為true,將 RDS 實(shí)例從伸縮組移除的同時(shí),將把 RDS 白名單中與伸縮組關(guān)聯(lián)的實(shí)例IP移除。
forceDetach 為false,將 RDS 實(shí)例從伸縮組移除的同時(shí),不會(huì)把 RDS 白名單中與伸縮組關(guān)聯(lián)的實(shí)例IP移除。
您可以根據(jù)您的實(shí)際需要確定 forceDetach 的設(shè)置,需要注意的是,您無法對(duì)同一個(gè) RDS 實(shí)例重復(fù)執(zhí)行移除操作。
詳情參閱
伸縮配置支持修改功能、以及鏡像預(yù)設(shè)密碼等功能
與伸縮組類似,為了解決伸縮配置重復(fù)創(chuàng)建的問題,我們提供了伸縮配置的修改能力,并進(jìn)一步支持了更多的ECS特性,如鏡像預(yù)設(shè)密碼。
彈性伸縮配置支持修改以下參數(shù):
imageId
instanceTypes
internetMaxBandwidthOut
ramRoleName
keyPairName
systemDiskCategory
scalingConfigurationName
tags
userData
instanceName
loadBalancerWeight
systemDiskSize
internetChargeType
passwordInherit(鏡像預(yù)設(shè)密碼)
hostName(主機(jī)名稱)
伸縮配置支持UserData & KeyPair & RamRole & Tags
為了提供更加彈性、靈活的伸縮服務(wù),ESS 彈性伸縮配置中新增了 UserData、KeyPair、RamRole、Tags 四個(gè)特性。使用 UserData,您可以快速安全的完成自動(dòng)化的配置過程,在 ECS 實(shí)例數(shù)量隨著業(yè)務(wù)需求彈性變化的同時(shí),您還能夠安全、快速地完成應(yīng)用級(jí)別的擴(kuò)容和縮容。您還可以通過配置 KeyPair、Tags 等參數(shù),實(shí)現(xiàn)更加高效、智能的 ECS 實(shí)例管理服務(wù)。
實(shí)例自定義數(shù)據(jù)(UserData)
實(shí)例自定義數(shù)據(jù)(UserData),是阿里云 ECS 為您提供的一種自定義實(shí)例啟動(dòng)行為及傳入數(shù)據(jù)的功能,該功能兼容 Windows 實(shí)例及 Linux 實(shí)例,主要有兩種用途:
作為實(shí)例自定義腳本,在啟動(dòng)實(shí)例時(shí)執(zhí)行。
作為普通數(shù)據(jù),將一定的信息傳入實(shí)例中,您可以在實(shí)例中引用這些數(shù)據(jù)。
您在使用 ESS 來滿足您 ECS 實(shí)例數(shù)隨著業(yè)務(wù)需求彈性伸縮的要求時(shí),如果您還要自動(dòng)化地實(shí)現(xiàn)應(yīng)用級(jí)別的擴(kuò)容和縮容,常用地方法可能是通過自定義鏡像的方式來實(shí)現(xiàn),也可能是通過使用Terraform等開源的IT基礎(chǔ)架構(gòu)管理工具來實(shí)現(xiàn)。ESS 伸縮配置中添加了 UserData 參數(shù)以后,您只需要準(zhǔn)備好您的 UserData 自定義腳本數(shù)據(jù),然后以 Base64 編碼的方式傳入伸縮配置中即可。當(dāng) ESS 彈性擴(kuò)容 ECS 實(shí)例數(shù)的時(shí)候,UserData 實(shí)例自定義腳本會(huì)在實(shí)例啟動(dòng)的時(shí)候自動(dòng)地執(zhí)行,從而幫您實(shí)現(xiàn)應(yīng)用級(jí)別的擴(kuò)容和縮容。相比借助于自定義鏡像或其它開源工具來實(shí)現(xiàn)應(yīng)用自動(dòng)擴(kuò)展的方法,使用 ESS 原生的 UserData 特性顯得更加快捷、安全。
在創(chuàng)建伸縮配置,并使用了 UserData 參數(shù)時(shí),需要注意以下幾點(diǎn):
專有網(wǎng)絡(luò)(VPC)的伸縮配置才能使用 UserData 參數(shù)。
UserData 要以 Base64 編碼的方式傳入。
UserData 將以不加密的方式傳入,所以請(qǐng)不要以明文方式傳入機(jī)密的信息(比如密碼、私鑰數(shù)據(jù)等),如果必須傳入,建議加密后,然后以 Base64 的方式編碼后再傳入,在實(shí)例內(nèi)部以同樣的方式反解密。
關(guān)于 UserData 更多的使用方法,您可以參考?阿里云實(shí)例自定義數(shù)據(jù)?文檔。
SSH 秘鑰對(duì)(KeyPairName)
在使用 SSH 登錄遠(yuǎn)程 Linux 服務(wù)器時(shí),您可以選擇使用密碼的方式來登錄,也可以選擇使用 SSH Key 的方式來登錄。當(dāng)您要管理的服務(wù)器集群較多時(shí),頻繁地輸入密碼不僅浪費(fèi)時(shí)間,而且容易發(fā)生密碼輸入錯(cuò)誤,無法登陸服務(wù)器的情況。此時(shí),如果您通過 SSH Key 的方式來登陸服務(wù)器,您只需要配置好您的公鑰和私鑰,即可登錄到服務(wù)器。一次配置,長(zhǎng)期有效。
阿里云創(chuàng)建的 SSH Key 只支持 RSA 2048 位的密鑰對(duì)。在生成秘鑰的時(shí)候,阿里云會(huì)保存密鑰的公鑰部分,并返回給您秘鑰的私鑰部分。
ESS 彈性伸縮配置中的 KeyPairName 參數(shù),為您提供了 SSH Key的方式來登錄服務(wù)器的能力。在創(chuàng)建伸縮配置時(shí),選擇您想要使用的秘鑰對(duì)名稱作為 KeyPairName 參數(shù)配置到伸縮配置中。當(dāng) ECS 實(shí)例被彈性伸縮服務(wù)創(chuàng)建出來時(shí),實(shí)例會(huì)存儲(chǔ)此秘鑰對(duì)的公鑰部分,您只需要在本機(jī)配置一下秘鑰對(duì)的私鑰部分,便可以使用 SSH Key 的方式快速地登錄到您的服務(wù)器上去。
在創(chuàng)建伸縮配置,并使用了 KeyPairName 參數(shù)時(shí),需要注意以下幾點(diǎn):
Windows ECS 實(shí)例,忽略該參數(shù)。即使傳入了 KeyPairName,也不會(huì)生效。
當(dāng)傳入了 KeyPairName 參數(shù)后,Linux ECS 實(shí)例的密碼登錄方式會(huì)被初始化成禁止。
RAM角色名稱(RamRoleName)
RAM (Resource Access Management) 是阿里云為客戶提供的用戶身份管理與訪問控制服務(wù)。使用 RAM,您可以創(chuàng)建、管理用戶賬號(hào)(比如員工、系統(tǒng)或應(yīng)用程序),并可以控制這些用戶賬號(hào)對(duì)您名下資源具有的操作權(quán)限。當(dāng)您的企業(yè)存在多用戶協(xié)同操作資源時(shí),使用 RAM 可以讓您避免與其他用戶共享云賬號(hào)密鑰,按需為用戶分配最小權(quán)限,從而降低您的企業(yè)信息安全風(fēng)險(xiǎn)。
RAM 支持創(chuàng)建不同的角色,不同的角色具有對(duì)不同的云產(chǎn)品的不同的操作權(quán)限。ESS 彈性伸縮配置新增了 RamRoleName 參數(shù),您可以通過設(shè)置該參數(shù),讓您的 ECS 實(shí)例 來扮演不同的角色,這些實(shí)例便擁有了這些角色不同的云產(chǎn)品的操作權(quán)限。在給伸縮配置指定 RamRoleName 參數(shù)時(shí),您需要確保當(dāng)前的 RamRole 策略中允許您的 ECS 實(shí)例來扮演該角色,否則伸縮配置無法有效地彈出 ECS 實(shí)例。
標(biāo)簽(Tags)
阿里云 ECS 提供標(biāo)簽(Tags)服務(wù),您可以通過給 ECS 實(shí)例綁定不同的標(biāo)簽的方式,實(shí)現(xiàn)對(duì) ECS 實(shí)例的分類管理。
您可以通過查詢不同的標(biāo)簽的方式,獲取符合條件的 ECS 實(shí)例列表,同樣,您也可以通過查詢 ECS 實(shí)例的方式,查詢出匹配到的標(biāo)簽。ESS 彈性伸縮配置新增了 Tags 參數(shù),您可以通過設(shè)置不同的標(biāo)簽對(duì),來對(duì)您 ESS 伸縮服務(wù)彈出來的機(jī)器進(jìn)行分類管理。每個(gè)伸縮配置暫時(shí)最多只能支持五對(duì)標(biāo)簽,當(dāng)指定的標(biāo)簽數(shù)超過五對(duì),伸縮配置將創(chuàng)建失敗。
詳情參閱
提高創(chuàng)建成功率和業(yè)務(wù)可用性
支持多可用區(qū)擴(kuò)容,并實(shí)現(xiàn)全球首家支持多種實(shí)例規(guī)格
彈性伸縮的核心在于用戶需要橫向擴(kuò)容的時(shí)候要能彈出來,但是云計(jì)算的庫(kù)存是一個(gè)動(dòng)態(tài)變化的過程,庫(kù)存不足的情況是情況是伴隨云計(jì)算一直存在的問題,為了最大程度上提高用戶的創(chuàng)建成功率,我們基于自身的產(chǎn)品現(xiàn)狀,在支持了多可用區(qū)之后,又區(qū)別于其他云廠商提供了多實(shí)例規(guī)格的功能。
支持多可用區(qū)擴(kuò)容
原彈性伸縮服務(wù)限定,一個(gè)專有網(wǎng)絡(luò)伸縮組只能配置一個(gè)虛擬交換機(jī)。由于一個(gè)虛擬交換機(jī)只歸屬于一個(gè)可用區(qū),這樣存在的問題就是,當(dāng)您配置好 ESS 伸縮組的虛擬交換機(jī)以后,如果虛擬交換機(jī)所在的可用區(qū)由于庫(kù)存不足等原因無法創(chuàng)建出 ECS 實(shí)例,那么您伸縮組中的伸縮配置、伸縮規(guī)則、以及伸縮組對(duì)應(yīng)的報(bào)警任務(wù)等都將生效。為了優(yōu)化上述問題,提高伸縮組的可用性,ESS 伸縮組新增多可用區(qū)參數(shù)(VSwitchIds.N),您在創(chuàng)建伸縮組的時(shí)候可以使用該參數(shù)為您的伸縮組配置多個(gè)虛擬交換機(jī),當(dāng)一個(gè)虛擬交換機(jī)所在可用區(qū)無法創(chuàng)建實(shí)例的時(shí)候,ESS 彈性伸縮服務(wù)會(huì)為您自動(dòng)切換到其它可用區(qū)。在使用該參數(shù)的時(shí)候,您需要注意以下幾點(diǎn):
如果使用了 VSwitchIds.N 多可用區(qū)參數(shù),VSwitchId 參數(shù)將被忽略。
VSwitchIds.N 參數(shù)中,N 的取值范圍為 [1, 5],即一個(gè)伸縮組最多可以配置 5 個(gè)虛擬交換機(jī)。
VSwitchIds.N 參數(shù)中指定的虛擬交換機(jī)需在同一個(gè) VPC 下。
VSwitchIds.N 參數(shù)中 N 代表虛擬交換機(jī)的優(yōu)先級(jí),編號(hào)為 1 的虛擬交換機(jī)為創(chuàng)建實(shí)例的第一選擇,虛擬交換機(jī)優(yōu)先級(jí)隨著編號(hào)的增大依次降低。
當(dāng)優(yōu)先級(jí)較高的虛擬交換機(jī)所在可用區(qū)無法創(chuàng)建實(shí)例時(shí),會(huì)自動(dòng)選擇下一優(yōu)先級(jí)的虛擬交換機(jī)來創(chuàng)建實(shí)例。當(dāng)您在使用多可用區(qū)參數(shù)來創(chuàng)建伸縮組時(shí),盡可能地設(shè)置同一地域下不同可用區(qū)的虛擬交換機(jī)來創(chuàng)建您的伸縮組,這樣可以有效地減少單可用區(qū)無法創(chuàng)建出實(shí)例問題的發(fā)生,提高了伸縮組的可用性。
詳情參閱
支持多達(dá)10種實(shí)例規(guī)格
原彈性伸縮服務(wù)限定,一個(gè)伸縮組內(nèi)只能有一個(gè)生效的伸縮配置,一個(gè)伸縮配置只能配置一種實(shí)例規(guī)格。由于上述的限制,導(dǎo)致伸縮組內(nèi)有效的實(shí)例規(guī)格只有一個(gè),如果當(dāng)前的實(shí)例規(guī)格由于庫(kù)存不足等變得不可用,那么伸縮組將無法創(chuàng)建出 ECS 實(shí)例。您需要重新選擇當(dāng)前伸縮組內(nèi)其它伸縮配置或創(chuàng)建新的伸縮配置來恢復(fù)伸縮組,使伸縮組能夠正常工作。為了優(yōu)化上述問題,提高伸縮組內(nèi)伸縮配置的可用性,ESS 彈性伸縮服務(wù)為伸縮配置新增了多實(shí)例規(guī)格參數(shù)(InstanceTypes.N)。您在創(chuàng)建伸縮配置的時(shí)候可以使用該參數(shù)為您的伸縮配置設(shè)置多個(gè)實(shí)例規(guī)格,當(dāng)某個(gè)實(shí)例規(guī)格由于庫(kù)存等原因變得不可用時(shí),ESS 彈性伸縮服務(wù)會(huì)為您自動(dòng)切換到其它有效的實(shí)例規(guī)格來創(chuàng)建實(shí)例。當(dāng)您創(chuàng)建的伸縮配置使用了多實(shí)例規(guī)格參數(shù)時(shí),您需要注意以下幾點(diǎn):
如果使用了 InstanceTypes.N 多實(shí)例規(guī)格參數(shù),InstanceType 參數(shù)將被忽略。
InstanceTypes.N 參數(shù)中,N 的取值范圍為 [1, 10],即一個(gè)伸縮配置內(nèi)最多可以設(shè)置 10 種實(shí)例規(guī)格。
當(dāng)您的伸縮組是經(jīng)典網(wǎng)絡(luò)伸縮組時(shí),伸縮組所屬 Region 必須支持您所配置的所有實(shí)例規(guī)格的經(jīng)典網(wǎng)絡(luò)實(shí)例的售賣,如果當(dāng)前 Region 不支持您所配置的實(shí)例規(guī)格,伸縮組將無法為您創(chuàng)建出 ECS 實(shí)例。您可以通過?查詢可用區(qū)列表?接口查詢當(dāng)前 Region 支持的實(shí)例規(guī)格,以及每種規(guī)格支持的網(wǎng)絡(luò)類型。
當(dāng)您的伸縮組是專有網(wǎng)絡(luò)(VPC)伸縮組時(shí),伸縮組配置的虛擬交換機(jī)對(duì)應(yīng)的可用區(qū)內(nèi)必須支持您所配置的所有實(shí)例規(guī)格的專有網(wǎng)絡(luò)實(shí)例的售賣,每個(gè)伸縮組可以配置多個(gè)虛擬交換機(jī),您可以通過?使用 ESS SDK 快速創(chuàng)建多可用區(qū)伸縮組?了解更多。
InstanceTypes.N 參數(shù)中 N 代表當(dāng)前伸縮配置中實(shí)例規(guī)格的優(yōu)先級(jí),編號(hào)為 1 的實(shí)例規(guī)格優(yōu)先級(jí)最高,實(shí)例規(guī)格優(yōu)先級(jí)隨著編號(hào)的增大依次降低。
如果當(dāng)前伸縮配置中優(yōu)先級(jí)較高的實(shí)例規(guī)格由于庫(kù)存等原因無法創(chuàng)建出 ECS 實(shí)例時(shí),ESS 會(huì)自動(dòng)選擇下一優(yōu)先級(jí)的實(shí)例規(guī)格來為您創(chuàng)建實(shí)例。
當(dāng)您在使用多實(shí)例規(guī)格參數(shù)來創(chuàng)建伸縮配置時(shí),實(shí)例規(guī)格不可重復(fù),否則伸縮配置將無法創(chuàng)建。
推出多可用區(qū)均衡分布模式
為了滿足在多可用區(qū)下的高可用和容災(zāi)需求,保證服務(wù)的穩(wěn)定性和連續(xù)性,彈性伸縮開放了多可用區(qū)實(shí)例自動(dòng)均衡分布功能,來降低不可抗力因素對(duì)服務(wù)的正常運(yùn)行可能造成的影響。
彈性伸縮通過把實(shí)例創(chuàng)建在跨越區(qū)域的多個(gè)可用區(qū),使您可以利用地理冗余的安全性和可靠性。
多可用區(qū)自動(dòng)均衡分布支持范圍:
只支持vpc類型且設(shè)置了大于1個(gè)虛擬交換機(jī)(VSwitchId)的伸縮組
只能在伸縮組創(chuàng)建的時(shí)候進(jìn)行設(shè)置
如何設(shè)置伸縮組多可用區(qū)自動(dòng)均衡分布:
伸縮組新增多可用區(qū)彈性策略參數(shù) MultiAZPolicy:
PRIORITY (默認(rèn)值)
BALANCE
當(dāng)設(shè)置為BALANCE的時(shí)候,伸縮組進(jìn)行彈性活動(dòng)的時(shí)候會(huì)自動(dòng)均衡分布各個(gè)可用區(qū)的實(shí)例。
默認(rèn)取值為PRIORITY,會(huì)根據(jù)定義的虛擬交換機(jī)優(yōu)先級(jí)進(jìn)行(VSwitchIds.N)擴(kuò)縮容;當(dāng)優(yōu)先級(jí)較高的虛擬交換機(jī)所在可用區(qū)無法創(chuàng)建 ECS 實(shí)例時(shí),自動(dòng)使用下一優(yōu)先級(jí)的虛擬交換機(jī)創(chuàng)建 ECS 實(shí)例。
再均衡
當(dāng)發(fā)生以下情況的時(shí)候,伸縮組可能會(huì)在不同可用區(qū)之間變得不平衡:
可用區(qū)庫(kù)存不足
伸縮組配置的虛擬交換機(jī)(VSwitchId)發(fā)生變化。
您移出伸縮組并釋放了實(shí)例。
此時(shí),您可以執(zhí)行?RebalanceInstances?對(duì)伸縮組執(zhí)行再均衡活動(dòng)來進(jìn)行補(bǔ)償。
詳情參閱
更全面的實(shí)例管理能力
支持實(shí)例備用狀態(tài)、實(shí)例保護(hù)模式、分離實(shí)例操作
在實(shí)際的使用中,為了讓用戶更加靈活的管理自己的實(shí)例,解決一些特點(diǎn)場(chǎng)景下的需求,我們提供了3個(gè)新的管理功能
Standby 備用狀態(tài) (滿足用戶對(duì)伸縮組中的實(shí)例進(jìn)行升級(jí)、變配等操作)
Protection 保護(hù)模式 (實(shí)例不會(huì)因?yàn)槿魏卧虮灰瞥?
Detach 分離實(shí)例 (實(shí)例可以獨(dú)立于伸縮組繼續(xù)保留使用)
支持Standby的操作
針對(duì)伸縮組內(nèi)管理的ECS實(shí)例,用戶無法控制其生命周期。而伸縮組對(duì)實(shí)例的非健康狀態(tài)的釋放操作,也阻礙了用戶對(duì)伸縮出來的ECS實(shí)例進(jìn)行停機(jī)相關(guān)的操作,使得用戶無法充分利用ECS服務(wù)提供的彈性能力。
通過Standby備用狀態(tài)的操作,可以滿足如下適用場(chǎng)景:
需要對(duì)彈性伸縮彈出的ECS實(shí)例進(jìn)行更改規(guī)格,重啟等變更操作的場(chǎng)景,用戶通過將目標(biāo)ECS實(shí)例置為standby,目標(biāo)ECS實(shí)例的生命周期會(huì)交由用戶管理,用戶可進(jìn)行ECS服務(wù)所支持的全部彈性操作,操作完成后,在通過移出standby狀態(tài),交還ECS實(shí)例的生命周期。
用戶通過伸縮組配置負(fù)載均衡的方式來管理業(yè)務(wù)機(jī)器,當(dāng)伸縮組中的某臺(tái)實(shí)例出現(xiàn)業(yè)務(wù)問題,用戶可以通過standby操作對(duì)這臺(tái)實(shí)例的原有流量分流,進(jìn)行一系列離線排查驗(yàn)證(登陸機(jī)器,排查,重啟等)操作后,在確認(rèn)該機(jī)器已經(jīng)ready后,在移出standby狀態(tài),重新處理業(yè)務(wù)流量
支持實(shí)例生命周期管理
上線生命周期掛鉤(LifecycleHook)功能,方便用戶更加靈活地管理伸縮組內(nèi)實(shí)例。使用生命周期掛鉤可以在伸縮組發(fā)生伸縮活動(dòng)時(shí)將伸縮活動(dòng)掛起,執(zhí)行自定義操作。
使用 LifecycleHook,可以在伸縮組發(fā)生伸縮活動(dòng)時(shí)將正在擴(kuò)張或即將釋放的 ECS 實(shí)例掛起,執(zhí)行用戶自定義操作,可以更加靈活地管理 ECS 實(shí)例在伸縮組內(nèi)的生命周期。幾個(gè)簡(jiǎn)單的 LifecycleHook 應(yīng)用場(chǎng)景:
伸縮組彈出 ECS 實(shí)例后需要延遲一段時(shí)間(測(cè)試服務(wù)沒問題以后)掛載到 SLB ,然后對(duì)外提供服務(wù)
伸縮組釋放 ECS 實(shí)例時(shí)需要先將實(shí)例從 SLB 后端服務(wù)移除(防止接收新的請(qǐng)求),待檢測(cè)已經(jīng)接收到的請(qǐng)求處理完成,停止并釋放實(shí)例
伸縮組釋放 ECS 實(shí)例時(shí)執(zhí)行數(shù)據(jù)備份操作
伸縮組彈性擴(kuò)張或者收縮執(zhí)行一些用戶自定義操作
針對(duì)上述第二種場(chǎng)景,如果可以確定每個(gè)請(qǐng)求的最長(zhǎng)處理時(shí)間,可以調(diào)用?創(chuàng)建生命周期掛鉤?接口創(chuàng)建生命周期掛鉤,設(shè)置 LifecycleTransition 參數(shù)值為 SCALE_IN,設(shè)置 HeartbeatTimeout 為請(qǐng)求最長(zhǎng)處理時(shí)間,不需要設(shè)置通知對(duì)象,當(dāng)發(fā)生彈性收縮類型伸縮活動(dòng)時(shí),ECS 實(shí)例從 SLB 移除后會(huì)掛起一段時(shí)間(HeartbeatTimeout),等待請(qǐng)求處理完成。
更完善的伸縮體驗(yàn)
平滑彈性能力增強(qiáng)
為了讓用戶可以從更多監(jiān)控維度來trigger Auto Scaling的彈性事件,我們把原來支持的6種監(jiān)控指標(biāo)增加到13種,同時(shí)支持用戶自定義監(jiān)控項(xiàng)
AutoScaling 報(bào)警任務(wù)
AutoScaling 報(bào)警任務(wù)是 AutoScaling 與 云監(jiān)控服務(wù)(CMS) 深度合作,提供的一種動(dòng)態(tài)管理伸縮組的方式,類似于 AutoScaling 定時(shí)任務(wù),AutoScaling 報(bào)警任務(wù)通過觸發(fā)您指定的伸縮規(guī)則來執(zhí)行伸縮活動(dòng),達(dá)到調(diào)整伸縮組內(nèi)實(shí)例個(gè)數(shù)的目的。
定時(shí)任務(wù)可以在您指定的時(shí)間執(zhí)行您指定的伸縮規(guī)則,當(dāng)業(yè)務(wù)場(chǎng)景在時(shí)間上可預(yù)料時(shí),能夠提前做出響應(yīng),但是,在面對(duì)突發(fā)或者時(shí)間上不可預(yù)料的業(yè)務(wù)場(chǎng)景時(shí),定時(shí)任務(wù)就顯得捉襟見肘,此時(shí),就需要報(bào)警任務(wù)來提供更靈活的觸發(fā)伸縮規(guī)則的方式,在業(yè)務(wù)高峰期增加伸縮組內(nèi)實(shí)例數(shù)量來緩解業(yè)務(wù)壓力,在業(yè)務(wù)低谷時(shí)釋放伸縮組內(nèi)實(shí)例,減小生產(chǎn)成本。
報(bào)警任務(wù)通過監(jiān)控特定的監(jiān)控指標(biāo),對(duì)數(shù)據(jù)指標(biāo)進(jìn)行實(shí)時(shí)的統(tǒng)計(jì),當(dāng)統(tǒng)計(jì)值滿足您指定的報(bào)警條件時(shí),觸發(fā)報(bào)警,執(zhí)行您指定的伸縮規(guī)則。使用報(bào)警任務(wù),您可以實(shí)時(shí)的根據(jù)業(yè)務(wù)的變化來不斷調(diào)整伸縮組內(nèi)的實(shí)例數(shù)量,保證您監(jiān)控的指標(biāo)維持在您期望的范圍內(nèi)。
AutoScaling 系統(tǒng)監(jiān)控報(bào)警任務(wù)
AutoScaling 系統(tǒng)監(jiān)控報(bào)警任務(wù)的監(jiān)控指標(biāo)是云監(jiān)控為用戶采集的 ECS 實(shí)例的相關(guān)數(shù)據(jù)指標(biāo),比如CPU,負(fù)載等。用戶在 AutoScaling 中設(shè)置的系統(tǒng)監(jiān)控的報(bào)警任務(wù)是以伸縮組作為監(jiān)控粒度的,即以伸縮組內(nèi)的所有實(shí)例的監(jiān)控指標(biāo)的統(tǒng)計(jì)平均值作為伸縮組的指標(biāo)值,當(dāng)伸縮組內(nèi)實(shí)例數(shù)量發(fā)生變化時(shí),監(jiān)控指標(biāo)也會(huì)同時(shí)進(jìn)行更新。
新增系統(tǒng)監(jiān)控項(xiàng):
監(jiān)控項(xiàng)單位系統(tǒng)盤寫bpsByte/s系統(tǒng)盤讀bpsByte/s系統(tǒng)盤寫iops個(gè)/s系統(tǒng)盤讀iops個(gè)/s外網(wǎng)網(wǎng)卡發(fā)包數(shù)(經(jīng)典網(wǎng)絡(luò))個(gè)/s外網(wǎng)網(wǎng)卡收包數(shù)(經(jīng)典網(wǎng)絡(luò))個(gè)/s內(nèi)網(wǎng)網(wǎng)卡發(fā)包數(shù)個(gè)/s內(nèi)網(wǎng)網(wǎng)卡收包數(shù)個(gè)/sTCP總連接數(shù)個(gè)TCP已建立連接數(shù)個(gè)AutoScaling 自定義監(jiān)控項(xiàng)報(bào)警任務(wù)
AutoScaling 自定義監(jiān)控項(xiàng)報(bào)警任務(wù)的監(jiān)控對(duì)象為用戶自主上報(bào)到云監(jiān)控中的監(jiān)控指標(biāo)。在一些場(chǎng)景下,系統(tǒng)監(jiān)控項(xiàng)可能不包含您所需要的監(jiān)控指標(biāo),您可能擁有自己的一套監(jiān)控系統(tǒng),并且關(guān)心的是與您特定業(yè)務(wù)相關(guān)的某些指標(biāo),自定義監(jiān)控報(bào)警任務(wù),為您自有的監(jiān)控系統(tǒng),或者與業(yè)務(wù)相關(guān)的自有監(jiān)控指標(biāo)提供了設(shè)置報(bào)警任務(wù)的接入點(diǎn)。
AutoScaling 自定義監(jiān)控報(bào)警任務(wù)是針對(duì)阿里云云監(jiān)控服務(wù)的自定義監(jiān)控項(xiàng)設(shè)置報(bào)警的,用戶在使用 AutoScaling 自定義監(jiān)控報(bào)警任務(wù)之前需要首先向云監(jiān)控上報(bào)自定義監(jiān)控?cái)?shù)據(jù),即自定義監(jiān)控項(xiàng)。云監(jiān)控自定義監(jiān)控是提供給用戶自由定義監(jiān)控項(xiàng)及報(bào)警規(guī)則的一項(xiàng)服務(wù),通過此服務(wù),用戶可以針對(duì)自己關(guān)心的業(yè)務(wù)指標(biāo)進(jìn)行監(jiān)控,將采集到監(jiān)控?cái)?shù)據(jù)上報(bào)至云監(jiān)控,由云監(jiān)控來進(jìn)行數(shù)據(jù)的處理,并可以對(duì)其設(shè)置報(bào)警規(guī)則。
詳情參閱
事件通知能力
為了進(jìn)一步優(yōu)化使用體驗(yàn),我們廢棄了原有的短信+郵件的古老通知方式,改成支持用戶自定義接收人、接收方式(釘釘+短信+郵件)和接收內(nèi)容的全新方式,并且支持可編程的通知方式Topic、Queue,更大程度上提升用戶的體感。
AutoScaling 事件通知功能支持伸縮組級(jí)別的事件通知,您可以為您的伸縮組配置事件通知,并配置需要通知的伸縮活動(dòng)類型,當(dāng)發(fā)生對(duì)應(yīng)的伸縮活動(dòng)時(shí),事件通知會(huì)推送伸縮活動(dòng)詳細(xì)信息到您配置的通知對(duì)象。目前事件通知功能支持三種通知對(duì)象、五種類型的伸縮活動(dòng)。使用事件通知功能,您可以第一時(shí)間獲知伸縮組內(nèi)實(shí)例變化情況,實(shí)時(shí)監(jiān)控伸縮組信息。
事件通知支持的伸縮活動(dòng)類型
當(dāng)您在?創(chuàng)建事件通知?時(shí),需要設(shè)置觸發(fā)事件通知對(duì)應(yīng)的伸縮活動(dòng)類型,當(dāng)伸縮組發(fā)生對(duì)應(yīng)類型的伸縮活動(dòng)時(shí),事件通知觸發(fā)執(zhí)行,發(fā)送伸縮活動(dòng)詳細(xì)信息到您設(shè)置的通知對(duì)象。
事件通知(Notification)目前支持以下五種類型的伸縮活動(dòng):
擴(kuò)容伸縮活動(dòng)成功(AUTOSCALING:SCALE_OUT_SUCCESS)
擴(kuò)容伸縮活動(dòng)失敗(AUTOSCALING:SCALE_OUT_ERROR)
縮容伸縮活動(dòng)成功(AUTOSCALING:SCALE_IN_SUCCESS)
縮容伸縮活動(dòng)失敗(AUTOSCALING:SCALE_IN_ERROR)
伸縮活動(dòng)拒絕執(zhí)行(AUTOSCALING:SCALE_REJECT)
上述伸縮活動(dòng)中,伸縮活動(dòng)成功包含了部分成功和全部成功兩種情況,您可以通過事件通知發(fā)出的伸縮活動(dòng)詳情來判斷是部分成功還是全部成功。您還可以通過?DescribeNotificationTypes?接口查詢事件通知支持的伸縮活動(dòng)類型。
事件通知支持的通知方式
當(dāng)伸縮活動(dòng)觸發(fā)事件通知功能時(shí),事件通知功能需要將伸縮活動(dòng)詳情上報(bào)給對(duì)應(yīng)的事件通知對(duì)象,目前事件通知支持下列三種通知方式:
伸縮活動(dòng)詳情上報(bào)到云監(jiān)控系統(tǒng)事件
伸縮活動(dòng)詳情推送到消息服務(wù)(MNS)隊(duì)列(Queue)中
伸縮活動(dòng)詳情推送到消息服務(wù)(MNS)主題(Topic)中
更低的TCO成本
通過使用搶占式實(shí)例(原名:競(jìng)價(jià)實(shí)例), 省上加省!
搶占式實(shí)例是一種按照供需關(guān)系變化價(jià)格波動(dòng)的一種后付費(fèi)類型實(shí)例,相對(duì)于按量付費(fèi)實(shí)例價(jià)格有較低的折扣。使用搶占式實(shí)例的時(shí)候,您可以對(duì) ECS 實(shí)例進(jìn)行出價(jià),設(shè)定您的最高出價(jià),ECS 搶占式實(shí)例的市場(chǎng)價(jià)格會(huì)根據(jù)當(dāng)前的供需關(guān)系浮動(dòng)(目前價(jià)格波動(dòng)是按量付費(fèi)價(jià)格的1~10折),您的出價(jià)將確保您不會(huì)以超過您最高出價(jià)的價(jià)格購(gòu)買 ECS 實(shí)例,當(dāng)市場(chǎng)價(jià)格高于您的最高出價(jià)時(shí),阿里云將不會(huì)為您生產(chǎn) ECS 實(shí)例,這將保證您的生產(chǎn)成本不會(huì)超出您從預(yù)期。
需要注意的是,搶占式實(shí)例低廉的價(jià)格也伴隨著一定的風(fēng)險(xiǎn),當(dāng)市場(chǎng)價(jià)格高于您的最高出價(jià),或者市場(chǎng)供需嚴(yán)重不均衡時(shí),阿里云有權(quán)釋放您的 ECS 實(shí)例。當(dāng)然,在釋放前5分鐘,阿里云將會(huì)進(jìn)行meta信息的通知,您可以訂閱阿里云metasdata的信息,以便您能夠及時(shí)的進(jìn)行數(shù)據(jù)的保存和清理。
合理的使用搶占式實(shí)例,相比于同規(guī)格按量付費(fèi)實(shí)例將會(huì)為您節(jié)約大量的服務(wù)器成本,搶占式實(shí)例最佳適用場(chǎng)景示例如下:
實(shí)時(shí)分析業(yè)務(wù)
大數(shù)據(jù)業(yè)務(wù)
圖像和媒體編碼業(yè)務(wù)
科學(xué)計(jì)算業(yè)務(wù)
可彈性伸縮的業(yè)務(wù)站點(diǎn)、網(wǎng)絡(luò)爬蟲業(yè)務(wù)
圖像和媒體編碼業(yè)務(wù)
基因計(jì)算業(yè)務(wù)
地理空間勘測(cè)分析業(yè)務(wù)
寫在最后
希望以上這些新功能可以讓您更輕松自如地應(yīng)對(duì)業(yè)務(wù)負(fù)載變化,彈性支撐業(yè)務(wù)發(fā)展的同時(shí)仍能保持較低的TCO成本。在彈性編排ECS實(shí)例的基礎(chǔ)之上,如果您對(duì)于如何運(yùn)維ECS有更多的疑問或建議,歡迎您參加即將于8月8日舉行的線上直播,了解更多與ECS運(yùn)維有關(guān)的內(nèi)容。
本文為云棲社區(qū)原創(chuàng)內(nèi)容,未經(jīng)允許不得轉(zhuǎn)載。
評(píng)論
查看更多