CLB快速实现IPv4服务的负载均衡

单台服务器部署应用的场景,容易因单点故障(例如服务器异常或流量超出服务器处理能力等),而降低系统整体可用性与终端用户体验。您可以使用传统型负载均衡CLB改造系统,通过CLB将流量分发到多台后端服务器,实现弹性、高可用的应用系统架构。

方案概览

使用CLB快速实现IPv4服务的负载均衡,只需3步:

  1. 创建公网CLB实例:公网CLB实例自带固定公网IP地址,无需绑定弹性公网IP即可对外提供公网访问服务。

  2. 配置CLB实例监听与服务器组:

    1. CLB服务器组是指一组逻辑上的后端服务器集合,这些服务器用于处理来自CLB分发的业务请求。可以根据实际需求动态调整后端服务器的数量,以应对不同的流量压力。

    2. CLB监听用于监听来自客户端的特定协议与端口的访问流量,并转发给指定的后端服务器组进行处理。

  3. 配置域名解析:CLB对外提供的服务地址为IP地址,实际业务中用户通常将自有域名解析到CLB实例的服务地址,实现通过域名访问服务。

业务架构示意图:

image

前提条件

  • 已创建服务器ECS01ECS02(ECS需要与CLB在同一个地域,同时为了保障可用区级高可用,建议将两个ECS创建在不同的可用区)。

    ECS测试应用脚本示例

    ECS01服务部署命令:

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

    ECS02服务部署命令:

    yum install -y nginx
    systemctl start nginx.service
    cd /usr/share/nginx/html/
    echo "Hello World ! This is ECS02." > index.html
  • 已完成域名注册。如果您的域名访问的是阿里云中国内地服务器,您还需要进行ICP备案

操作步骤

步骤一:创建公网CLB实例

  1. 登录传统型负载均衡CLB控制台,顶部菜单栏选择实例所属地域。

  2. 单击创建传统型负载均衡。在购买页面,选择CLB所在地域与可用区,并配置实例名称。

    重要选项说明与配置建议

    选项

    说明

    配置建议

    地域和可用区

    CLB实例所属的地域和承载流量的可用区。

    • 选择支持多可用区类型的地域

    • CLBECS在同一个地域

    可用区类型

    CLB是地域内的资源。

    • 单可用区:地域仅支持单个可用区部署CLB。

    • 多可用区:地域支持多个可用区部署CLB。默认通过主可用区CLB提供服务,当主可用区故障时系统会自动切换到备可用区CLB继续提供负载均衡服务。详情可参考同城容灾 (多可用区容灾)

    实例计费方式

    • 按使用量计费:适用于业务测试或波峰波谷效应明显的场景,实例性能根据用量自动弹性无需指定实例规格。

    • 按规格计费:适用于业务量较平稳的场景,需要根据购买实例规格收取固定规格费。

    按使用量计费

    实例类型

    • 公网:CLB提供公网IP服务地址,可被公网客户端访问。

    • 私网:CLB提供VPC内的私网IP地址,无法转发来自公网的请求。

    公网

    IP版本

    CLB提供的服务地址的IP类型。

    • IPv4:对外CLB仅提供IPv4地址。

    • IPv6:对外CLB仅提供IPv6地址。

    IPv4

    公网流量费

    仅公网CLB实例收取公网流量费用。

    • 按使用流量计费:适用于波峰波谷效应明显的业务。

    • 按固定带宽计费:适用于带宽较为平稳的业务。

    按使用流量计费

    实例计费详情您可参考计费文档:按量付费

    imageimage

  3. 完成实例购买与创建。传统型负载均衡CLB控制台页面将展示新创建的实例。

