伸縮組支援關聯Server Load Balancer執行個體,通過Server Load Balancer執行個體將訪問流量分發到伸縮組內的多個執行個體中,可以有效增強伸縮組的服務能力。您可以通過在Auto Scaling控制台操作或者調用API參數(例如AttachLoadBalancers和DetachLoadBalancers)來實現為伸縮組添加和移除Server Load Balancer執行個體。
背景資訊
本文主要以傳統型負載平衡CLB(原SLB)為例進行說明。伸縮組關聯Server Load Balancer執行個體後,無論是伸縮組自動建立執行個體,還是您向伸縮組手動添加執行個體,執行個體都會自動添加到Server Load Balancer執行個體的後端伺服器。Server Load Balancer執行個體會根據流量分發、健全狀態檢查等策略靈活使用伸縮組內的執行個體資源,在資源彈性的基礎上大幅提高資源可用性。更多資訊,請參見負載平衡簡介。
負載平衡簡介
Server Load Balancer(Server Load Balancer)是一種對流量進行按需分發的服務,通過將流量分發到不同的後端伺服器來擴充應用系統的吞吐能力,可以消除系統中的單點故障,提升應用系統的可用性。更多資訊,請參見Server Load Balancer產品家族介紹。
阿里雲Server Load Balancer分為應用型負載平衡ALB(Application Load Balancer)、網路型負載平衡NLB(Network Load Balancer)和傳統型負載平衡CLB(Classic Load Balancer)三種類型。
類型 | 說明 | 相關文檔 |
ALB | 專門面向七層,提供強大的七層業務處理效能,同時提供基於內容的進階路由特性。 | |
NLB | 面向萬物互聯時代推出的新一代四層負載平衡,支援超高效能和自動彈效能力,單一實例可以達到1億並發串連,幫您輕鬆應對高並發業務。 | |
CLB(原SLB) | 支援TCP、UDP、HTTP和HTTPS協議,具備良好的四層和基礎的七層處理能力。通過設定虛擬服務地址,將添加的同一地區的多個執行個體虛擬成一個高效能、高可用的應用服務池。 |
以傳統型負載平衡CLB(原SLB)為例進行說明,該負載平衡服務通過組合負載平衡CLB執行個體、監聽和後端伺服器,提供流量分發控制服務。主要由以下三個部分組成:
應用型負載平衡ALB主要由負載平衡ALB執行個體、監聽(負載平衡的最小業務單元)、伺服器組(即一個包含多個後端伺服器的邏輯組)三部分組成,更多資訊,請參見ALB伺服器組概述。
功能 | 說明 | 相關文檔 |
負載平衡CLB執行個體(Classic Load Balancer Instances) | 是一個啟動並執行負載平衡服務實體,用來接收流量並將其分配給後端伺服器。 說明 加入傳統型負載平衡CLB(原SLB)的執行個體權重預設為50,您可以根據需要在對應Server Load Balancer執行個體中調整權重,具體操作,請參見在預設伺服器組添加和管理雲端服務器。 | |
監聽(Listeners) | 用來檢查用戶端請求並將請求轉寄給後端伺服器,會對後端伺服器進行健全狀態檢查。 | |
後端伺服器(Backend Servers) | 是一組接收前端請求的執行個體。您可以單獨添加執行個體到後端伺服器池,也可以通過虛擬伺服器組或主備伺服器組來大量新增和管理。 |
注意事項
以傳統型負載平衡CLB(原SLB)為例進行說明,下文中的負載平衡均指負載平衡CLB(原SLB)。
伸縮組關聯負載平衡或負載平衡伺服器組後,您需要注意以下事項:
如果負載平衡或負載平衡伺服器組被刪除(不存在),則伸縮組擴縮容時會顯示擴縮容失敗。
Auto Scaling會定期掃描伸縮組是否存在關聯的負載平衡或負載平衡伺服器組,如果檢測到負載平衡或負載平衡伺服器組被刪除(不存在),則系統會自動解除綁定伸縮組與該負載平衡或負載平衡伺服器組(不存在)的關聯關係。
重要系統自動解除綁定與負載平衡(不存在)或負載平衡伺服器組(不存在)的關聯關係後,伸縮組再次擴縮容時,不會出現因該已解除綁定的負載平衡或該已解除綁定的負載平衡伺服器組而導致擴縮容失敗的情況。
伸縮組添加或移除Server Load Balancer執行個體時,您需要注意以下事項:
添加Server Load Balancer執行個體
伸縮組中添加Server Load Balancer執行個體時,需注意:
如果API AttachLoadBalancers中的請求參數ForceAttach為false,則將Server Load Balancer執行個體添加到伸縮組時,系統不會將當前伸縮組中已有的執行個體添加為Server Load Balancer執行個體的後端伺服器。
如果API AttachLoadBalancers中的請求參數ForceAttach為true,則將Server Load Balancer執行個體添加到伸縮組時,系統會將當前伸縮組中已有的執行個體全部添加為Server Load Balancer執行個體的後端伺服器。
調用Auto Scaling的AttachLoadBalancers介面最多支援一次添加5個Server Load Balancer執行個體到伸縮組。
如果Server Load Balancer執行個體已添加至伸縮組,而您需要將伸縮組中全部執行個體添加為該Server Load Balancer執行個體的後端伺服器,您可以再次將該Server Load Balancer執行個體添加到伸縮組,並選擇ForceAttach為true狀態。
將Server Load Balancer執行個體添加到伸縮組時,Server Load Balancer執行個體需滿足如下限制:
您必須持有一個或多個處於運行中狀態的Server Load Balancer執行個體。具體操作,請參見建立和管理CLB執行個體。
Server Load Balancer執行個體和伸縮組必須位於同一地區。
Server Load Balancer執行個體必須至少配置一個監聽並開啟健全狀態檢查功能。更多資訊,請參見CLB監聽概述和配置和管理CLB健全狀態檢查。
如果Server Load Balancer執行個體與伸縮組都為專用網路類型時,則必須處於相同的專用網路下。
當伸縮組為專用網路類型,而Server Load Balancer執行個體為傳統網路類型時,如果Server Load Balancer執行個體的後端伺服器中包含專用網路執行個體,則該執行個體必須與伸縮組處於相同的專用網路下。
說明除以上情況外,伸縮組在關聯Server Load Balancer執行個體時不限制彼此的網路類型。
伸縮組中附加的Server Load Balancer執行個體個數必須少於伸縮組的配額。
移除Server Load Balancer執行個體
從伸縮組中移除Server Load Balancer執行個體時,需注意:
如果API DetachLoadBalancers中的請求參數ForceAttach為false,從伸縮組中移除Server Load Balancer執行個體時,系統不會從Server Load Balancer執行個體後端伺服器上移除與伸縮組關聯的執行個體。
如果API DetachLoadBalancers中的請求參數ForceAttach為true,從伸縮組中移除Server Load Balancer執行個體時,系統會將Server Load Balancer執行個體後端伺服器上與伸縮組關聯的執行個體移除。
調用Auto Scaling的DetachLoadBalancers介面最多支援一次從伸縮組移除5個Server Load Balancer執行個體。
如果移除伸縮組的Server Load Balancer執行個體時,您需要確認該Server Load Balancer執行個體不再向伸縮組內執行個體分發請求,避免造成服務要求丟失的情況。
操作步驟
您可以通過Auto Scaling控制台或者調用API的兩種方式來為伸縮組添加和移除Server Load Balancer執行個體,而採用API方式時,您無需提前考慮您的業務需求和所需Server Load Balancer執行個體數量,將Server Load Balancer執行個體與伸縮組的耦合程度降低,更加靈活地增強伸縮組的服務能力。
API方式
調用API AttachLoadBalancers可實現添加一個或多個Server Load Balancer執行個體的功能,更多資訊,請參見AttachLoadBalancers。您也可以調用API AttachVServerGroups添加Server Load Balancer執行個體下的一個或者多個虛擬伺服器組。更多資訊,請參見AttachVServerGroups。
調用API DetachLoadBalancers可實現移除一個或多個Server Load Balancer執行個體的功能,更多資訊,請參見DetachLoadBalancers。您也可以調用API DetachVServerGroups移除一個或者多個虛擬伺服器組。更多資訊,請參見DetachVServerGroups。
您也可以通過調用API參數為伸縮組添加或者移除應用型負載平衡ALB伺服器組,更多資訊,請參見AttachAlbServerGroups和DetachAlbServerGroups。
控制台方式
- 登入Auto Scaling控制台。
- 在左側導覽列中,單擊伸縮組管理。
- 在頂部功能表列處,選擇地區。
進入伸縮組關聯負載平衡的頁面。
建立伸縮組時關聯負載平衡
本步驟重點介紹關聯傳統型負載平衡CLB(原SLB)相關的操作,如需瞭解其他配置,請參見配置伸縮組。
單擊建立伸縮組。
選擇網路類型為專用網路或傳統網路。
配置關聯傳統型負載平衡CLB(原SLB)。
說明如果網路類型為專用網路時,在建立伸縮組頁面的專用網路參數後,先選擇一個專用網路,然後配置關聯負載平衡ALB、NLB伺服器組。
選擇傳統型負載平衡CLB(原SLB)執行個體。
一個伸縮組支援關聯的傳統型負載平衡CLB(原SLB)執行個體和虛擬伺服器組數量有限,您可以前往配額中心,查看或手動申請提升配額值。如果沒有出現可選的傳統型負載平衡CLB(原SLB)執行個體,請檢查您的傳統型負載平衡CLB(原SLB)執行個體是否滿足注意事項中的相關限制。
選擇負載平衡CLB(原SLB)執行個體的後端伺服器組。
伸縮組支援選擇預設伺服器組和虛擬伺服器組。更多資訊,請參見後端伺服器概述。
伺服器組
說明
預設伺服器組
用於接收前端請求的執行個體。如果監聽沒有設定虛擬伺服器組或主備伺服器組,預設將請求轉寄至預設伺服器組中的執行個體。
虛擬伺服器組
用於將不同的請求轉寄到不同的後端伺服器上,或通過網域名稱和URL進行請求轉寄。
伸縮組關聯負載平衡CLB(原SLB)執行個體後,您可以根據需要在建立伸縮組時指定執行個體加入負載平衡後端伺服器分組時的權重,也可以在建立伸縮配置時設定負載平衡權重參數來指定執行個體加入負載平衡後端伺服器分組時的權重。
情境1:建立伸縮組時,您可以指定執行個體加入負載平衡後端伺服器分組時的權重。
重要如果伸縮組的組內執行個體配置資訊來源選擇啟動模板方式,由於您無需再建立伸縮配置,您只能在建立伸縮組時指定執行個體加入負載平衡後端伺服器分組時的權重。
情境2:在建立伸縮配置時,您可以設定負載平衡權重參數來指定執行個體加入負載平衡後端伺服器分組時的權重。
不同情境(情境1和情境2)下指定執行個體加入負載平衡後端伺服器分組時的權重,對Auto Scaling的影響如下所示:
如果情境1和情境2下都指定了執行個體加入負載平衡後端伺服器分組時的權重,則Auto Scaling使用情境1中設定的權重而忽略情境二中設定的權重。
如果僅在情境2下指定負載平衡權重,則Auto Scaling使用情境2中設定的權重。
如果情境1和情境2下都未指定執行個體加入負載平衡後端伺服器分組時的權重,則Auto Scaling預設權重值為50。
根據需要配置其餘選項。
配置建立完成後,單擊確認。
修改伸縮組中關聯的負載平衡
本步驟重點介紹修改關聯的傳統型負載平衡CLB(原SLB)相關的操作,如需瞭解其他配置的修改,請參見修改伸縮組。
找到待操作的伸縮組,單擊對應操作列下的修改。
根據實際業務情況選擇是否選中掛載或卸載負載平衡時,將伸縮組現有的執行個體加入或移出負載平衡機器分組(只針對本次掛載或卸載的Server Load Balancer執行個體)。
說明如果在建立伸縮組時關聯了應用型負載平衡ALB伺服器組,則在修改伸縮組頁面,您也可以根據需要選擇是否掛載或卸載伺服器組時,將伸縮組現有的執行個體加入或移出伺服器組機器分組(只針對本次掛載或卸載的ALB伺服器組)。伺服器組執行個體掛載到伸縮組的同時,會將伸縮組內已有的執行個體加入到指定的伺服器組中;伺服器組執行個體從伸縮組卸載時,會將伸縮組內已有的執行個體從指定的伺服器組中移出。
選中:自動在本次掛載的負載平衡伺服器組中添加伸縮組現有的執行個體,或者自動在本次卸載的負載平衡伺服器組中移出伸縮組現有的執行個體。
不選中:本次掛載或卸載的負載平衡伺服器組不發生變化,維持原樣。
根據實際業務情況選擇是否選中非同步卸載或掛載預設伺服器組。
選中:每一次單獨掛載或卸載負載平衡預設伺服器組時,都會產生一個伸縮活動。僅支援單獨掛載或單獨卸載負載平衡預設伺服器組,如果掛載和卸載負載平衡預設伺服器組同時進行時此選項將會無效)。
不選中:每一次單獨掛載或卸載負載平衡預設伺服器組時,不會產生一個伸縮活動。
可選:根據實際業務情況修改執行個體加入負載平衡後端伺服器分組時的權重。
如果您在建立伸縮組時關聯負載平衡CLB(原SLB)執行個體,並設定了執行個體加入負載平衡後端伺服器分組時的權重,則您可以根據需要修改該權重。
根據需要修改其餘配置選項。
配置修改完成後,單擊確認。
相關文檔
伸縮組關聯RDS資料庫執行個體後,加入伸縮組的ECS執行個體的內網IP會自動加入RDS資料庫執行個體的訪問白名單,允許ECS執行個體和RDS資料庫執行個體內網通訊。具體操作,請參見為伸縮組添加和移除RDS執行個體。