CLB七层监听一键迁移ALB最佳实践

重要

本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。

应用型负载均衡ALB(Application Load Balancer)相比传统型负载均衡CLB(Classic Load Balancer),具有强大的七层负载均衡处理能力与丰富的高级路由功能,具备大规模应用层流量处理能力,可以一键开启WAF应用防护,转发与防护完全解耦。且支持更多高阶功能,让您拥有更好的负载均衡体验。本文为您介绍如何将CLB七层监听一键迁移至ALB。

迁移限制

CLB一键迁移ALB的功能默认不开放,如需使用,请登录配额中心控制台,在权益配额列表页面,输入配额ID为slb_user_visible_gray_label/clone_clb,然后进行申请。更多信息,请参见管理ALB配额

支持迁移的CLB实例类型

  • 专有网络类型的IPv4私网CLB实例,且已配置七层监听(HTTP或HTTPS监听)

  • IPv4公网CLB实例,且已配置七层监听(HTTP或HTTPS监听)

不支持一键迁移的场景

以下三个场景不支持使用迁移向导一键迁移,建议您手动迁移CLB七层监听至ALB

  • 未配置HTTP或HTTPS监听的CLB实例

  • 经典网络类型的私网CLB实例

  • IPv6类型的CLB实例

迁移过程注意事项

  • ALB未支持的地域不支持迁移。ALB支持的地域,请参见ALB支持的地域与可用区

  • WAF应用防护的相关配置不支持迁移。若CLB已开启WAF,迁移后需要您手动开启WAF防护。新建ALB实例推荐开启WAF3.0,具体操作,请参见开通和管理ALB WAF增强版

  • CLB监控的阈值报警配置不支持迁移,需要您通过云监控控制台、API、SDK配置。迁移后如需配置,请参见设置ALB监控项报警规则

  • 默认开启DDoS防护。提升DDoS阈值的相关配置不支持迁移,迁移后需要您在DDoS控制台手动配置。

  • 访问控制相关配置不支持迁移。迁移后如需配置,请参见访问控制

  • HTTPS监听的服务器证书与CA证书需要您手动指定。

  • CLB主备服务器组的相关配置不支持迁移至ALB。

  • 私网CLB实例的后端服务器会直接迁移至ALB。公网CLB的后端服务器暂不支持迁移ALB,系统将在ALB所在VPC内创建一个新的服务器组,您需要手动添加后端服务器至该服务器组中(后端服务器需与ALB实例处于同一VPC)。

计费说明

CLB一键迁移ALB功能不收取额外费用,新创建的ALB实例按照ALB计费规则收费。

ALB相关计费规则,请参见ALB计费规则

CLB相关计费规则,请参见:

前提条件

  • 待迁移的CLB实例已配置七层监听(HTTP或HTTPS监听)。

  • 本文操作过程中使用了4台ECS服务器。

    • 承载业务应用的服务器:ECS01和ECS02作为后端服务器。

    • 用于测试的服务器:ECS03用于测试迁移前流量,ECS04用于验证迁移时的访问流量。

      如果您已有测试服务器,无需创建ECS03和ECS04。

单击查看本文CLB实例的参数规划

配置

迁移前CLB实例配置

网络类型

公网

服务地址:47.XX.XX.144

域名解析

www.example.net

监听协议

HTTP,监听端口80。

后端服务器

ECS01、ECS02

