通过NLB搭建高可用服务

更新时间: 2024-04-10 11:02:00

slb

一键配置

14

教程简介

在本教程中,您将学习如何在阿里云网络型负载均衡NLB上部署四层负载均衡服务,将来自客户端的请求转发至后端ECS上,并模拟ECS单点故障场景验证业务的高可用。

网络型负载均衡NLB(Network Load Balancer)是面向万物互联时代推出的新一代四层负载均衡,支持超高性能和自动弹性能力,单实例可以达到1亿并发连接,轻松应对高并发业务。更多信息,请参见什么是网络型负载均衡NLB

image.png

试用权益说明

仅首次使用网络型负载均衡NLB产品的用户支持一次领取3个自然月的NLB免费试用。(自然月是指每个月的1号到该月的最后一天,是按照阳历来计算的)

免费试用权益包括:

  • 每月750个小时NLB实例使用时间(多个NLB实例共享)

  • 每月15个LCU用于NLB(多个NLB实例共享)

  • 每月1500个小时EIP实例使用时间(多个EIP实例共享)

我能学到什么

  • 学会如何创建NLB实例。

  • 学会如何一键配置监听,并通过NLB结合多台ECS搭建高可用服务。

操作难度

所需时间

14分钟

使用的阿里云产品

所需费用

领取NLB、ECS免费试用权益并开通CDT服务后,在权益有效期内,您可以免费完成本教程并体验免费的负载均衡服务。领取入口请参见下一步准备资源及环境

超出权益额度部分的收费标准请参见NLB计费规则ECS计费规则EIP计费规则CDT公网流量计费规则

准备资源及环境

3

资源需求

部署NLB负载均衡服务需要1个NLB实例、2个ECS实例。NLB实例和ECS实例的地域相同,且属于同一个专有网络VPC。

领取免费权益

进入以下资源领取入口,单击页面右上方的登录/注册按钮,并根据页面提示完成账号登录(已有阿里云账号)、账号注册(尚无阿里云账号)或实名认证(根据试用产品要求完成个人实名认证或企业实名认证)。

如果您已有相应资源,可能会无法领取免费权益,请直接前往下一步检查资源

资源领取入口

本教程配置

领取网络型负载均衡NLB

网络型负载均衡NLB卡片

每月750个小时 15个LCU(免费:每月750小时实例使用时间,每月15个LCU,每月1500小时EIP实例使用时间,时长3个月)

  • 地域:本文选择华东1(杭州)地域

  • 实例网络类型:公网

  • VPC:选择ECS所在的VPC

  • 可用区:按需配置

  • 协议版本:IPv4

  • 实例名称:NLB01

  • 服务关联角色:单击创建服务关联角色

  • 其他参数:保持默认值或按需选择

领取云服务器ECS

2核4GB 3个月

  • 地域:选择与NLB实例相同的地域

  • 操作系统:CentOS 7.9 64位

  • 试用数量:2(ECS01、ECS02)

  • 专有网络:选择NLB实例所在的VPC

  • 其他参数:保持默认值或按需选择

开通云数据传输CDT

CDT每月赠送200GB免费公网流量(其中20GB全地域可用,180GB仅限海外地域可用),可用于抵扣云服务器ECS、弹性公网IP、网络型负载均衡NLB的公网流量,超出部分采用阶梯计费,详情参考CDT公网流量计费规则

检查资源

登录网络型负载均衡NLB控制台ECS控制台,检查以下要素:

部署应用

3

  1. 登录ECS控制台

  2. 在顶部菜单栏左上角处,选择和ECS01和ECS02实例相同的地域。

  3. 设置ECS01和ECS02实例登录密码。在操作列单击 image..png> 实例属性 > 重置实例密码,按照界面提示设置ECS实例的登录密码。保存密码后,在弹出的页面,单击立即重启使密码生效。

    实例创建完成大约3~5分钟后,才支持重置实例密码,如不可重置请耐心等待后重试。

  4. 远程连接ECS01和ECS02实例。

    1. 返回实例页面,单击目标实例对应操作列下的远程连接

    2. 在弹出的连接与命令对话框中,单击通过Workbench远程连接对应的立即登录

    3. 在弹出的登录实例对话框中,输入登录信息。

  5. 分别执行以下命令为ECS01实例部署Nginx静态页面。以下命令以CentOS 7.9 64位操作系统为例。

    yum install -y nginx

    systemctl start nginx.service

    cd /usr/share/nginx/html/

    echo "Hello World ! This is ECS01." > index.html

  6. 分别执行以下命令为ECS02实例部署Nginx静态页面。以下命令以CentOS 7.9 64位操作系统为例。

    yum install -y nginx

    systemctl start nginx.service

    cd /usr/share/nginx/html/

    echo "Hello World ! This is ECS02." > index.html

