全部產品
Search
文件中心

Server Load Balancer:CLB四層監聽手動遷移NLB最佳實務

更新時間:Nov 16, 2024

相比於傳統型負載平衡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的計費方式為隨用隨付,NLB的計費方式為隨用隨付,CLB和NLB的計費項目、定價等存在差異,CLB執行個體的業務遷移NLB執行個體後,會產生計費變更。具體計費規則,請參見:

  • NLB執行個體和CLB執行個體的後端伺服器屬於同一個VPC,且後端伺服器相同。

  • IPv4的CLB執行個體可以遷移至IPv4或雙棧的NLB執行個體,IPv6的CLB執行個體只能遷移至雙棧的NLB執行個體。

前提條件

  • 待遷移的CLB執行個體已配置TCP監聽和後端伺服器,且該CLB執行個體已設定A記錄網域名稱解析,對外通過網域名稱提供服務。具體操作,請參見入門概述

  • 您已建立承載業務應用的後端伺服器ECS01和ECS02,且均已部署應用樣本。建立ECS執行個體的更多操作,請參見自訂購買執行個體

    說明
    • 若您的CLB執行個體配置UDP監聽,將CLB的流量遷移至NLB執行個體時,NLB執行個體也需要配置UDP監聽協議。

    • 您需要準備兩台測試伺服器,一台用於測試遷移前流量,一台用於驗證遷移時的訪問流量。如果您已有測試伺服器,則無需建立。本文用於測試的兩台伺服器均已安裝Alibaba Cloud Linux 3.2104 64位作業系統。

    本文ECS01和ECS02部署測試應用樣本如下:

    ECS01服務部署命令

    yum install -y nginx
    systemctl start nginx.service
    cd /usr/share/nginx/html/
    echo "Hello World ! this is ESC01." > index.html

    ECS02服務部署命令

    yum install -y nginx
    systemctl start nginx.service
    cd /usr/share/nginx/html/
    echo "Hello World ! this is ESC02." > index.html

單擊查看本文CLB和NLB的參數規劃

配置

CLB

NLB

網路類型

公網

服務地址:112.XX.XX.26

公網

DNS網域名稱:nlb-h8z2851bv87*******.cn-hangzhou.nlb.aliyuncsslbintl.com

網域名稱解析

www.example.cn

www.example.cn

監聽協議

TCP,監聽連接埠80

TCP,監聽連接埠80

後端伺服器

ECS01、ECS02

ECS01、ECS02

步驟一:建立NLB執行個體

  1. 登入網路型負載平衡NLB控制台
  2. 在頂部功能表列,選擇NLB執行個體所屬的地區。

  3. 執行個體頁面,單擊建立網路型負載平衡

  4. 網路型負載平衡(隨用隨付)國際站購買頁面,完成以下配置(未列舉的參數保持預設值),然後單擊立即購買,根據控制台提示完成執行個體購買。

    配置

    說明

    地區

    選擇執行個體所屬的地區。本文選擇華東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伺服器組

  1. 登入網路型負載平衡NLB控制台
  2. 在頂部功能表列,選擇NLB執行個體所屬的地區。

  3. 在左側導覽列,選擇網路型負載均衡 NLB > 伺服器組

  4. 伺服器組頁面,單擊建立伺服器組

  5. 建立伺服器組對話方塊,完成以下配置(未列舉的參數保持預設值),然後單擊建立

    配置

    說明

    伺服器群組類型

    選擇伺服器組的類型。本文選擇伺服器類型

    伺服器組名稱

    輸入自訂名稱。

    VPC

    從VPC下拉式清單中選擇NLB所在VPC,只有該VPC下的伺服器可以加入到該伺服器組。

    選擇後端協議

    選擇後端協議,本文選擇TCP

    配置健全狀態檢查

    開啟健全狀態檢查,健全狀態檢查保持預設配置。

  6. 待伺服器組建立成功後,單擊其執行個體ID,然後單擊後端伺服器頁簽。

  7. 單擊添加後端伺服器,在添加後端伺服器面板,選擇ECS01和ECS02,單擊下一步

  8. 配置連接埠和權重設定精靈,連接埠輸入80,權重保持預設值,然後單擊確定