步骤一:在控制台一键迁移

  1. 请选择以下任一方式进入迁移向导。

    方式一:通过CLB控制台进入

    1. 登录传统型负载均衡CLB控制台

    2. 在顶部菜单栏,选择待迁移CLB实例所属的地域。

    3. 实例管理页面,找到目标实例,单击实例ID。

    4. 单击迁移向导页签,确认提示信息后,单击启动ALB迁移向导

    方式二:通过ALB控制台进入

    1. 登录应用型负载均衡ALB控制台
    2. 在顶部菜单栏,选择待迁移CLB实例所属的地域。

    3. 实例页面,单击CLB迁移ALB向导

    4. CLB迁移ALB向导对话框中,确认提示信息,选择待迁移CLB实例后,单击进入迁移向导

  2. 配置审核配置向导,确认CLB基本信息和ALB预配置信息,并根据提示信息完成所有监听列表感叹号.png提示的配置,选中确认复选框,然后单击下一步

    • 感叹号.png:表示需要用户手动完成的配置项。

    • 感叹号 (1).png:表示系统自动变更的配置项。

    您可以单击编辑监听编辑证书,修改ALB监听配置,仅HTTPS监听支持编辑证书。

  3. 创建实例配置向导,配置迁移后ALB实例所属的专有网络和交换机,然后单击下一步

    配置

    说明

    专有网络

    • 私网CLB实例:默认为ALB实例分配与CLB实例相同的专有网络。

    • 公网CLB实例:您需要手动配置一个专有网络。

    可用区

    选择可用区和交换机。

    1. ALB支持多可用区部署,若当前地域支持2个及2个以上的可用区,为保障业务高可用,请至少选择2个可用区,且ALB不会额外收取可用区的费用。

    2. 分别在所选可用区内选择交换机,如果可用区下无交换机,请根据控制台提示创建交换机。

    3. 可选:公网CLB实例迁移时,需要在所选可用区内选择EIP。

      • 如果无可用存量EIP,可选择新购弹性公网IP:系统将帮您自动创建按量付费(按使用流量计费)的BGP多线默认安全防护EIP,并绑定至ALB实例。

      • 选择已有的EIP:您可以指定已创建的EIP并绑定至新购的ALB实例上。

        重要
        • 仅可绑定暂未加入共享带宽的按量付费(按使用流量计费)的已购EIP。

        • 同一个ALB实例不同可用区分配的EIP类型需保持一致。

  4. 确认订单配置向导,确认ALB实例的配置信息,选中价格计费服务协议复选框,然后单击下一步

  5. 完成配置向导,等待迁移任务执行完成后,您可以执行以下操作。

    迁移任务大约需要1~10分钟,请您耐心等待。该迁移任务由资源编排服务完成,您可以根据提示前往ROS资源栈控制台查看资源栈任务执行过程。

    • 单击查看实例,查看迁移后ALB实例的实例详情。

    • 单击返回CLB实例列表,查看CLB实例列表。

    • 单击返回ALB实例列表,查看ALB实例列表。

  6. 后续操作。迁移任务执行完成后,请检查迁移后的ALB实例是否有后端服务器。

    1. 在左侧导航栏选择应用型负载均衡ALB > 实例

    2. 实例页面,找到迁移后的ALB实例,单击实例ID。

    3. 单击监听页签,找到目标监听,在操作列单击查看详情

    4. 监听详情页签,在服务器组(监听默认转发)区域,单击查看/编辑后端服务器,跳转至后端服务器页签后,查看是否有后端服务器。

      若无后端服务器,请单击添加后端服务器为ALB实例添加至少2台后端服务器,并为该后端服务器部署应用服务,以确保ALB实例可以正常分发客户端的访问请求。本文ALB实例已添加后端服务器ECS01和ECS02。

      • 关于如何创建ECS实例,请参见自定义购买实例

      • 本文ECS01与ECS02部署测试应用示例如下:

        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
        

步骤二:测试流量

(可选)开启访问日志

ALB联合日志服务(SLS)推出了访问日志功能,您可以通过访问日志监控ALB实例的负载情况和定位问题。

  1. 登录应用型负载均衡ALB控制台
  2. 在顶部菜单栏处,选择ALB实例所属的地域。

  3. 实例页面,找到目标ALB实例,单击实例ID。

  4. 在实例详情页,单击访问日志页签。在访问日志页签,单击创建访问日志

  5. 创建访问日志对话框,配置项目Project日志库Logstore,然后单击确定,在弹出的对话框中确认提示信息后,再次单击确定

    配置

    说明

    项目Project

    日志服务中的资源管理单元,用于资源隔离和控制。

    • 选择现有Project:在下拉框中选择一个Project。

    • 新建Project:在文本框中输入新建Project名称。

    日志库Logstore

    日志服务中日志数据的采集、存储和查询单元。

    • 选择现有Logstore:在下拉框中选择一个Logstore。

    • 新建Logstore:在文本框中输入新建Logstore名称。Project选择新建时,Logstore也需选择新建。

    服务关联角色创建须知

    执行此操作时,将会为您自动创建一个服务关联角色,以完成相应功能。

流量测试

  1. 远程登录ECS03,具体操作,请参见ECS远程连接操作指南

    说明

    购买时,该ECS03实例已分配公网IP地址。

  2. 执行以下命令修改hosts文件。

    sudo vi /etc/hosts

    进入hosts文件中,新增以下ALB实例的弹性公网IP地址和域名。修改完成后,保存并退出该文件的修改。

    118.XX.XX.113 www.example.net
  3. 执行以下命令,测试ALB的流量转发。

    curl -v www.example.net

    运行结果如下图所示:

    image.pngimage.png

  4. (可选)返回ALB控制台,找到目标ALB实例的访问日志页签,单击SLS日志存储右侧的链接,查看访问日志。

    访问日志在日志服务控制台,您也可以根据需求结合request_uri、http_host、upstream_addr、status等字段查看ALB域名或路径转发策略的运行日志。

步骤三:迁移流量至ALB实例

警告
  • 流量迁移前,请比对您的CLB转发策略和ALB转发规则的配置,确保二者提供的能力完全一致,且所有配置经过完备的测试验收,以免在迁移过程中对您的业务产生非预期的影响。

  • 建议在业务低谷期进行CLB流量的迁移。