一键配置

2

准备好资源并部署应用后,您可以通过一键配置快速完成NLB实例后端服务器组和监听的配置。一键配置基于阿里云资源编排服务ROS(Resource Orchestration Service)实现,旨在帮助开发者通过IaC(Infrastructure as Code)的方式体验资源的自动化配置。如需查看NLB实例、后端服务器组和监听配置的具体信息,可查看教程的手动配置。模板完成的内容包括:

  • 创建后端服务器组

  • 配置监听

操作步骤

  1. 打开一键配置模板链接前往ROS控制台,系统自动打开使用新资源(标准)创建资源栈的页面,并在模板内容区域展示YAML文件的详细信息。

    ROS控制台默认处于您上一次访问控制台时的地域,请根据您创建的资源所在地域修改地域后再执行下一步。

  2. 确认好地域后,保持页面所有选项不变,单击下一步进入配置模板参数页面。

  3. 配置模板参数页面,完成以下参数的配置,然后单击创建开始一键配置。

    配置

    说明

    示例

    资源栈名称

    修改资源栈名称。

    test

    NLB实例ID

    输入NLB实例ID。

    您可以前往网络型负载均衡NLB控制台,在实例页面,找到并复制已创建的nlb01实例的ID。

    nlb-f1j2qxsnip8wzo****

    ECS实例ID列表

    单击选择实例,在弹出的对话框中,选择已创建的2台ECS实例,然后单击确定

    选择的ECS实例均已部署应用服务,且ECS实例和NLB实例需属于同一个VPC。

    单击选择实例并在弹出的对话框中选择2台ECS

  4. 资源栈信息页面的状态显示为创建成功时表示一键配置完成。

    通常通过一键配置创建监听和后端服务器组大约需要1~2分钟,但可能由于网络等原因有一定的延时,请您耐心等待几分钟。

    image

完成

4

您可以通过以下方式测试NLB实例是否将请求转发至后端ECS,并模拟ECS单点故障场景验证业务的高可用。

  1. 登录网络型负载均衡NLB控制台,在NLB实例页面找到目标NLB实例,单击实例ID,在实例详情可用区右侧查看并复制一个弹性公网IP。

    image.png

  2. 在浏览器中输入NLB实例的弹性公网IPhttp://121.XX.XX.100,您可以观察到请求已转发至一台后端ECS服务器,以下操作以第一次返回内容为ECS01为例。

    1. 停用ECS01,刷新浏览器访问NLB实例的弹性公网IP地址,可以观察到请求已转发至ECS02。

    2. 启动ECS01并等待几分钟。

    3. 停用ECS02,刷新浏览器访问NLB实例的弹性公网IP地址,可以观察到请求已转发至ECS01。

    以上验证过程表明:在单台后端服务器出现故障时,NLB仍然能够保证业务的可用性。

    image

    image

清理及后续

2

