相比於傳統型負載平衡CLB(Classic Load Balancer), 網路型負載平衡NLB(Network Load Balancer )具有超高效能的四層負載平衡處理能力,可以同時處理海量並發串連,提供TCPSSL卸載、串連限速等能力。當您的業務在持續增長,同時對功能、效能、穩定性和彈性有更高要求時,您可以將CLB四層監聽流量手動遷移至NLB執行個體,來輕鬆應對高並發業務。
關鍵特性
當您將CLB執行個體的流量遷移至NLB執行個體時,NLB提供的以下關鍵特性可以滿足您的業務情境:
高並發處理能力:單一實例最大支援1億並發串連和100 Gbps頻寬,能夠輕鬆應對面向物聯網海量串連的高並發情境。
自動彈性擴充:您無需指定或手動調整NLB的執行個體規格,執行個體效能會隨著您的業務增減自動Auto Scaling。
全連接埠監聽:NLB支援全連接埠監聽功能,可以監控並處理一個連接埠段範圍內的所有網路流量。適合需要監聽大量連接埠或動態連接埠的情境。
豐富的IPv6能力:NLB支援更豐富的IPv6能力,滿足雙棧、6to4/6to6等多情境的訴求。
應用情境
當您的業務處於以下應用情境時,您可以將CLB執行個體流量遷移至NLB執行個體:
需要處理海量並發串連,如即時通訊、物聯網裝置管理等情境。
需要根據突發流量高峰自動調整資源,如電商大促等流量波動較大的情境。
需要使用大範圍的連接埠來處理不同情境下的資料,如線上遊戲、視頻會議系統、線上教育平台的情境。
需要擴充網路資源,將業務從IPv4向IPv6改造或者過渡的情境。
情境樣本
本文以下圖情境為例。某企業在阿里雲華東1(杭州)地區已購買了一個公網CLB執行個體,該CLB執行個體已配置TCP監聽,且對外通過DNS網域名稱提供服務。用戶端訪問網域名稱www.example.cn
時,DNS解析會根據A記錄配置將流量指向CLB執行個體,CLB執行個體根據調度演算法定義的轉寄策略將流量轉寄到ECS01和ECS02處理。
由於業務發展需要,該企業需要接入物聯網業務,需要將CLB執行個體的業務遷移至NLB執行個體。為了保持業務穩定,希望不改變對外提供服務的DNS網域名稱及後端伺服器的IP地址。企業可以通過在華東1(杭州)地區新購一個NLB執行個體並完成相關配置,使NLB的執行個體配置與CLB的執行個體配置一致,然後利用DNS網域名稱解析的權重設定完成流量的遷移。
注意事項
前提條件
待遷移的CLB執行個體已配置TCP監聽和後端伺服器,且該CLB執行個體已設定A記錄網域名稱解析,對外通過網域名稱提供服務。具體操作,請參見入門概述。
您已建立承載業務應用的後端伺服器ECS01和ECS02,且均已部署應用樣本。建立ECS執行個體的更多操作,請參見自訂購買執行個體。
說明若您的CLB執行個體配置UDP監聽,將CLB的流量遷移至NLB執行個體時,NLB執行個體也需要配置UDP監聽協議。
您需要準備兩台測試伺服器,一台用於測試遷移前流量,一台用於驗證遷移時的訪問流量。如果您已有測試伺服器,則無需建立。本文用於測試的兩台伺服器均已安裝Alibaba Cloud Linux 3.2104 64位作業系統。
本文ECS01和ECS02部署測試應用樣本如下:
步驟一:建立NLB執行個體
- 登入網路型負載平衡NLB控制台。
在頂部功能表列,選擇NLB執行個體所屬的地區。
在執行個體頁面,單擊建立網路型負載平衡。
在網路型負載平衡(隨用隨付)國際站購買頁面,完成以下配置(未列舉的參數保持預設值),然後單擊立即購買,根據控制台提示完成執行個體購買。
配置
說明
地區
選擇執行個體所屬的地區。本文選擇華東1(杭州)。
執行個體網路類型
選擇執行個體網路類型,本文選擇公網。
說明若您選擇私網情境,使用雙VIP配置的NLB執行個體可提供10 Gbps的私網處理能力,支援每秒10萬建立串連和150萬並發串連。此外,NLB還具備自動彈性擴充能力,能夠根據流量需求擴充至50 Gbps。
協議版本
選擇執行個體的協議版本。本文選擇IPv4。
VPC
選擇執行個體所屬的VPC。
可用性區域
選擇可用性區域和交換器。本文選擇杭州 可用性區域H、杭州 可用性區域I及其可用性區域。
加入共用頻寬
本文勾選加入共用頻寬,並選擇共用頻寬包。如果沒有共用頻寬包,可單擊購買共用頻寬包並完成購買。
說明若您的業務情境為公網大流量業務:
您可以選擇綁定自己的共用頻寬包。綁定共用頻寬包後,執行個體的頻寬峰值以共用頻寬包的頻寬峰值為準。
如果未綁定共用頻寬包,系統預設使用隨用隨付的Elastic IP Address(Elastic IP Address,簡稱EIP)。此時NLB公網執行個體的最大頻寬峰值為400 Mbps(頻寬峰值不作為業務承諾指標,僅作為參考值和頻寬上限峰值)。
您也可以在購買NLB公網執行個體後,將其加入共用頻寬包,具體操作,請參見調整公網NLB執行個體頻寬峰值。
步驟二:建立NLB伺服器組
- 登入網路型負載平衡NLB控制台。
在頂部功能表列,選擇NLB執行個體所屬的地區。
在左側導覽列,選擇 。
在伺服器組頁面,單擊建立伺服器組。
在建立伺服器組對話方塊,完成以下配置(未列舉的參數保持預設值),然後單擊建立。
配置
說明
伺服器群組類型
選擇伺服器組的類型。本文選擇伺服器類型。
伺服器組名稱
輸入自訂名稱。
VPC
從VPC下拉式清單中選擇NLB所在VPC,只有該VPC下的伺服器可以加入到該伺服器組。
選擇後端協議
選擇後端協議,本文選擇TCP。
配置健全狀態檢查
開啟健全狀態檢查,健全狀態檢查保持預設配置。
待伺服器組建立成功後,單擊其執行個體ID,然後單擊後端伺服器頁簽。
單擊添加後端伺服器,在添加後端伺服器面板,選擇ECS01和ECS02,單擊下一步。
在配置連接埠和權重設定精靈,連接埠輸入
80
,權重保持預設值,然後單擊確定。
步驟三:建立TCP監聽
- 登入網路型負載平衡NLB控制台。
在頂部功能表列,選擇NLB執行個體所屬的地區。
在執行個體頁面,單擊目標執行個體ID。
單擊監聽頁簽,然後單擊快速建立監聽。
在快速建立監聽對話方塊,配置以下參數,然後單擊確定。
配置
說明
選擇監聽協議
本文選擇TCP。
監聽連接埠
本文輸入
80
。轉寄的後端伺服器組
本文選擇伺服器類型及步驟二建立的伺服器組。
步驟四:測試流量
登入用於測試流量的公網Linux伺服器,測試遷移前NLB的流量。
執行以下命令編輯hosts檔案。
sudo vi /etc/hosts
按
i
鍵切換至編輯模式,新增以下一條NLB執行個體的IP地址和網域名稱映射關係的記錄。
47.XX.XX.101 www.example.cn
修改完成後,按下
Esc
鍵,輸入:wq
並斷行符號以儲存並關閉設定檔。
說明通過該步驟可以實現將
www.example.cn
網域名稱解析到NLB執行個體的指定彈性公網 IP(47.XX.XX.101),並覆蓋原有的 CLB 網域名稱解析。在遷移流量之前,您需要測試該網域名稱是否可以成功訪問 NLB 執行個體。執行以下命令測試網域名稱是否可以訪問NLB執行個體。如果未安裝telnet,執行
yum install -y telnet
命令安裝telnet。telnet www.example.cn 80 # TCP監聽連接埠80
收到回複報文Connected to nlb-...,則表示NLB可以將請求轉寄至後端伺服器。
查看NLB的動作記錄。
- 登入網路型負載平衡NLB控制台。
在左側導覽列,選擇
。在動作記錄頁面,可以篩選事件名稱為GetLoadBalancerAttribute的事件,單擊查詢。
單擊目標事件前的表徵圖,然後單擊事件詳情,可以通過
requestParameterJson
和LoadBalancerId
欄位查看NLB執行個體的作業記錄資訊。
步驟五:遷移流量至NLB
本文假設CLB的訪問鏈路如下圖所示。CLB已配置TCP監聽,且支援多網域名稱訪問。本文配置的網域名稱為example.cn
。
流量遷移前,請比對您的CLB執行個體配置和NLB執行個體配置,確保二者提供的能力完全一致,且所有配置經過完備的測實驗收,以免在遷移過程中對您的業務產生非預期的影響。
建議在業務低穀期進行CLB流量的遷移。
流量遷移前,待遷移的CLB執行個體已佈建網域名解析,您已將業務網域名稱通過A記錄解析的方式指向CLB執行個體的服務地址。
在完成NLB執行個體配置的驗收後,本文以阿里雲Alibaba Cloud DNS為例,為您介紹CLB流量遷移至NLB的操作步驟。您可以通過以下步驟完成流量的遷移。關於阿里雲Alibaba Cloud DNS的介紹,請參見公網權威解析。
第一步:CLB執行個體配置臨時網域名稱
推薦為NLB執行個體配置CNAME解析,為滿足網域名稱權重配置的啟用條件,您需要為臨時網域名稱添加一條CNAME解析記錄,同時將該臨時網域名稱指向待切換CLB執行個體的服務地址。
權重配置的啟用條件是網域名稱下存在相同的主機記錄、相同解析線路的多條A記錄、CNAME記錄、AAAA記錄。
登入網域名稱解析控制台。
在權威網域名稱解析頁面,找到指向待遷移CLB執行個體的DNS網域名稱
www.example.cn
,單擊該網域名稱執行個體ID。在解析設定頁簽,單擊添加記錄,在添加記錄面板,完成以下參數配置,然後單擊確定。
配置
說明
記錄類型
在下拉式清單中選擇CNAME。
主機記錄
您的網域名稱的首碼。本文輸入www。
解析請求來源
選擇預設。
記錄值
輸入臨時網域名稱,本文輸入web0.example.cn。
TTL
全稱Time To Live,表示DNS記錄在DNS伺服器上的緩衝時間,本文使用預設值。
在解析設定頁簽,找到指向待遷移CLB執行個體服務地址的A記錄,在操作列單擊修改。
在彈出的修改記錄面板,修改主機記錄,然後單擊確定。本文修改主機記錄為web0,其餘參數保持不變。
第二步:NLB執行個體添加CNAME解析
您也可以為NLB執行個體添加A記錄,將DNS網域名稱解析到某個可用性區域的VIP。
- 登入網路型負載平衡NLB控制台。
在頂部功能表列,選擇NLB執行個體所屬的地區,本文選擇華東1(杭州)。
找到目標NLB執行個體,複製其對應的DNS名稱。
完成以下步驟添加CNAME解析記錄。
登入網域名稱解析控制台。
在目標網域名稱的操作列單擊解析設定。這裡目標網域名稱為CLB執行個體綁定的網域名稱。
在解析設定頁面單擊添加記錄。
在添加記錄面板配置以下資訊完成CNAME解析配置,然後單擊確定。
配置
說明
記錄類型
在下拉式清單中選擇CNAME。
主機記錄
您的網域名稱的首碼。本文輸入www
解析請求來源
選擇預設。
記錄值
輸入欄位名對應的CNAME地址,即您複製的NLB執行個體的DNS網域名稱。
TTL
全稱Time To Live,表示DNS記錄在DNS伺服器上的緩衝時間,本文使用預設值。
說明新增CNAME記錄即時生效,修改CNAME記錄取決於本地DNS緩衝的解析記錄的TTL到期時間,預設一般為10分鐘。
添加時如遇添加衝突,請換一個解析網域名稱。
第三步:設定權重,開始流量灰階
在權威網域名稱解析頁面,單擊目標網域名稱執行個體ID。
單擊權重配置頁簽,找到目標網域名稱,在操作列單擊設定權重。
權重配置的啟用條件是網域名稱下存在相同的主機記錄、相同解析線路的多條A記錄、CNAME記錄、AAAA記錄。
在設定權重面板,分別為CLB和NLB執行個體的解析記錄設定權重。將CLB執行個體對應的解析記錄的權重設定為100,同時將NLB執行個體對應的解析記錄的權重設定為0。
在觀察業務沒有影響的情況下,逐步減小CLB執行個體解析記錄的權重值,同時逐步增加NLB執行個體解析記錄的權重值。
登入用於遷移流量的Linux用戶端,多次執行
dig
命令,驗證流量遷移效果。dig www.example.cn
運行結果如下圖所示。您可以通過多次運行結果觀察到,請求會根據權重分配至CLB或NLB處理。
第四步:完成流量遷移
根據流量遷移的驗證結果,逐步將CLB執行個體解析記錄的權重值減小至0,同時逐步增加NLB執行個體解析記錄的權重值至100。至此,您已完成CLB執行個體流量至NLB執行個體的遷移,當CLB執行個體長串連全部處理完成,且CLB執行個體沒有新增流量時,您可以根據業務情境靜默觀察一段時間後釋放該CLB執行個體。關於如何釋放CLB執行個體,請參見釋放執行個體。
遷移完成後,本文中NLB的訪問鏈路如下圖所示:
高階功能
負載平衡產品NLB是對CLB四層負載平衡能力的一次升級,在某些特性的具體表現形式上有一些差異。您可以通過以下文檔更好地瞭解NLB執行個體、配額限制、快速入門及DDoS防護:
關於NLB執行個體概述,請參見NLB執行個體概述。
關於NLB配額限制,請參見使用限制。
關於NLB快速入門, 請參見NLB快速實現IPv4服務的負載平衡和NLB快速實現IPv6服務的負載平衡。
NLB預設提供基礎的DDoS防護能力。更多資訊,請參見什麼是DDoS原生防護。
下表列出了CLB和NLB一些高階功能的差異:
功能 | CLB | NLB |
伺服器組 | 支援預設伺服器組、虛擬伺服器組和主備伺服器組。 | 統稱為伺服器組。 |
單向認證 | 支援阿里雲簽發的認證和上傳非阿里雲簽發的認證,配置方式請參見使用CLB部署HTTPS業務(單向認證) 。 | 通過在流量入口部署NLB並配置SSL認證,後端伺服器無需配置SSL,NLB即可通過TCPSSL監聽來接收加密流量,並將其解析為明文流量然後將流量分發至後端伺服器。配置方式,請參見通過NLB實現TCPSSL卸載(單向認證)。 |
雙向認證 | 支援阿里雲簽發的CA認證和上傳非阿里雲簽發的CA認證。配置方式請參見使用CLB部署HTTPS業務(雙向認證)。 | 通過在流量入口部署NLB並配置SSL認證和CA認證,TCPSSL雙向認證可以對通訊雙方進行認證。配置方式,請參見通過NLB實現TCPSSL卸載(雙向認證)。 |
全連接埠監聽 | 不支援 | 使用NLB全連接埠監聽功能,使NLB能夠監控並響應一個連接埠段範圍內的所有網路流量,在同一個監聽中實現多連接埠流量轉寄,降低配置複雜度、營運難度以及安全風險。配置方式,請參見使用NLB全連接埠監聽功能實現多連接埠流量轉寄。 |
安全防護 | 通過存取控制實現黑白名單存取原則。配置方式,請參見存取控制。 | 通過安全性群組實現NLB基於監聽/連接埠粒度的存取控制以及實現黑白名單存取原則的存取控制。配置方式,請參見 |
常見問題
遷移前後,CLB執行個體和NLB執行個體的哪些配置需要保持一致?
地區、網路類型、監聽協議、後端伺服器等需保持一致。NLB執行個體所屬VPC需與CLB執行個體所屬VPC保持一致,可用性區域無需保持一致。
CLB和NLB使用的認證有哪些差異?
CLB支援HTTPS協議的加密傳輸,NLB支援TCPSSL協議的加密傳輸。相對於CLB自身支援上傳阿里雲簽發和非阿里雲簽發認證;NLB使用的認證依賴數位憑證管理服務提供的能力,由阿里雲認證中心管理。
對於CLB執行個體,認證上傳的相關操作請參見上傳認證。
對於NLB執行個體,認證上傳相關的操作請參見購買SSL認證和上傳和共用SSL認證。
CLB和NLB存取控制有哪些差異?
CLB提供監聽層級的存取控制,您可以為不同的監聽配置不同的存取原則。更多資訊,請參見存取控制。
NLB可以通過配置安全性群組實現基於協議/連接埠/IP的存取控制。更多資訊,請參見NLB加入安全性群組。
CLB和NLB的網域名稱解析有哪些差異?
CLB執行個體需要通過A記錄解析的方式,將自訂網域名指向CLB的服務地址。
對於NLB執行個體:
建議您使用CNAME解析的方式將自訂網域名指向到NLB執行個體的DNS名稱,通過該方式可以更便捷地訪問網路資源。
如果您的自訂網域名需要解析到固定IP地址,您可以通過A記錄解析的方式將自訂網域名解析至NLB提供的IP地址。
相關文檔
如果您需要詳細瞭解CLB執行個體和NLB執行個體在功能特性、計費以及產品優勢方面的區別,請參見Server Load Balancer產品家族介紹。
CLB執行個體和NLB執行個體的產品相關簡介、基礎配置、功能差異、計費資訊,請參見以下連結:
CLB執行個體
NLB執行個體