步驟三:建立TCP監聽

  1. 登入網路型負載平衡NLB控制台
  2. 在頂部功能表列,選擇NLB執行個體所屬的地區。

  3. 執行個體頁面,單擊目標執行個體ID。

  4. 單擊監聽頁簽,然後單擊快速建立監聽

  5. 快速建立監聽對話方塊,配置以下參數,然後單擊確定

    配置

    說明

    選擇監聽協議

    本文選擇TCP

    監聽連接埠

    本文輸入80

    轉寄的後端伺服器組

    本文選擇伺服器類型步驟二建立的伺服器組。

步驟四:測試流量

  1. 登入用於測試流量的公網Linux伺服器,測試遷移前NLB的流量。

  2. 執行以下命令編輯hosts檔案。

    sudo vi /etc/hosts
    1. i鍵切換至編輯模式,新增以下一條NLB執行個體的IP地址和網域名稱映射關係的記錄。

    47.XX.XX.101 www.example.cn
    1. 修改完成後,按下Esc鍵,輸入:wq並斷行符號以儲存並關閉設定檔。

    說明

    通過該步驟可以實現將www.example.cn網域名稱解析到NLB執行個體的指定彈性公網 IP(47.XX.XX.101),並覆蓋原有的 CLB 網域名稱解析。在遷移流量之前,您需要測試該網域名稱是否可以成功訪問 NLB 執行個體。

  3. 執行以下命令測試網域名稱是否可以訪問NLB執行個體。如果未安裝telnet,執行yum install -y telnet命令安裝telnet。

    telnet www.example.cn 80  # TCP監聽連接埠80

    收到回複報文Connected to nlb-...,則表示NLB可以將請求轉寄至後端伺服器。

    測試訪問流量.png

  4. 查看NLB的動作記錄。

    1. 登入網路型負載平衡NLB控制台
    2. 在左側導覽列,選擇網路型負載平衡 NLB > 動作記錄

    3. 動作記錄頁面,可以篩選事件名稱GetLoadBalancerAttribute的事件,單擊查詢

    4. 單擊目標事件前的+.png表徵圖,然後單擊事件詳情,可以通過requestParameterJsonLoadBalancerId欄位查看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記錄。

  1. 登入網域名稱解析控制台

  2. 權威網域名稱解析頁面,找到指向待遷移CLB執行個體的DNS網域名稱www.example.cn,單擊該網域名稱執行個體ID。

  3. 解析設定頁簽,單擊添加記錄,在添加記錄面板,完成以下參數配置,然後單擊確定

    配置

    說明

    記錄類型

    在下拉式清單中選擇CNAME

    主機記錄

    您的網域名稱的首碼。本文輸入www

    解析請求來源

    選擇預設。

    記錄值

    輸入臨時網域名稱,本文輸入web0.example.cn

    TTL

    全稱Time To Live,表示DNS記錄在DNS伺服器上的緩衝時間,本文使用預設值。

  4. 解析設定頁簽,找到指向待遷移CLB執行個體服務地址的A記錄,在操作列單擊修改

  5. 在彈出的修改記錄面板,修改主機記錄,然後單擊確定。本文修改主機記錄web0,其餘參數保持不變。

第二步:NLB執行個體添加CNAME解析

說明

您也可以為NLB執行個體添加A記錄,將DNS網域名稱解析到某個可用性區域的VIP。

  1. 登入網路型負載平衡NLB控制台
  2. 在頂部功能表列,選擇NLB執行個體所屬的地區,本文選擇華東1(杭州)

  3. 找到目標NLB執行個體,複製其對應的DNS名稱。

  4. 完成以下步驟添加CNAME解析記錄。

    1. 登入網域名稱解析控制台

    2. 在目標網域名稱的操作列單擊解析設定。這裡目標網域名稱為CLB執行個體綁定的網域名稱。

    3. 解析設定頁面單擊添加記錄

    4. 添加記錄面板配置以下資訊完成CNAME解析配置,然後單擊確定

      配置

      說明

      記錄類型

      在下拉式清單中選擇CNAME

      主機記錄

      您的網域名稱的首碼。本文輸入www

      解析請求來源

      選擇預設。

      記錄值

      輸入欄位名對應的CNAME地址,即您複製的NLB執行個體的DNS網域名稱。

      TTL

      全稱Time To Live,表示DNS記錄在DNS伺服器上的緩衝時間,本文使用預設值。

      說明
      • 新增CNAME記錄即時生效,修改CNAME記錄取決於本地DNS緩衝的解析記錄的TTL到期時間,預設一般為10分鐘。

      • 添加時如遇添加衝突,請換一個解析網域名稱。