清理

  • NLB免费试用权益有期限限制,权益到期后未释放的NLB实例可能产生费用。完成教程后,请参考以下场景处理NLB实例:

    • 如果无需使用NLB实例,您可以登录网络型负载均衡控制台在左侧导航栏,选择网络型负载均衡NLB>实例,在实例页面,找到目标NLB实例,在操作列单击1111>释放,按照界面提示手动释放实例。

    • 如果需继续使用NLB实例,请至少在试用到期1小时前为您的阿里云账号充值,确保账户金额不小于100.00元人民币。到期未续费的NLB实例会因欠费而被自动停机,停机7天内NLB实例将保留,7天后NLB实例和数据都将被自动释放。

  • 本教程使用的是个人版ECS实例,默认为按量付费实例,完成教程后,请参考以下场景处理ECS实例:

    • 如果无需继续使用实例,可以登录ECS控制台,找到目标实例,在操作列单击image.png,搜索并单击释放设置,根据界面提示释放实例。

    • 如果需要继续使用实例,请至少在试用到期1小时前为阿里云账号充值,确保账户金额不小于100.00元人民币。到期未续费的实例会因欠费而被自动停机,停机15天内实例将保留,15天后实例和数据都将被自动释放。

  • EIP提供的按量付费试用实例到期未释放可能产生费用。

    若您在创建NLB实例时,EIP使用默认的自动分配公网IP配置,公网NLB实例释放后,自动分配的EIP也会同步释放。若您在创建NLB实例时,选择自有EIP资源,NLB实例释放后,请参考以下场景处理EIP实例:

    • 如果无需使用EIP实例,您可以登录弹性公网IP管理控制台,在弹性公网IP页面,找到目标EIP实例,在操作列单击1111>释放,按照界面提示手动释放EIP实例。

    • 如果需继续使用EIP实例,请至少在试用到期1小时前为阿里云账号充值,确保账户余额不小于100.00元人民币。到期未续费的EIP实例会因欠费而被自动停机,停机7天内EIP实例将保留,7天后EIP实例和数据都将被自动释放。

后续

在试用期有效期间,您还可以根据希望测试的其他业务场景继续使用四层负载均衡NLB产品。

  • 关于NLB相关教程,请参见NLB教程

  • 体验NLB实例的新建连接限速、全端口监听等高级特性。具体操作,请参见添加TCP监听

总结

常用知识点

问题1:创建NLB实例时显示IP不足无法购买的原因?(单选题)

  • 可用区选择数量不够

  • 交换机预留的可用IP不够

正确答案是交换机预留的可用IP不够。创建NLB实例要求每个交换机最少预留5个可用IP,包含4个健康检查IP和1个虚拟IP地址VIP(Virtual IP address),请确保交换机预留了足够的可用IP。

问题2:健康检查失败的常见原因?(单选题)

  • 可能是后端ECS未部署服务

  • 未开启健康检查

正确答案是后端ECS未部署服务。

延伸阅读

手动配置

19

教程简介

通过本教程,您将学习如何在阿里云网络型负载均衡上部署四层负载均衡服务,将来自客户端的请求转发至后端ECS上,并模拟ECS单点故障场景验证业务的高可用。

网络型负载均衡NLB(Network Load Balancer)是面向万物互联时代推出的新一代四层负载均衡,支持超高性能和自动弹性能力,单实例可以达到1亿并发连接,帮您轻松应对高并发业务。更多信息,请参见什么是网络型负载均衡NLB

image.png

试用权益说明

仅首次使用网络型负载均衡NLB产品的用户支持一次领取3个自然月的NLB免费试用。(自然月是指每个月的1号到该月的最后一天,是按照阳历来计算的)

免费试用权益包括:

  • 每月750个小时NLB实例使用时间(多个NLB实例共享)

  • 每月15个LCU用于NLB(多个NLB实例共享)

  • 每月1500个小时EIP实例使用时间(多个EIP实例共享)

我能学到什么

  • 学会如何创建NLB实例。

  • 学会如何创建后端服务器组并配置监听,并通过NLB结合多台ECS搭建高可用服务。

操作难度

所需时间

18分钟

使用的阿里云产品

所需费用

领取NLB、ECS免费试用权益并开通CDT服务后,在权益有效期内,您可以免费完成本教程并体验免费的负载均衡服务。领取入口请参见下一步准备资源及环境

超出权益额度部分的收费标准请参见NLB计费规则ECS计费规则EIP计费规则CDT公网流量计费规则

准备资源及环境

3

资源需求

部署NLB负载均衡服务需要1个NLB实例、2个ECS实例。NLB实例和ECS实例的地域相同,且属于同一个专有网络VPC。

领取免费权益

进入以下资源领取入口,单击页面右上方的登录/注册按钮,并根据页面提示完成账号登录(已有阿里云账号)、账号注册(尚无阿里云账号)或实名认证(根据试用产品要求完成个人实名认证或企业实名认证)。

