應用型負載平衡ALB(Application Load Balancer)相比傳統型負載平衡CLB(Classic Load Balancer),具有強大的七層負載平衡處理能力與豐富的進階路由功能,具備大規模應用程式層流量處理能力,可以一鍵開啟WAF應用防護,轉寄與防護完全解耦。且支援更多高階功能,讓您擁有更好的負載平衡體驗。本文為您介紹如何將CLB七層監聽手動遷移至ALB。
情境樣本
本文以下圖情境為例。某企業在阿里雲華東1(杭州)地區已購買了一個公網CLB執行個體,該CLB執行個體已配置重新導向、網域名稱和路徑的轉寄策略,且對外通過DNS網域名稱提供服務。用戶端訪問網域名稱www.example.net
時,DNS解析會根據A記錄配置將流量指向CLB執行個體,CLB執行個體根據轉寄策略將流量轉寄到ECS01和ECS02處理。
由於業務發展需要,該企業需要將CLB執行個體的業務遷移至ALB執行個體。為了保持業務穩定,希望不改變對外提供服務的DNS網域名稱及後端伺服器的IP地址。企業可以通過在華東1(杭州)地區新購一個ALB執行個體並完成相關配置,使ALB轉寄規則提供的能力與CLB轉寄策略一致,然後利用DNS網域名稱解析的權重設定完成流量的遷移。
注意事項
前提條件
待遷移的CLB執行個體已配置監聽和後端伺服器,且該CLB執行個體已設定A記錄網域名稱解析,對外通過網域名稱提供服務。具體操作,請參見入門概述。
待遷移的CLB執行個體的後端伺服器為ECS01和ECS02,且ECS01和ECS02所屬專用網路為VPC1。
待遷移的CLB執行個體已配置重新導向和轉寄策略。具體操作請參見使用CLB將HTTP訪問重新導向至HTTPS和基於網域名稱或URL路徑進行轉寄。
您已在VPC1中建立了Elastic Compute Service03和ECS04,ECS03用於進行遷移前的流量測試,ECS04用於驗證遷移時的訪問流量,且ECS04已安裝dig命令。
遷移步驟
步驟一:建立ALB執行個體
- 登入應用型負載平衡ALB控制台。
在執行個體頁面,單擊建立應用型負載平衡。
在應用型負載平衡(隨用隨付)國際站購買頁面,完成以下配置。
配置
說明
地區
選擇ALB執行個體所屬的地區,需與待遷移CLB執行個體所屬的地區相同。本文選擇華東1(杭州)。
執行個體網路類型
選擇執行個體網路類型,系統會根據您的選擇分配私網或公網服務地址。執行個體網路類型需與待遷移CLB執行個體相同。本文選擇公網。
私網:ALB只有私網IP地址,只能被ALB所在VPC內的資源訪問,無法從互連網訪問。
公網:ALB具有公網IP和私網IP地址。公網ALB預設通過Elastic IP Address(Elastic IP Address,簡稱EIP)提供公網能力,選擇公網將會收取Elastic IP Address的執行個體費、流量費用。
公網IP:Elastic IP Address對外提供服務,支援通過互連網訪問ALB。
私網IP:支援雲上VPC內的資源訪問ALB。
ALB支援變更執行個體網路類型。具體操作,請參見變更ALB執行個體的網路類型。
說明對於雙棧執行個體,預設使用IPv4地址對外提供公網服務。如果您需要使用IPv6公網地址,需要變更網路類型,同時會產生IPv6網關費用,更多資訊,請參見IPv6網關計費說明。
VPC
選擇待遷移CLB執行個體後端伺服器所在的VPC。本文選擇VPC1。
可用性區域
選擇可用性區域和交換器。
ALB支援多可用性區域部署,若當前地區支援2個及2個以上的可用性區域,為保障業務高可用,請至少選擇2個可用性區域,且ALB不會額外收取可用性區域的費用。
分別在所選可用性區域內選擇交換器,如果可用性區域下無交換器,請根據控制台提示建立交換器。
可選:分別在所選可用性區域內選擇EIP。
如果無可用存量EIP,可保持預設選項自動分配公網IP:系統將幫您自動建立隨用隨付(按使用流量計費)的BGP多線預設安全防護EIP,並綁定至ALB執行個體。
選擇已有的EIP:您可以指定已建立的EIP並綁定至新購的ALB執行個體上。
說明僅可綁定暫未加入共用頻寬的隨用隨付(按使用流量計費)的已購EIP。
同一個ALB執行個體不同可用性區域分配的EIP類型需保持一致。
IP模式
選擇執行個體的IP地址模式。
固定IP:每個可用性區域有且只有一個IP,並且IP地址保持固定不變。此模式下執行個體彈效能力有限,最大支援10萬QPS。
動態IP:每個可用性區域至少有一個IP,隨著業務請求的增加,會自動擴充IP數量。此模式下最大支援100萬QPS。
協議版本
選擇執行個體的協議版本。IPv4的CLB執行個體可以遷移至IPv4或雙棧的ALB執行個體,IPv6的CLB執行個體僅支援遷移至雙棧ALB執行個體。您可以根據實際情況選擇協議版本。
IPv4:表示ALB執行個體僅支援用戶端使用IPv4地址訪問。
雙棧:表示ALB執行個體支援用戶端同時使用IPv4和IPv6地址訪問。雙棧使用限制,請參見協議版本。
功能版本(執行個體費)
選擇執行個體的功能版本。
基礎版:包含應用型負載平衡的準系統,可支援基於網域名稱、URL、HTTP Header等路由轉寄。
標準版:在基礎版的功能基礎上,還包含自訂TLS安全性原則,重新導向、重寫等進階路由功能。
WAF增強版:在標準版的功能基礎上增加WAF安全防護功能,選擇此功能後ALB執行個體上配置監聽的Web業務流量自動接入到WAF 3.0防護。WAF增強版使用限制,請參見ALB WAF增強版的使用限制。
關於基礎版、標準版、WAF增強版功能差異的更多資訊,請參見功能特性。
加入共用頻寬
未加入共用頻寬時,單ALB執行個體(雙可用性區域)預設公網頻寬峰值為400 Mbps。
如需更大頻寬,請選擇加入共用頻寬。如選中加入共用頻寬,則需選擇共用頻寬包,如果沒有可選共用頻寬包,可單擊購買共用頻寬包並完成購買,然後返回ALB購買頁面單擊表徵圖,即可選擇共用頻寬包。
建議您購買後付費共用頻寬,關於如何購買共用頻寬,請參見建立共用頻寬執行個體。
說明該參數僅在執行個體網路類型為公網時有效。
公網計費方式
公網計費方式預設選項為按流量計費。按流量計費方式中頻寬峰值不作為業務承諾指標,僅作為參考值和頻寬上限峰值。當出現資源爭搶時,頻寬峰值可能會受到限制。關於彈性公網網路費計費說明,請參見Elastic IP Address計費。
說明該參數僅在執行個體網路類型為公網,並且未選擇加入共用頻寬時有效。
執行個體名稱
輸入自訂執行個體名稱。
資源群組
選擇ALB所屬的資源群組。
關聯角色建立須知
首次購買應用型負載平衡時您需要單擊建立建立一個服務關聯角色,允許應用型負載平衡訪問您的彈性網卡,安全性群組,Elastic IP Address,共用頻寬包等產品服務。更多資訊,請參見ALB服務關聯角色。
說明該參數僅在首次建立ALB時展示。
單擊立即購買,然後根據控制台提示完成執行個體開通。
步驟二:建立ALB伺服器組
- 登入應用型負載平衡ALB控制台。
在頂部功能表列處,選擇ALB執行個體所屬的地區。本文選擇華東1(杭州)。
在左側導覽列,選擇 。
在伺服器組頁面,單擊建立伺服器組。
在建立伺服器組對話方塊,完成以下配置,然後單擊建立。
配置
說明
伺服器群組類型
選擇一種伺服器群組類型。本文選擇伺服器類型。
伺服器組名稱
輸入自訂伺服器組名稱。本文輸入RS1。
VPC
從VPC下拉式清單中選擇一個VPC,只有該VPC下的伺服器可以加入到該伺服器組。本文選擇待遷移CLB執行個體後端伺服器所屬的VPC1。
選擇後端協議
選擇一種後端協議。本文選擇HTTP。
選擇調度演算法
選擇一種調度演算法。本文選擇加權輪詢。
選擇資源群組
選擇雲資源歸屬的資源群組。
開啟IPv6掛載
選擇是否需要開啟IPv6掛載功能。本文保持預設配置,即不開啟IPv6掛載。
開啟會話保持
開啟或關閉會話保持。本文保持預設配置,即不開啟會話保持。
是否開啟後端長串連
選擇是否需要開啟後端長串連,本文保持預設配置,即開啟後端長串連。
配置健全狀態檢查
開啟或關閉健全狀態檢查。本文保持預設配置,即開啟健全狀態檢查。
進階配置
本文保持預設配置。
在彈出的對話方塊中,單擊添加後端伺服器,在後端伺服器頁簽,單擊添加後端伺服器。
在添加後端伺服器面板,選擇與待遷移CLB執行個體相同的後端伺服器,然後單擊下一步。
本文選擇ECS01和ECS02。
在配置連接埠和權重設定精靈,設定ECS的連接埠和權重,然後單擊確定。
本文連接埠配置為80,權重保持預設值100。
說明ALB執行個體動態IP模式最高提供100萬QPS,標準版ALB執行個體最多可掛載1000台後端伺服器。為了應對業務突增或者指定時間段的波峰,您可以使用Auto Scaling為ALB自動添加或移除後端伺服器,有效控製成本。
步驟三:ALB執行個體配置監聽
本文以為ALB執行個體配置重新導向、網域名稱和路徑的轉寄規則為例進行介紹。
CLB配置了HTTP重新導向,ALB的HTTP監聽也需配置重新導向轉寄規則。
CLB配置了網域名稱和路徑的轉寄策略,ALB也需要佈建網域名和路徑的轉寄規則,且需與CLB實現的功能一致。
添加HTTP和HTTPS監聽
- 登入應用型負載平衡ALB控制台。
在頂部功能表列處,選擇ALB執行個體所屬的地區。本文選擇華東1(杭州)。
選擇以下一種方法,開啟監聽設定精靈。
在執行個體頁面,在目標執行個體操作列單擊建立監聽。
在執行個體頁面,單擊目標執行個體ID。在監聽頁簽,單擊建立監聽。
在配置監聽設定精靈,完成以下配置,然後單擊下一步完成HTTP監聽的配置。
監聽配置
說明
選擇監聽協議
選擇監聽的協議類型。
本文選擇HTTP。
監聽連接埠
輸入用來接收請求並向後端伺服器進行請求轉寄的監聽連接埠,連接埠範圍為1~65535。 通常HTTP協議使用80連接埠,HTTPS協議使用443連接埠。
說明在同一個Server Load Balancer執行個體內,監聽連接埠不可重複。
本文輸入80。
監聽名稱
輸入監聽名稱。
進階配置
單擊修改展開進階配置。本文保持預設配置。
在選擇伺服器組設定精靈,選擇伺服器類型的伺服器組,查看後端伺服器資訊,然後單擊下一步。
本文選擇伺服器組RS1。
在組態稽核設定精靈,確認配置資訊,然後單擊提交。
請參見添加HTTPS監聽完成HTTPS監聽的配置。
此處僅列出與本文強相關的配置項:
選擇監聽協議:選擇HTTPS。
監聽連接埠:輸入443。
配置重新導向
為ALB執行個體的HTTP監聽配置重新導向轉寄規則,將訪問ALB的所有HTTP請求均重新導向至HTTPS的443連接埠。
在監聽頁簽,單擊已建立的HTTP監聽ID。在監聽詳情頁,單擊轉寄規則頁簽。
在轉寄規則頁簽,單擊插入新規則。
在插入轉寄規則地區,完成以下參數的配置,然後單擊確定。
配置
說明
如果(條件全部匹配)
在下拉框中選擇路徑及精準匹配及萬用字元,本文輸入
/*
。那麼轉寄動作是
在下拉框中選擇重新導向,參數配置如下。
協議:本文選擇HTTPS。
網域名稱:本文使用預設值${host}。
連接埠:輸入您已建立的HTTPS協議監聽連接埠。本文輸入443。
路徑:本文使用預設值${path}。
查詢:本文使用預設值${query}。
狀態代碼:本文選擇301。
佈建網域名和路徑轉寄
為ALB執行個體的HTTPS監聽佈建網域名和路徑的轉寄規則。
返回監聽頁簽,單擊已建立的HTTPS監聽ID。在監聽詳情頁,單擊轉寄規則頁簽。
在轉寄規則頁簽,單擊插入新規則。
在插入轉寄規則地區,完成以下參數的配置,然後單擊確定。
配置
說明
如果(條件全部匹配)
在下拉框中選擇網域名稱及精準匹配及萬用字元,本文輸入
www.example.net
。單擊添加轉寄條件,在下拉框中選擇路徑,本文輸入/home*。
那麼轉寄動作是
選擇轉寄至伺服器類型的伺服器組。本文選擇伺服器組RS1。
說明此處選擇的伺服器組中的後端伺服器,需與待遷移CLB執行個體轉寄策略中虛擬伺服器組的後端伺服器保持一致。
步驟四:測試流量
開啟訪問日誌
ALB聯合Log Service(SLS)推出了訪問日誌功能,您可以通過訪問日誌監控ALB執行個體的負載情況和定位問題。
- 登入應用型負載平衡ALB控制台。
在頂部功能表列處,選擇ALB執行個體所屬的地區。本文選擇華東1(杭州)。
在執行個體頁面,找到目標ALB執行個體,單擊執行個體ID。
在執行個體詳情頁,單擊訪問日誌頁簽。在訪問日誌頁簽,單擊建立訪問日誌。
在建立訪問日誌對話方塊,配置專案Project和日誌庫Logstore,然後單擊確定,在彈出的對話方塊中確認提示資訊後,再次單擊確定。
配置
說明
專案Project
Log Service中的資源嵌入式管理單元,用於資源隔離和控制。
選擇現有Project:在下拉框中選擇一個Project。
建立Project:在文字框中輸入建立Project名稱。
日誌庫Logstore
Log Service中日誌資料的採集、儲存和查詢單元。
選擇現有Logstore:在下拉框中選擇一個Logstore。
建立Logstore:在文字框中輸入建立Logstore名稱。Project選擇建立時,Logstore也需選擇建立。
服務關聯角色建立須知
執行此操作時,將會為您自動建立一個服務關聯角色,以完成相應功能。
流量測試
遠程登入ECS03,具體操作,請參見ECS遠端連線操作指南。
執行以下命令修改hosts檔案。
sudo vi /etc/hosts
進入hosts檔案中,新增以下ALB執行個體的IP地址及網域名稱。修改完成後,儲存並退出該檔案的修改。
118.XX.XX.39 www.example.net
執行以下命令,測試重新導向配置。
curl -X GET -L -v http://www.example.net
運行結果如下圖所示:
返回ALB控制台,找到目標ALB執行個體的訪問日誌頁簽,單擊SLS日誌儲存右側的連結,查看訪問日誌。
在Log Service控制台,您可以結合request_uri、http_host、upstream_addr、status欄位查看ALB網域名稱和路徑轉寄策略的作業記錄。
步驟五:遷移流量至ALB
本文假設CLB的訪問鏈路如下圖所示。已配置HTTP:80重新導向至HTTPS:443,HTTPS支援多網域名稱訪問,本文配置的網域名稱為example.net。
流量遷移前,請比對您的CLB轉寄策略和ALB轉寄規則的配置,確保二者提供的能力完全一致,且所有配置經過完備的測實驗收,以免在遷移過程中對您的業務產生非預期的影響。
建議在業務低穀期進行CLB流量的遷移。
流量遷移前,待遷移的CLB執行個體已佈建網域名解析,您已將業務網域名稱通過A記錄解析的方式指向CLB執行個體的服務地址。
在完成ALB執行個體配置的驗收後,本文以阿里雲Alibaba Cloud DNS為例,為您介紹CLB流量遷移至ALB的操作步驟。您可以通過以下步驟完成流量的遷移。關於阿里雲Alibaba Cloud DNS的介紹,請參見公網權威解析。
第一步:CLB執行個體配置臨時網域名稱
ALB執行個體推薦使用CNAME解析,為滿足網域名稱權重配置的啟用條件,您需要為臨時網域名稱添加一條CNAME解析記錄,同時將該臨時網域名稱指向待切換CLB執行個體的服務地址。
權重配置的啟用條件是網域名稱下存在相同的主機記錄、相同解析線路的多條A記錄、CNAME記錄、AAAA記錄。
登入網域名稱解析控制台。
在網域名稱解析頁面,找到指向待遷移CLB執行個體的DNS網域名稱
www.example.net
,單擊該網域名稱。在解析設定頁面,單擊添加記錄,在添加記錄面板,完成以下參數的配置,然後單擊確認。
配置
說明
記錄類型
在下拉式清單中選擇CNAME。
主機記錄
您的網域名稱的首碼。本文輸入www。
解析請求來源
選擇預設。
記錄值
輸入臨時網域名稱,本文輸入web0.example.net。
TTL
全稱Time To Live,表示DNS記錄在DNS伺服器上的緩衝時間,本文設定為5秒。
本文使用的是企業旗艦版Alibaba Cloud DNS,為方便驗證將TTL設定為5秒。您可以根據實際情況進行設定,更多資訊,請參見版本對比。
在解析設定頁面,找到指向待遷移CLB執行個體服務地址的A記錄,在操作列單擊修改。
在彈出的修改記錄面板,修改主機記錄,然後單擊確認。本文修改主機記錄為web0,其餘參數保持不變。
第二步:ALB執行個體添加CNAME解析
在頂部功能表列,選擇ALB執行個體所屬的地區。本文選擇華東1(杭州)。
找到目標ALB執行個體,複製其對應的DNS名稱。
完成以下步驟添加CNAME解析記錄。
登入網域名稱解析控制台。
在目標網域名稱的操作列單擊解析設定。這裡目標網域名稱為CLB執行個體綁定的網域名稱。
在解析設定頁面單擊添加記錄。
在添加記錄面板配置以下資訊完成CNAME解析配置,然後單擊確認。
配置
說明
記錄類型
在下拉式清單中選擇CNAME。
主機記錄
您的網域名稱的首碼。本文輸入www
解析請求來源
選擇預設。
記錄值
輸入欄位名對應的CNAME地址,即您複製的ALB執行個體的DNS網域名稱。
TTL
全稱Time To Live,表示DNS記錄在DNS伺服器上的緩衝時間,本文設定為5秒。
本文使用的是企業旗艦版Alibaba Cloud DNS,為方便驗證將TTL設定為5秒。您可以根據實際情況進行設定,更多資訊,請參見版本對比。
說明新增CNAME記錄即時生效,修改CNAME記錄取決於本地DNS緩衝的解析記錄的TTL到期時間,一般預設為10分鐘。
添加時如遇添加衝突,請換一個解析網域名稱。
第三步:設定權重,開始流量灰階
在網域名稱解析頁面,單擊目標網域名稱,在解析設定頁面, 單擊左側導覽列的權重配置。
在權重配置頁面,在操作列單擊開啟權重,然後單擊設定權重。
權重配置的啟用條件是網域名稱下存在相同的主機記錄、相同解析線路的多條A記錄、CNAME記錄、AAAA記錄。
在設定權重面板,分別為CLB和ALB執行個體的解析記錄設定權重。將CLB執行個體對應的解析記錄的權重設定為100,同時將ALB執行個體對應的解析記錄的權重設定為0。
在觀察業務沒有影響的情況下,逐步減小CLB執行個體解析記錄的權重值,同時逐步增加ALB執行個體解析記錄的權重值。
登入ECS04執行個體,多次執行
dig
命令,驗證流量遷移效果。dig www.example.net
運行結果如下圖所示。您可以通過多次運行結果觀察到,請求會根據權重分配至ALB或CLB處理。
第四步:完成流量遷移
根據流量遷移的驗證結果,逐步將CLB執行個體解析記錄的權重值減小至0,同時逐步增加ALB執行個體解析記錄的權重值至100。至此,您已完成CLB執行個體流量至ALB執行個體的遷移,當CLB執行個體長串連全部處理完成,且CLB執行個體沒有新增流量時,您可以根據業務情境靜默觀察一段時間後釋放該CLB執行個體。關於如何釋放CLB執行個體,請參見釋放執行個體。
遷移完成後,本文中ALB的訪問鏈路如下圖所示:
高階功能
負載平衡產品ALB是對CLB七層負載平衡能力的一次升級,在某些特性的具體表現形式上有一些差異。您可以通過以下文檔更好地瞭解ALB執行個體、配額限制、快速入門及DDoS防護:
關於ALB執行個體概述,請參見ALB執行個體概述。
關於ALB配額限制,請參見ALB使用限制。
關於ALB快速入門, 請參見ALB快速實現IPv4服務的負載平衡和ALB快速實現IPv6服務的負載平衡。
ALB預設提供基礎的DDoS防護能力。更多資訊,請參見什麼是DDoS原生防護。
下表列出了CLB和ALB一些高階功能的差異:
功能 | CLB | ALB |
伺服器組 | 支援預設伺服器組、虛擬伺服器組和主備伺服器組。 | 統稱為伺服器組。 |
將HTTP訪問重新導向至HTTPS | 在建立監聽時選擇重新導向,配置方式請參見使用CLB將HTTP訪問重新導向至HTTPS。 | 通過轉寄規則實現重新導向,配置方式請參見使用ALB將HTTP訪問重新導向至HTTPS。 |
為HTTPS監聽掛載多個認證 | 配置方式請參見單CLB執行個體配置多網域名稱HTTPS網站。 | 配置方式請參見單ALB執行個體配置多網域名稱HTTPS網站。 |
部署HTTPS業務(單向認證) | 支援阿里雲簽發的認證和上傳非阿里雲簽發的認證,配置方式請參見使用CLB部署HTTPS業務(單向認證) 。 | 通過數位憑證管理服務實現認證管理,配置方式請參見配置全鏈路HTTPS訪問實現加密通訊。 |
部署HTTPS業務(雙向認證) | 支援阿里雲簽發的CA認證和上傳非阿里雲簽發的CA認證。配置方式請參見使用CLB部署HTTPS業務(雙向認證)。 | 支援阿里雲簽發的CA認證,通過數位憑證管理服務實現認證管理。配置方式請參見使用ALB部署HTTPS業務(雙向認證)。 |
WAF防護 | 支援WAF透明化接入和CNAME接入。配置方式請參見為七層CLB(HTTP/HTTPS)開啟WAF防護和添加網域名稱。 | 支援服務化接入、透明化接入和CNAME接入。
|
常見問題
遷移前後,CLB執行個體和ALB執行個體的哪些配置需要保持一致?
地區、網路類型、監聽協議、後端伺服器等需保持一致。ALB執行個體所屬VPC需與CLB執行個體的後端伺服器所屬VPC保持一致,可用性區域無需保持一致。
CLB和ALB使用的認證有哪些差異?
CLB和ALB均支援HTTPS協議的加密傳輸,相對於CLB原生支援上傳阿里雲簽發和非阿里雲簽發認證;ALB使用的認證依賴數位憑證管理服務提供的能力,由阿里雲認證中心管理。
對於CLB執行個體,認證上傳的相關操作請參見上傳認證。
對於ALB執行個體,認證上傳相關的操作請參見購買SSL認證和上傳和共用SSL認證。
CLB和ALB存取控制有哪些差異?
CLB和ALB的網域名稱解析有哪些差異?
CLB執行個體需要通過A記錄解析的方式,將自訂網域名指向CLB的服務地址。
對於ALB執行個體:
建議您使用CNAME解析的方式將自訂網域名指向到ALB執行個體的DNS名稱,使您更方便訪問網路資源。
如果您的自訂網域名需要解析到固定IP地址,建議您使用固定IP模式的ALB,通過A記錄解析的方式將自訂網域名解析至ALB提供的IP地址。