第三步:設定權重,開始流量灰階

  1. 權威網域名稱解析頁面,單擊目標網域名稱執行個體ID。

  2. 單擊權重配置頁簽,找到目標網域名稱,在操作列單擊設定權重

    權重配置的啟用條件是網域名稱下存在相同的主機記錄、相同解析線路的多條A記錄、CNAME記錄、AAAA記錄。

  3. 設定權重面板,分別為CLB和NLB執行個體的解析記錄設定權重。將CLB執行個體對應的解析記錄的權重設定為100,同時將NLB執行個體對應的解析記錄的權重設定為0權重設定-cn.png

  4. 在觀察業務沒有影響的情況下,逐步減小CLB執行個體解析記錄的權重值,同時逐步增加NLB執行個體解析記錄的權重值。

  5. 登入用於遷移流量的Linux用戶端,多次執行dig命令,驗證流量遷移效果。

    dig www.example.cn

運行結果如下圖所示。您可以通過多次運行結果觀察到,請求會根據權重分配至CLB或NLB處理。

流量測試0.png

流量測試100.png

第四步:完成流量遷移

根據流量遷移的驗證結果,逐步將CLB執行個體解析記錄的權重值減小至0,同時逐步增加NLB執行個體解析記錄的權重值至100。至此,您已完成CLB執行個體流量至NLB執行個體的遷移,當CLB執行個體長串連全部處理完成,且CLB執行個體沒有新增流量時,您可以根據業務情境靜默觀察一段時間後釋放該CLB執行個體。關於如何釋放CLB執行個體,請參見釋放執行個體

遷移完成後,本文中NLB的訪問鏈路如下圖所示:

如果您的DNS服務解析商不支援CNAME解析的權重配置,請單擊此處查看流量遷移方案。

高階功能

負載平衡產品NLB是對CLB四層負載平衡能力的一次升級,在某些特性的具體表現形式上有一些差異。您可以通過以下文檔更好地瞭解NLB執行個體、配額限制、快速入門及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基於監聽/連接埠粒度的存取控制以及實現黑白名單存取原則的存取控制。配置方式,請參見

常見問題

  1. 遷移前後,CLB執行個體和NLB執行個體的哪些配置需要保持一致?

    地區、網路類型、監聽協議、後端伺服器等需保持一致。NLB執行個體所屬VPC需與CLB執行個體所屬VPC保持一致,可用性區域無需保持一致。

  2. CLB和NLB使用的認證有哪些差異?

    CLB支援HTTPS協議的加密傳輸,NLB支援TCPSSL協議的加密傳輸。相對於CLB自身支援上傳阿里雲簽發和非阿里雲簽發認證;NLB使用的認證依賴數位憑證管理服務提供的能力,由阿里雲認證中心管理。

  3. CLB和NLB存取控制有哪些差異?

    • CLB提供監聽層級的存取控制,您可以為不同的監聽配置不同的存取原則。更多資訊,請參見存取控制

    • NLB可以通過配置安全性群組實現基於協議/連接埠/IP的存取控制。更多資訊,請參見NLB加入安全性群組

  4. CLB和NLB的網域名稱解析有哪些差異?

    • CLB執行個體需要通過A記錄解析的方式,將自訂網域名指向CLB的服務地址。

    • 對於NLB執行個體:

      • 建議您使用CNAME解析的方式將自訂網域名指向到NLB執行個體的DNS名稱,通過該方式可以更便捷地訪問網路資源。

      • 如果您的自訂網域名需要解析到固定IP地址,您可以通過A記錄解析的方式將自訂網域名解析至NLB提供的IP地址。

相關文檔