使用彈性伸縮為ALB自動(dòng)添加或移除后端服務(wù)器
彈性伸縮產(chǎn)品支持關(guān)聯(lián)應(yīng)用型負(fù)載均衡ALB的服務(wù)器組,通過(guò)配置觸發(fā)任務(wù),自動(dòng)調(diào)整服務(wù)器組內(nèi)的ECS實(shí)例個(gè)數(shù),從而有效增強(qiáng)了ALB的高可用服務(wù)能力并降低了資源使用成本。
場(chǎng)景示例
某新聞網(wǎng)站播出了一則新聞,訪問(wèn)量突增,服務(wù)器無(wú)法承載巨大訪問(wèn)量,導(dǎo)致新聞頁(yè)面刷新不出來(lái)。新聞的時(shí)效性降低后,訪問(wèn)量回落,可以正常訪問(wèn)新聞頁(yè)面。由于該新聞網(wǎng)站的訪問(wèn)量突增和回落的具體時(shí)間難以預(yù)測(cè),無(wú)法及時(shí)手動(dòng)調(diào)整實(shí)例,且實(shí)例的調(diào)整數(shù)量也不確定,為維護(hù)新聞網(wǎng)站的服務(wù)增加了困難。
面對(duì)以上的場(chǎng)景,您可以利用彈性伸縮的報(bào)警任務(wù),由阿里云云監(jiān)控根據(jù)CPU使用率等衡量指標(biāo)自動(dòng)調(diào)整其彈性資源服務(wù),同時(shí)自動(dòng)關(guān)聯(lián)ALB服務(wù)器組。伸縮組關(guān)聯(lián)ALB實(shí)例的服務(wù)器組后,無(wú)論是伸縮組自動(dòng)添加或移除ECS實(shí)例,還是您向伸縮組手動(dòng)添加或移除ECS實(shí)例,都會(huì)自動(dòng)同步到ALB實(shí)例的服務(wù)器組。ALB實(shí)例會(huì)根據(jù)流量分發(fā)、健康檢查等策略靈活使用ECS實(shí)例資源,在資源彈性的基礎(chǔ)上大大提高資源可用性。
本文以如下方案作為示例進(jìn)行介紹,ALB通過(guò)配置的轉(zhuǎn)發(fā)規(guī)則將客戶端的請(qǐng)求分發(fā)給后端服務(wù)器ECS01。通過(guò)創(chuàng)建彈性伸縮服務(wù)并配置報(bào)警任務(wù),當(dāng)ECS01的CPU使用率上升到設(shè)定的閾值時(shí),自動(dòng)新建ECS實(shí)例并添加到后端服務(wù)器組;當(dāng)ECS01的CPU使用率下降到設(shè)定的閾值時(shí),自動(dòng)將ECS實(shí)例從后端服務(wù)器組移除并刪除。
前提條件
您已創(chuàng)建一個(gè)或多個(gè)處于運(yùn)行中狀態(tài)的ALB實(shí)例。具體操作,請(qǐng)參見(jiàn)創(chuàng)建應(yīng)用型負(fù)載均衡。
ALB實(shí)例已創(chuàng)建服務(wù)器組RS1并添加了ECS01實(shí)例,服務(wù)器組處于可用狀態(tài)。
您已創(chuàng)建了ECS01實(shí)例的自定義鏡像。具體操作,請(qǐng)參見(jiàn)使用實(shí)例創(chuàng)建自定義鏡像。
ALB實(shí)例必須開啟健康檢查。具體操作,請(qǐng)參見(jiàn)健康檢查。
ALB實(shí)例至少配置了一個(gè)監(jiān)聽(tīng)。具體操作,請(qǐng)參見(jiàn)添加HTTP監(jiān)聽(tīng)。
ALB實(shí)例和伸縮組必須位于同一專有網(wǎng)絡(luò)。
步驟一:創(chuàng)建伸縮組
- 登錄彈性伸縮控制臺(tái)。
- 在左側(cè)導(dǎo)航欄中,單擊伸縮組管理。
- 在頂部菜單欄處,選擇地域。
進(jìn)入伸縮組管理頁(yè)面。單擊創(chuàng)建伸縮組,您在創(chuàng)建伸縮組時(shí),部分配置項(xiàng)可參考如下配置。
配置項(xiàng)
說(shuō)明
組內(nèi)實(shí)例配置信息來(lái)源
選擇從零開始創(chuàng)建
組內(nèi)最小實(shí)例數(shù)
當(dāng)伸縮組的當(dāng)前實(shí)例數(shù)小于伸縮最小實(shí)例數(shù)時(shí),彈性伸縮服務(wù)會(huì)自動(dòng)添加實(shí)例,使得伸縮組的當(dāng)前實(shí)例數(shù)等于伸縮最小實(shí)例數(shù)。本文配置示例為1(至少需要1個(gè)已有ECS01實(shí)例)
組內(nèi)最大實(shí)例數(shù)
當(dāng)伸縮組的當(dāng)前實(shí)例數(shù)大于伸縮最大實(shí)例數(shù)時(shí),彈性伸縮服務(wù)會(huì)自動(dòng)移出實(shí)例,使得伸縮組的當(dāng)前實(shí)例數(shù)等于伸縮最大實(shí)例數(shù)。本文配置示例為2(本文示例中除ECS01實(shí)例外最多添加一個(gè)實(shí)例)
默認(rèn)冷卻時(shí)間
一個(gè)伸縮活動(dòng)(添加或移出實(shí)例)執(zhí)行完成后的一段冷卻時(shí)間內(nèi),該伸縮組不執(zhí)行其他的伸縮活動(dòng)。目前僅針對(duì)報(bào)警任務(wù)(云監(jiān)控)觸發(fā)的伸縮活動(dòng)有效。本文配置示例為0,實(shí)際使用時(shí)需要根據(jù)實(shí)際情況調(diào)整
專有網(wǎng)絡(luò)、選擇交換機(jī)
選擇ECS01實(shí)例所在的專有網(wǎng)絡(luò)及交換機(jī)
關(guān)聯(lián)負(fù)載均衡ALB、NLB服務(wù)器組
選擇對(duì)應(yīng)服務(wù)器組,并配置端口及權(quán)重
根據(jù)需要配置其余選項(xiàng),單擊確認(rèn)。完成后您可以在伸縮組管理頁(yè)面查看已創(chuàng)建的伸縮組。
步驟二:創(chuàng)建伸縮配置
在伸縮組管理頁(yè)面的操作列單擊查看詳情,在實(shí)例配置來(lái)源頁(yè)簽選擇伸縮配置。
在伸縮配置頁(yè)簽,單擊創(chuàng)建伸縮配置并完成配置,部分配置項(xiàng)可參考下表,其他配置項(xiàng)可根據(jù)實(shí)際需求進(jìn)行配置。
配置項(xiàng)
說(shuō)明
付費(fèi)模式
ECS的付費(fèi)方式,本文選擇按量付費(fèi)
實(shí)例配置方式
本文選擇指定實(shí)例規(guī)格
選擇實(shí)例規(guī)格
選擇與創(chuàng)建的ECS01實(shí)例規(guī)格相同的規(guī)格
選擇鏡像
選擇已經(jīng)創(chuàng)建的ECS01實(shí)例的自定義鏡像
安全組
選擇已創(chuàng)建的ECS01實(shí)例所在安全組
配置完成后單擊創(chuàng)建,然后單擊確認(rèn)創(chuàng)建。
在伸縮配置創(chuàng)建成功對(duì)話框,單擊啟用配置,并在彈窗中啟動(dòng)伸縮配置與伸縮組。
步驟三:創(chuàng)建伸縮規(guī)則
在伸縮組管理頁(yè)面的操作列單擊查看詳情,在伸縮規(guī)則與報(bào)警任務(wù)頁(yè)簽單擊伸縮規(guī)則。
創(chuàng)建自動(dòng)添加的伸縮規(guī)則:在伸縮規(guī)則頁(yè)簽,單擊創(chuàng)建伸縮規(guī)則完成配置,部分配置項(xiàng)可參考下表,其他配置項(xiàng)可根據(jù)實(shí)際需求進(jìn)行配置。完成后單擊確認(rèn)。
配置項(xiàng)
說(shuō)明
規(guī)則名稱
自定義填寫,例如:自動(dòng)添加1臺(tái)的規(guī)則
伸縮規(guī)則類型
本文選擇簡(jiǎn)單規(guī)則
執(zhí)行的操作
本文選擇增加1臺(tái)
創(chuàng)建自動(dòng)移除的伸縮規(guī)則:在伸縮規(guī)則頁(yè)簽,單擊創(chuàng)建伸縮規(guī)則完成配置,部分配置項(xiàng)可參考下表,其他配置項(xiàng)可根據(jù)實(shí)際需求進(jìn)行配置。完成后單擊確認(rèn)。
配置項(xiàng)
說(shuō)明
規(guī)則名稱
自定義填寫,例如:自動(dòng)移除1臺(tái)的規(guī)則
伸縮規(guī)則類型
本文選擇簡(jiǎn)單規(guī)則
執(zhí)行的操作
本文選擇減少1臺(tái)
步驟四:創(chuàng)建報(bào)警任務(wù)并添加伸縮規(guī)則
在左側(cè)導(dǎo)航欄選擇
。在報(bào)警任務(wù)頁(yè)面,選擇系統(tǒng)監(jiān)控頁(yè)簽,然后單擊創(chuàng)建報(bào)警任務(wù)。
創(chuàng)建自動(dòng)添加的報(bào)警任務(wù):在創(chuàng)建報(bào)警任務(wù)對(duì)話框中完成配置,部分配置項(xiàng)可參考下表,其他配置項(xiàng)可根據(jù)實(shí)際需求進(jìn)行配置。完成后單擊確認(rèn)。
配置項(xiàng)
說(shuō)明
名稱
自定義任務(wù)名稱,例如:自動(dòng)添加1臺(tái)的報(bào)警任務(wù)
監(jiān)控資源
選擇步驟一中創(chuàng)建的伸縮組
報(bào)警指標(biāo)描述
本文選擇CPU使用率、Maximum(最大值)>= 閾值 60%
統(tǒng)計(jì)周期
本文選擇1分鐘
重復(fù)幾次后報(bào)警
本文選擇1次
報(bào)警觸發(fā)規(guī)則
選擇步驟三中創(chuàng)建的自動(dòng)添加的伸縮規(guī)則
創(chuàng)建自動(dòng)減少的報(bào)警任務(wù):在創(chuàng)建報(bào)警任務(wù)對(duì)話框中完成配置,部分配置項(xiàng)可參考下表,其他配置項(xiàng)可根據(jù)實(shí)際需求進(jìn)行配置。完成后單擊確認(rèn)。
配置項(xiàng)
說(shuō)明
名稱
自定義任務(wù)名稱,例如:自動(dòng)移除1臺(tái)的報(bào)警任務(wù)
監(jiān)控資源
選擇步驟一中創(chuàng)建的伸縮組
報(bào)警指標(biāo)描述
本文選擇CPU使用率、Maximum(最大值)<= 閾值 30%
統(tǒng)計(jì)周期
本文選擇1分鐘
重復(fù)幾次后報(bào)警
本文選擇1次
報(bào)警觸發(fā)規(guī)則
選擇步驟三中創(chuàng)建的自動(dòng)移除的伸縮規(guī)則
步驟五:已有實(shí)例添加到伸縮組中進(jìn)行監(jiān)控
彈性伸縮需要基于已有業(yè)務(wù)服務(wù)器進(jìn)行監(jiān)控,根據(jù)報(bào)警任務(wù)觸發(fā)實(shí)例。因此需要將已有服務(wù)器實(shí)例添加到伸縮組中進(jìn)行監(jiān)控。
在伸縮組管理頁(yè)面的操作列單擊查看詳情,在實(shí)例列表頁(yè)簽單擊手動(dòng)創(chuàng)建。
單擊添加已有實(shí)例,選擇并添加ECS01實(shí)例,完成后單擊確認(rèn)添加。
在手動(dòng)創(chuàng)建頁(yè)簽,可查看到ECS01實(shí)例已添加成功。
步驟六:驗(yàn)證自動(dòng)添加和移除效果
通過(guò)stress壓測(cè)的方式,增加ECS01實(shí)例的CPU使用率超過(guò)60%,從而觸發(fā)彈性伸縮的自動(dòng)添加報(bào)警任務(wù),在這期間登錄控制臺(tái)可查看到ECS實(shí)例自動(dòng)增加。壓測(cè)時(shí)間結(jié)束后,ECS01實(shí)例的CPU使用率低于30%,從而觸發(fā)彈性伸縮的自動(dòng)移除報(bào)警任務(wù),自動(dòng)移除此前自動(dòng)添加的ECS實(shí)例。
遠(yuǎn)程登錄ECS01實(shí)例后,執(zhí)行以下命令安裝stress工具。
sudo yum install -y epel-release sudo yum install -y stress
執(zhí)行以下命令通過(guò)stress工具對(duì)ECS01實(shí)例進(jìn)行壓測(cè),壓測(cè)時(shí)間為60s。
sudo stress --cpu 1 --io 4 --vm 2 --vm-bytes 128M --timeout 60s &
返回彈性伸縮的報(bào)警任務(wù)頁(yè)面,等待幾分鐘后,報(bào)警狀態(tài)顯示報(bào)警。
進(jìn)入伸縮組管理頁(yè)面,在實(shí)例數(shù)/容量列查看總實(shí)例數(shù)增加1個(gè)。證明已添加一臺(tái)新的ECS實(shí)例到伸縮組。
- 登錄應(yīng)用型負(fù)載均衡ALB控制臺(tái)。
在左側(cè)導(dǎo)航欄,選擇
。單擊創(chuàng)建的目標(biāo)服務(wù)器組的ID,單擊后端服務(wù)器頁(yè)簽,可以看到后端服務(wù)器有兩臺(tái)實(shí)例,其中以
ESS-XX
命名的實(shí)例為通過(guò)彈性伸縮服務(wù)自動(dòng)添加的ECS實(shí)例。壓測(cè)時(shí)間60s結(jié)束后,可再次登錄彈性伸縮與負(fù)載均衡控制臺(tái),可查看到此前已經(jīng)添加的實(shí)例已自動(dòng)移除。
相關(guān)文檔
如您想詳細(xì)了解彈性伸縮服務(wù),可參考什么是彈性伸縮ESS。
如您需要設(shè)置定時(shí)任務(wù)進(jìn)行服務(wù)器數(shù)量自動(dòng)調(diào)整,可參考通過(guò)定時(shí)任務(wù)設(shè)置伸縮組內(nèi)的實(shí)例數(shù)量。
結(jié)合云監(jiān)控配置不同的伸縮規(guī)則,可實(shí)現(xiàn)基于監(jiān)控指標(biāo)的伸縮、指標(biāo)預(yù)測(cè)等更多高級(jí)功能,詳情可參考配置伸縮規(guī)則。