本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。
相比于传统型负载均衡CLB(Classic Load Balancer), 网络型负载均衡NLB(Network Load Balancer )具有超高性能的四层负载均衡处理能力,可以同时处理海量并发连接,提供TCPSSL卸载、连接限速等能力。当您的业务在持续增长,同时对功能、性能、稳定性和弹性有更高要求时,您可以将CLB四层监听流量手动迁移至NLB实例,来轻松应对高并发业务。
关键特性
当您将CLB实例的流量迁移至NLB实例时,NLB提供的以下关键特性可以满足您的业务场景:
高并发处理能力:单实例最大支持1亿并发连接和100 Gbps带宽,能够轻松应对面向物联网海量连接的高并发场景。
自动弹性扩展:您无需指定或手动调整NLB的实例规格,实例性能会随着您的业务增减自动弹性伸缩。
全端口监听: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。
VPC
选择实例所属的VPC。
可用区
选择可用区和交换机。本文选择杭州 可用区H、杭州 可用区I及其可用区。
协议版本
选择实例的协议版本。本文选择IPv4。
加入共享带宽
本文勾选加入共享带宽,并选择共享带宽包。如果没有共享带宽包,可单击购买共享带宽包并完成购买。
说明若您的业务场景为公网大流量业务:
您可以选择绑定自己的共享带宽包。绑定共享带宽包后,实例的带宽峰值以共享带宽包的带宽峰值为准。
如果未绑定共享带宽包,系统默认使用按量付费的弹性公网IP(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实例配置的验收后,本文以阿里云云解析DNS为例,为您介绍CLB流量迁移至NLB的操作步骤。您可以通过以下步骤完成流量的迁移。关于阿里云云解析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的域名解析有哪些差异?
CLB实例需要通过A记录解析的方式,将自定义域名指向CLB的服务地址。
对于NLB实例:
建议您使用CNAME解析的方式将自定义域名指向到NLB实例的DNS名称,通过该方式可以更便捷地访问网络资源。
如果您的自定义域名需要解析到固定IP地址,您可以通过A记录解析的方式将自定义域名解析至NLB提供的IP地址。
相关文档
如果您需要详细了解CLB实例和NLB实例在功能特性、计费以及产品优势方面的区别,请参见负载均衡SLB产品家族介绍。
CLB实例和NLB实例的产品相关简介、基础配置、功能差异、计费信息,请参见以下链接:
CLB实例
NLB实例