通过公共云NLB实现云盒与公共云ECS混合负载均衡

更新时间:
复制 MD 格式

公共云网络型负载均衡NLB支持通过IP类型服务器组挂载云盒内的ECS实例。您可以利用这一能力,将云盒ECS与公共云ECS统一接入NLB,实现跨部署环境的四层流量负载均衡和高可用容灾。

应用场景

  • 云盒业务对外发布:云盒内部署的业务需要通过公网对外提供服务,借助公共云NLB获取公网入口和流量分发能力。

  • 混合部署高可用:业务同时部署在云盒和公共云,通过NLB统一分发流量。当一端故障时,NLB自动将流量切换到另一端,实现跨环境容灾。

  • 就近接入与弹性扩展:利用云盒处理本地低延迟请求,同时通过公共云ECS应对流量峰值。

工作原理

NLBIP类型服务器组支持添加私网IP地址作为后端服务器,添加的IP地址不限于当前服务器组所在VPC网段内。云盒与公共云处于同一VPC下,云盒ECS的私网IP地址可以直接添加到公共云NLBIP类型服务器组中。NLB通过四层(TCP/UDP)协议将客户端请求分发到后端服务器,并通过健康检查自动摘除故障节点。

方案概览

本文介绍以下两种典型场景的配置方法:

场景

说明

适用情况

场景一:NLB挂载云盒内多台ECS

将云盒内多台ECS接入公共云NLB,实现云盒业务的负载均衡和公网访问

业务全部部署在云盒内

场景二:NLB同时挂载云盒ECS和公共云ECS

将云盒ECS和公共云ECS同时接入NLB,实现跨环境的混合负载均衡

业务在云盒和公共云混合部署

注意事项

  • 云盒ECS必须通过IP类型服务器组添加到NLB,不支持使用"服务器类型"服务器组直接添加。

  • IP类型服务器组仅支持添加私网IP地址,不支持公网IP地址。

  • NLB实例的可用区选择不包含云盒可用区,应选择公共云的可用区。云盒ECS通过IP地址加入后端服务器组。

  • 建议NLB实例至少选择2个公共云可用区,确保NLB自身的高可用。

  • 创建NLB实例前,请确保所选可用区的交换机中预留足够的可用IP。建议每个交换机内预留至少8IP地址。

场景一:NLB挂载云盒内多台ECS

本场景将云盒内的多台ECS实例(ECS01、ECS02)接入公共云NLB,通过NLB实现云盒业务的负载均衡和公网对外服务。

前提条件

  • 已开通云盒服务,且云盒状态为运行中

  • 已在云盒内创建至少2ECS实例(例如ECS01ECS02),并完成业务部署(例如部署Web应用并开放80端口)。

  • 云盒ECS所在VPC的公共云可用区下有可用的交换机。

步骤一:创建公网NLB实例

  1. 登录网络型负载均衡NLB控制台

  2. 在顶部菜单栏选择云盒所在的地域

  3. 实例页面,单击创建网络型负载均衡

  4. 在购买页面完成以下关键配置:

    配置项

    说明

    实例名称

    输入实例名称,例如nlb-cloudbox-demo

    实例网络类型

    选择公网。系统会为每个可用区分配一个弹性公网IP(EIP),用于对外提供服务。如果无需公网访问,可选择私网

    VPC

    选择云盒ECS所在的VPC。

    可用区

    至少选择2个公共云可用区(非云盒可用区),并为每个可用区选择交换机。选择公网类型时,还需为每个可用区分配EIP(可选择新购弹性公网IP或使用已有EIP)。

    说明

    首次创建NLB实例时,需要单击创建服务关联角色来关联AliyunServiceRoleForNlb角色,允许NLB访问您的弹性网卡、弹性公网IP等资源。

    image

  5. 单击创建,完成购买。

  6. 返回实例页面,确认新创建的实例状态正常。

步骤二:创建IP类型服务器组

重要

云盒ECS必须通过IP类型服务器组添加到NLB,不支持使用服务器类型服务器组。

  1. 在左侧导航栏,选择网络型负载均衡 NLB > 服务器组

  2. 服务器组页面,单击创建服务器组

  3. 创建服务器组对话框,完成以下配置:

    配置项

    说明

    服务器组类型

    选择IP类型

    服务器组名称

    输入服务器组名称,例如sg-cloudbox-ecs

    VPC

    选择云盒ECS所在的VPC。

    后端协议

    选择TCP

    调度算法

    根据业务需求选择,默认为加权轮询

    健康检查

    保持默认开启。健康检查协议默认为TCP,通过发送SYN握手报文检测后端服务器端口是否存活。

    image

  4. 单击创建