本文中CLB实例已配置域名解析。您已将业务域名通过A记录解析的方式指向CLB实例的服务地址。在完成ALB实例配置的验收后,本文以阿里云云解析DNS为例,为您介绍CLB流量迁移至ALB的操作步骤。您可以通过以下步骤完成流量的迁移。关于阿里云云解析DNS的介绍,请参见公网权威解析现状

迁移步骤

第一步:CLB实例配置临时域名

ALB实例推荐使用CNAME解析,为满足域名权重配置的启用条件,您需要为临时域名添加一条CNAME解析记录,同时将该临时域名指向待迁移CLB实例的服务地址。本文假设CLB实例配置的域名为example.net

说明

权重配置的启用条件是域名下存在相同的主机记录、相同解析线路的多条A记录、CNAME记录、AAAA记录。

  1. 登录域名解析控制台

  2. 权威域名解析页面,找到指向待迁移CLB实例的DNS域名www.example.net,单击该域名。

  3. 解析设置页面,单击添加记录,在添加记录面板,完成以下参数的配置,然后单击确定

    配置

    说明

    记录类型

    在下拉列表中选择CNAME

    主机记录

    您的域名的前缀。本文输入www

    解析请求来源

    选择默认。

    记录值

    输入临时域名,本文输入web0.example.net

    TTL

    全称Time To Live,表示DNS记录在DNS服务器上的缓存时间,本文设置为5秒。

  4. 解析设置页签,找到指向待迁移CLB实例服务地址的A记录,在操作列单击修改

  5. 在弹出的修改记录面板,修改主机记录,然后单击确定。本文修改主机记录web0,其余参数保持不变。

第二步:ALB实例添加CNAME解析

  1. 域名解析页面,找到指向待迁移CLB实例的DNS域名www.example.net,单击该域名。

  2. 解析设置页面单击添加记录,在添加记录面板配置以下信息完成CNAME解析配置,然后单击确定

    配置

    说明

    记录类型

    在下拉列表中选择CNAME

    主机记录

    您的域名的前缀。本文输入www

    解析线路

    选择默认。

    记录值

    输入域名对应的CNAME地址,即您复制的ALB实例的DNS域名。

    TTL

    全称Time To Live,表示DNS记录在DNS服务器上的缓存时间,本文设置为5秒。

第三步:设置权重,开始流量灰度

  1. 权威域名解析页面,单击目标域名实例ID。

  2. 单击权重配置页签,找到目标域名,在操作列单击设置权重

    权重配置的启用条件是域名下存在相同的主机记录、相同解析线路的多条A记录、CNAME记录、AAAA记录。

  3. 设置权重面板,分别为CLBALB实例的解析记录设置权重。将CLB实例对应的解析记录的权重设置为100,同时将ALB实例对应的解析记录的权重设置为0

    image

  4. 在观察业务没有影响的情况下,逐步减小CLB实例解析记录的权重值,同时逐步增加ALB实例解析记录的权重值。

  5. 登录与ALB实例所属同一VPC的ECS04实例,多次执行dig命令,验证流量迁移效果。

    说明

    该ECS04实例已分配公网IP地址,且已通过yum install bind-utils命令安装了dig命令。

    dig www.example.net

    运行结果如下图所示。您可以通过多次运行结果观察到,请求会根据权重分配至ALBCLB处理。image

    image

第四步:完成流量迁移

根据流量迁移的验证结果,逐步将CLB实例解析记录的权重值减小至0,同时逐步增加ALB实例解析记录的权重值至100。至此,您已完成CLB实例流量至ALB实例的迁移,当CLB实例长连接全部处理完成,且CLB实例没有新增流量时,您可以根据业务场景静默观察一段时间后释放该CLB实例。关于如何释放CLB实例,请参见释放CLB实例

如果您的DNS服务解析商不支持CNAME解析的权重配置,请单击此处查看流量迁移方案。

临时流量切换方案

常见问题

  1. CLB重定向和转发策略如何迁移?

    迁移后,自动为ALB实例配置重定向和域名路径转发规则。更多信息,请参见配置监听转发规则

  2. CLB HTTPS监听的证书如何迁移?

    1. 迁移过程中需要您手动指定证书。若没有证书,您需要先前往证书中心购买或上传证书。

    2. 迁移后,系统将根据您指定的服务器证书、扩展证书和CA证书,自动配置对应的证书。

  3. 同一个公网CLB实例挂载不同VPC下ECS时,如何迁移后端服务器?

    • ALB服务器组有VPC属性,系统将在ALB所在VPC内创建一个新的服务器组,您需要手动添加后端服务器至该服务器组中(后端服务器需与ALB实例处于同一VPC)。

    • ALB IP类型的服务器组支持跨VPC挂载服务器,如有跨VPC挂载ECS的需求,在使用迁移向导迁移完成后,您可以为ALB实例创建IP类型的服务器组,并将不同VPC下的ECS添加至该服务器组。更多信息,请参见使用ALB挂载跨地域VPC内的服务器

相关文档