步骤二:配置实例监听与服务器组

  1. 实例管理页面,单击目标实例右侧的监听配置向导

  2. 配置监听协议与监听端口。

    重要选项说明与配置建议

    选项

    说明

    配置建议

    监听协议

    CLB对外提供服务的协议。

    • TCP/UDP:通常称为四层监听协议。

    • HTTP/HTTPS:通常称为七层监听协议。

    说明

    原理简要说明:

    • 四层监听:将请求直接转发给后端服务器。以TCP监听为例,客户端请求到达CLB后,CLB根据监听中配置的后端端口修改报文的目的IP和目的端口,并将流量转发给对应的后端服务器。

    • 七层监听:原理上是反向代理的一种实现。客户端请求到达CLB后,CLB与后端服务器建立新的TCP连接,即再次通过新TCP连接的HTTP协议访问后端服务器,而不是直接转发报文到后端服务器。

    详情可参考:产品架构

    HTTP

    说明

    七层监听比四层监听在底层实现上多了一个七层处理环节。此外,客户端端口不足、后端服务器连接过多等场景可能导致七层服务性能不高,如果您对性能有很高的要求,建议您选择四层监听。

    监听端口

    CLB对外提供服务的端口。

    80

    详细配置参数您可参考:CLB监听

    image

  3. 配置服务器组,并添加服务器。image

    选择CLB后端需要挂载的服务器。

    image

    配置后端服务器应用端口。

    image

  4. 健康检查建议保持默认配置。

    负载均衡健康检查功能配置建议

    负载均衡通过健康检查来判断后端服务器的业务可用性。

    开启健康检查功能后,当某台后端服务器健康检查出现异常时,负载均衡会自动将新的请求分发到其他健康检查正常的后端服务器上;而当该后端服务器恢复正常运行时,负载均衡会将其自动恢复到负载均衡服务中进行流量转发。

    健康检查机制提高了用户业务整体可用性,避免了局部后端服务器异常对总体服务的影响,是保证业务高可用的重点要素。

    重要

    如果您的业务对负载敏感性高,高频率的健康检查探测可能会对正常业务访问造成影响。您可以结合业务情况,通过降低健康检查频率、增大健康检查间隔、七层检查修改为四层检查等方式,来降低对业务的影响。但为了保障业务的持续可用,不建议关闭健康检查。

    详情您可参考:CLB健康检查

    image

  5. 完成配置审核,并提交。image

步骤三:配置域名解析

  1. 实例管理页,找到目标实例,复制服务地址列的IP地址。

  2. 添加A解析记录,将域名解析到CLB的服务IP地址。

    1. 登录域名解析控制台,找到目标域名,在操作列单击解析设置

    2. 单击添加记录,配置记录类型、主机记录、记录值,其他参数保持默认。

      • 记录类型:选择A记录,即将域名指向一个IPv4地址。

      • 主机记录:域名前缀。

      • 记录值:填写CLB的服务IP地址。

      image

测试效果

以任意一台可以访问公网的客户端为例。

在浏览器中输入域名,多次刷新页面,您可以观察到客户端请求在ECS01ECS02之间切换。

说明

如果您配置的端口不是监听协议的默认端口,则需要输入完整的协议+域名+端口,例如:http://www.example.com:9000

image

image

停用任意一台ECS,客户端请求仍然可以正常访问。这表明在单台后端服务器出现故障时,负载均衡仍然能够保证业务的可用性。

更多操作

删除资源

如果您测试完毕无需继续使用实例,请尽快删除资源,避免产生不必要的费用。

  1. 删除域名解析记录:登录域名解析控制台,单击目标域名。找到目标解析记录,单击右侧的删除,删除解析记录。

  2. 删除CLB:登录传统型负载均衡CLB控制台。在目标实例操作列选择2 > 释放设置,立即释放实例并确认。

  3. 删除ECS、安全组等资源:

    1. 登录云服务器ECS实例控制台。顶部选择实例所属地域,找到目标实例,单击右侧的image.png,弹出的窗口中选择释放,立即释放实例并确认。

    2. 登录云服务器ECS安全组控制台,顶部选择安全组所属地域,找到目标安全组,单击右侧的删除,删除安全组。

  4. 删除VPC等资源:登录专有网络VPC控制台,顶部选择实例所属地域。单击VPC实例右侧删除,完成VPC与交换机等网络资源的删除。

相关文档