步骤三:添加云盒ECS的私网IP地址

  1. 服务器组页面,找到刚创建的服务器组,单击服务器组ID。

  2. 后端服务器页签,单击添加IP

  3. 添加后端服务器面板,依次输入云盒ECS01ECS02私网IP地址,单击下一步

    说明

    如何获取云盒ECS的私网IP地址:登录ECS控制台,在实例列表中查看云盒ECS实例的主私网IP

    image

  4. 设置端口为80(与ECS上的业务端口一致),权重保持默认值100,单击确定

    image

步骤四:创建TCP监听

  1. 在左侧导航栏,选择网络型负载均衡 NLB > 实例

  2. 找到已创建的NLB实例,在操作列单击创建监听

    image

  3. 配置监听页面,完成以下配置:

    配置项

    说明

    监听协议

    选择TCP

    监听端口

    输入80

    image

  4. 单击下一步,在选择服务器组页面选择IP类型,然后选择已创建的服务器组。

    image

  5. 单击下一步,确认配置后单击提交

  6. 返回监听页面,等待健康检查状态变为正常

    说明

    健康检查生效需要一定时间,通常为几十秒。如果状态持续异常,请检查云盒ECS的安全组是否放行了健康检查端口。

(可选)通过NLB实现TCPSSL卸载

如果需要加密传输,可以添加TCPSSL监听,由NLB完成SSL终结,后端ECS无需处理加解密。购买正式证书后,执行操作:

  1. NLB实例的监听页面,单击创建监听

  2. 配置监听页面,监听协议选择TCPSSL,监听端口设置为443

  3. 单击下一步,在配置SSL证书页面:

    • 选择服务器证书下拉框中选择已有的服务器证书。如果没有证书,可单击创建SSL证书前往证书中心购买或上传。

    • 选择TLS安全策略。如果没有可选策略,可单击创建TLS安全策略创建。

  4. 单击下一步,选择已创建的IP类型服务器组,确认配置后提交。

重要

TCPSSL监听要求服务器组的后端协议为TCP。流量经过NLB后已完成SSL解密,后端服务无需再进行SSL处理。TCPSSL类型的监听不能选择已开启客户端地址保持功能的服务器组。如需获取客户端源IP地址,可通过监听中的ProxyProtocol实现。

步骤五:配置域名解析

在实际业务中,建议使用自有域名而非直接使用NLB的公网IP。

  1. 登录云解析DNS控制台

  2. 找到目标域名,单击解析设置

  3. 单击添加记录,添加一条CNAME记录:

    配置项

    说明

    记录类型

    选择CNAME

    主机记录

    输入域名前缀,例如demo

    记录值

    输入NLB实例的DNS 名称。可在NLB实例详情页查看。

    image

  4. 单击确定

验证结果

  1. 验证负载均衡:通过浏览器多次访问域名(或NLB公网IP),确认请求被分发到不同的云盒ECS实例。

  2. 验证故障切换:关闭其中一台云盒ECS(例如停止ECS02Web服务),再次访问域名,确认NLB自动将请求转发到ECS01,业务不中断。

  3. 验证自动恢复:重新启动ECS02Web服务,等待健康检查恢复正常后,确认NLB重新将流量分发到两台ECS。

场景二:NLB同时挂载云盒ECS和公共云ECS

本场景将云盒ECS01和公共云ECS03同时接入NLB,实现跨部署环境的混合负载均衡。当一端出现故障时,NLB自动将流量切换到另一端。

前提条件

  • 已开通云盒服务,且云盒状态为运行中

  • 已在云盒内创建ECS实例(例如ECS01),并完成业务部署(例如部署Web应用并开放80端口)。

  • 已在与云盒同一VPC内的公共云可用区创建ECS实例(例如ECS03),并完成相同的业务部署。

步骤一:创建公网NLB实例

  1. 登录网络型负载均衡NLB控制台

  2. 在顶部菜单栏选择云盒所在的地域

  3. 实例页面,单击创建网络型负载均衡

  4. 在购买页面完成以下关键配置:

    配置项

    说明

    实例名称

    输入实例名称,例如nlb-cloudbox-demo

    实例网络类型

    选择公网。系统会为每个可用区分配一个弹性公网IP(EIP),用于对外提供服务。如果无需公网访问,可选择私网

    VPC

    选择云盒ECS所在的VPC。

    可用区

    至少选择2个公共云可用区(非云盒可用区),并为每个可用区选择交换机。选择公网类型时,还需为每个可用区分配EIP(可选择新购弹性公网IP或使用已有EIP)。

    说明

    首次创建NLB实例时,需要单击创建服务关联角色来关联AliyunServiceRoleForNlb角色,允许NLB访问您的弹性网卡、弹性公网IP等资源。

    image

  5. 单击创建,完成购买。

  6. 返回实例页面,确认新创建的实例状态正常。