如果您已有相应资源,可能会无法领取免费权益,请直接前往下一步检查资源

资源领取入口

本教程配置

领取网络型负载均衡NLB

网络型负载均衡NLB卡片

每月750个小时 15个LCU(免费:每月750小时实例使用时间,每月15个LCU,每月1500小时EIP实例使用时间,时长3个月)

  • 地域:本文选择华东1(杭州)地域

  • 实例网络类型:公网

  • VPC:选择ECS所在的VPC

  • 可用区:按需配置

  • 协议版本:IPv4

  • 实例名称:NLB01

  • 服务关联角色:单击创建服务关联角色

  • 其他参数:保持默认值或按需选择

领取云服务器ECS

2核4GB 3个月

  • 地域:选择与NLB实例相同的地域

  • 操作系统:CentOS 7.9 64位

  • 试用数量:2(ECS01、ECS02)

  • 专有网络:选择NLB实例所在的VPC

  • 其他参数:保持默认值或按需选择

开通云数据传输CDT

CDT每月赠送200GB免费公网流量(其中20GB全地域可用,180GB仅限海外地域可用),可用于抵扣云服务器ECS、弹性公网IP、网络型负载均衡NLB的公网流量,超出部分采用阶梯计费,详情参考CDT公网流量计费规则

检查资源

登录网络型负载均衡NLB控制台ECS控制台,检查以下要素:

部署应用

3

  1. 登录ECS控制台

  2. 在顶部菜单栏左上角处,选择和ECS01和ECS02实例相同的地域。

  3. 设置ECS01和ECS02实例登录密码。在操作列单击 image..png> 实例属性 > 重置实例密码,按照界面提示设置ECS实例的登录密码。保存密码后,在弹出的页面,单击立即重启使密码生效。

    实例创建完成大约3~5分钟后,才支持重置实例密码,如不可重置请耐心等待后重试。

  4. 远程连接ECS01和ECS02实例。

    1. 返回实例页面,单击目标实例对应操作列下的远程连接

    2. 在弹出的连接与命令对话框中,单击通过Workbench远程连接对应的立即登录

    3. 在弹出的登录实例对话框中,输入登录信息。

  5. 分别执行以下命令为ECS01实例部署Nginx静态页面。以下命令以CentOS 7.9 64位操作系统为例。

    yum install -y nginx

    systemctl start nginx.service

    cd /usr/share/nginx/html/

    echo "Hello World ! This is ECS01." > index.html

  6. 分别执行以下命令为ECS02实例部署Nginx静态页面。以下命令以CentOS 7.9 64位操作系统为例。

    yum install -y nginx

    systemctl start nginx.service

    cd /usr/share/nginx/html/

    echo "Hello World ! This is ECS02." > index.html

创建后端服务器组

3

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

    创建服务器组对话框中,完成以下主要参数的配置,其余参数保持默认配置,然后单击创建。更多信息,请参见创建服务器组

    配置

    说明

    示例值

    服务器组类型

    选择一种服务器组类型。

    服务器类型

    服务器组名称

    输入服务器组名称。

    RS01

    VPC

    从VPC下拉列表中选择一个VPC,与ECS和NLB实例所属VPC保持一致。

    选择ECS和NLB实例所在的VPC

    选择后端协议

    选择一种后端协议。

    TCP

    选择调度算法

    选择一种调度算法。

    加权轮询

    选择资源组

    选择归属的资源组。

    按需配置

  1. 服务器组创建成功对话框中单击添加后端服务器

  2. 后端服务器页签,刷新页面,然后单击添加后端服务器

  3. 添加后端服务器面板,选择已创建的2台ECS实例,然后单击下一步

  4. 为已添加的服务器设置端口和权重,然后单击确定

  5. 返回服务器组页面,查看完成配置的服务器组。

配置监听

3

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

  2. 实例页面,单击已创建的NLB实例ID。

  3. 单击监听页签,在监听页签单击快速创建监听

  4. 快速创建监听对话框中,完成以下参数配置,然后单击确定

    监听配置

    说明

    示例值

    选择负载均衡协议

    选择监听的协议类型。

    TCP

    监听端口

    设置前端协议端口,即用来接收请求并向后端服务器进行请求转发的监听端口。

    您可以直接单击常用监听端口快捷填写,或者输入端口。监听端口范围:1~65535。

    80

    转发的后端服务器组

    选择服务器类型服务器类型下的后端服务器组。

    RS01