步骤二:创建IP类型服务器组

  1. 在左侧导航栏,选择网络型负载均衡 NLB > 服务器组

  2. 单击创建服务器组,完成以下配置:

    配置项

    说明

    服务器组类型

    选择IP类型

    服务器组名称

    输入名称,例如sg-hybrid-ecs

    VPC

    选择云盒ECS和公共云ECS所在的VPC(必须是同一VPC)。

    后端协议

    选择TCP

    健康检查

    保持默认开启。

    image

  3. 单击创建

步骤三:添加后端服务器

将云盒ECS和公共云ECS的私网IP地址添加到同一个服务器组。

  1. 服务器组页面,找到目标服务器组,单击服务器组ID。

  2. 后端服务器页签,单击添加IP

  3. 添加后端服务器面板,依次输入云盒ECS01和公共云ECS03私网IP地址,单击下一步

    说明

    如何获取云盒ECS的私网IP地址:登录ECS控制台,在实例列表中查看云盒ECS实例的主私网IP

    image

  4. 设置端口为80(与ECS上的业务端口一致),权重保持默认值100,单击确定

    image

步骤四:创建TCP监听

  1. 在左侧导航栏,选择网络型负载均衡 NLB > 实例

  2. 找到已创建的NLB实例,在操作列单击创建监听

    image

  3. 配置监听页面,完成以下配置:

    配置项

    说明

    监听协议

    选择TCP

    监听端口

    输入80

    image

  4. 单击下一步,选择IP类型,然后选择已创建的服务器组(sg-hybrid-ecs)。

    image

  5. 确认配置后单击提交

  6. 返回监听页面,确认健康检查状态为正常

(可选)通过NLB实现TCPSSL卸载

如果需要加密传输,可以添加TCPSSL监听,由NLB完成SSL终结,后端ECS无需处理加解密。购买正式证书后,执行操作:

  1. NLB实例的监听页面,单击创建监听

  2. 配置监听页面,监听协议选择TCPSSL,监听端口设置为443

  3. 单击下一步,在配置SSL证书页面:

    • 选择服务器证书下拉框中选择已有的服务器证书。如果没有证书,可单击创建SSL证书前往证书中心购买或上传。

    • 选择TLS安全策略。如果没有可选策略,可单击创建TLS安全策略创建。

  4. 单击下一步,选择已创建的IP类型服务器组,确认配置后提交。

重要

TCPSSL监听要求服务器组的后端协议为TCP。流量经过NLB后已完成SSL解密,后端服务无需再进行SSL处理。TCPSSL类型的监听不能选择已开启客户端地址保持功能的服务器组。如需获取客户端源IP地址,可通过监听中的ProxyProtocol实现。

步骤五:配置域名解析

在实际业务中,建议使用自有域名而非直接使用NLB的公网IP。

  1. 登录云解析DNS控制台

  2. 找到目标域名,单击解析设置

  3. 单击添加记录,添加一条CNAME记录:

    配置项

    说明

    记录类型

    选择CNAME

    主机记录

    输入域名前缀,例如demo

    记录值

    输入NLB实例的DNS 名称。可在NLB实例详情页查看。

    image

  4. 单击确定

验证结果

  1. 验证混合负载均衡:通过浏览器多次访问域名,确认请求被分发到云盒ECS01和公共云ECS03。

  2. 验证跨环境容灾

    • 停止公共云ECS03Web服务,确认NLB自动将全部流量切换到云盒ECS01。

    • 恢复ECS03后,再停止云盒ECS01Web服务,确认流量自动切换到公共云ECS03。

  3. 验证自动恢复:重新启动所有ECSWeb服务,确认NLB恢复正常的流量分发。

常见问题

  • 为什么不能使用"服务器类型"的服务器组挂载云盒ECS?

    NLB的服务器类型服务器组通过实例ID识别后端服务器,目前不支持直接添加云盒内的ECS实例。IP类型服务器组通过私网IP地址添加后端服务器,不受此限制,因此云盒ECS需要通过IP类型服务器组接入。

  • 健康检查一直显示异常怎么办?

    请排查以下原因:

    • 确认云盒ECS的安全组已放行健康检查端口(默认与业务端口一致)。

    • 确认云盒ECS上的业务服务已正常启动。

    • 确认云盒与公共云之间的网络连通正常(可在云盒ECSping公共云资源验证)。

  • 是否可以为云盒ECS和公共云ECS设置不同的权重?

    可以。在添加后端服务器时,可以为每个IP地址单独设置权重。例如将公共云ECS的权重设置为更高,让大部分流量通过公共云处理,云盒作为容灾备份。

  • TCPSSL监听为什么不能选择已开启客户端地址保持的服务器组?

    TCPSSL类型的监听不支持选择已开启客户端地址保持功能的服务器组。请在创建服务器组时确保已关闭该功能。如需获取客户端源IP地址,可在监听配置中开启ProxyProtocol实现。

相关文档