完成

4

您可以通过以下方式测试NLB实例是否将请求转发至后端ECS,并模拟ECS单点故障场景验证业务的高可用。

  1. 登录网络型负载均衡NLB控制台,在NLB实例页面找到目标NLB实例,单击实例ID,在实例详情可用区右侧查看并复制一个弹性公网IP。

    image.png

  2. 在浏览器中输入NLB实例的弹性公网IPhttp://121.XX.XX.100,您可以观察到请求已转发至一台后端ECS服务器,以下操作以第一次返回内容为ECS01为例。

    1. 停用ECS01,刷新浏览器访问NLB实例的弹性公网IP地址,可以观察到请求已转发至ECS02。

    2. 启动ECS01并等待几分钟。

    3. 停用ECS02,刷新浏览器访问NLB实例的弹性公网IP地址,可以观察到请求已转发至ECS01。

    以上验证过程表明:在单台后端服务器出现故障时,NLB仍然能够保证业务的可用性。

    image

    image

清理及后续

2

清理

  • NLB免费试用权益有期限限制,权益到期后未释放的NLB实例可能产生费用。完成教程后,请参考以下场景处理NLB实例:

    • 如果无需使用NLB实例,您可以登录网络型负载均衡控制台在左侧导航栏,选择网络型负载均衡NLB>实例,在实例页面,找到目标NLB实例,在操作列单击1111>释放,按照界面提示手动释放实例。

    • 如果需继续使用NLB实例,请至少在试用到期1小时前为您的阿里云账号充值,确保账户金额不小于100.00元人民币。到期未续费的NLB实例会因欠费而被自动停机,停机7天内NLB实例将保留,7天后NLB实例和数据都将被自动释放。

  • 本教程使用的是个人版ECS实例,默认为按量付费实例,完成教程后,请参考以下场景处理ECS实例:

    • 如果无需继续使用实例,可以登录ECS控制台,找到目标实例,在操作列单击image.png,搜索并单击释放设置,根据界面提示释放实例。

    • 如果需要继续使用实例,请至少在试用到期1小时前为阿里云账号充值,确保账户金额不小于100.00元人民币。到期未续费的实例会因欠费而被自动停机,停机15天内实例将保留,15天后实例和数据都将被自动释放。

  • EIP提供的按量付费试用实例到期未释放可能产生费用。

    若您在创建NLB实例时,EIP使用默认的自动分配公网IP配置,公网NLB实例释放后,自动分配的EIP也会同步释放。若您在创建NLB实例时,选择自有EIP资源,NLB实例释放后,请参考以下场景处理EIP实例:

    • 如果无需使用EIP实例,您可以登录弹性公网IP管理控制台,在弹性公网IP页面,找到目标EIP实例,在操作列单击1111>释放,按照界面提示手动释放EIP实例。

    • 如果需继续使用EIP实例,请至少在试用到期1小时前为阿里云账号充值,确保账户余额不小于100.00元人民币。到期未续费的EIP实例会因欠费而被自动停机,停机7天内EIP实例将保留,7天后EIP实例和数据都将被自动释放。

后续

在试用期有效期间,您还可以根据希望测试的其他业务场景继续使用四层负载均衡NLB产品。

  • 关于NLB相关教程,请参见NLB教程

  • 体验NLB实例的新建连接限速、全端口监听等高级特性。具体操作,请参见添加TCP监听

总结

常用知识点

问题1:创建NLB实例时显示IP不足无法购买的原因?(单选题)

  • 可用区选择数量不够

  • 交换机预留的可用IP不够

正确答案是交换机预留的可用IP不够。创建NLB实例要求每个交换机最少预留5个可用IP,包含4个健康检查IP和1个虚拟IP地址VIP(Virtual IP address),请确保交换机预留了足够的可用IP。

问题2:健康检查失败的常见原因?(单选题)

  • 可能是后端ECS未部署服务

  • 未开启健康检查

正确答案是后端ECS未部署服务。

延伸阅读