本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。
应用型负载均衡ALB(Application Load Balancer)相比传统型负载均衡CLB(Classic Load Balancer),具有强大的七层负载均衡处理能力与丰富的高级路由功能,具备大规模应用层流量处理能力,可以一键开启WAF应用防护,转发与防护完全解耦。且支持更多高阶功能,让您拥有更好的负载均衡体验。本文为您介绍如何将CLB七层监听手动迁移至ALB。
场景示例
本文以下图场景为例。某企业在阿里云华东1(杭州)地域已购买了一个公网CLB实例,该CLB实例已配置重定向、域名和路径的转发策略,且对外通过DNS域名提供服务。客户端访问域名www.example.net时,DNS解析会根据A记录配置将流量指向CLB实例,CLB实例根据转发策略将流量转发到ECS01和ECS02处理。
由于业务发展需要,该企业需要将CLB实例的业务迁移至ALB实例。为了保持业务稳定,希望不改变对外提供服务的DNS域名及后端服务器的IP地址。企业可以通过在华东1(杭州)地域新购一个ALB实例并完成相关配置,使ALB转发规则提供的能力与CLB转发策略一致,然后利用DNS域名解析的权重设置完成流量的迁移。
注意事项
前提条件
- 待迁移的CLB实例已配置监听和后端服务器,且该CLB实例已设置A记录域名解析,对外通过域名提供服务。具体操作,请参见入门概述。 
- 待迁移的CLB实例的后端服务器为ECS01和ECS02,且ECS01和ECS02所属专有网络为VPC1。 
- 待迁移的CLB实例已配置重定向和转发策略。具体操作请参见使用CLB将HTTP访问重定向至HTTPS和基于域名或URL路径进行转发。 
- 您已在VPC1中创建了云服务器ECS03和ECS04,ECS03用于进行迁移前的流量测试,ECS04用于验证迁移时的访问流量,且ECS04已安装dig命令。 
步骤一:创建ALB实例
- 登录应用型负载均衡ALB控制台。
- 在实例页面,单击创建应用型负载均衡。 
- 在应用型负载均衡(按量付费)购买页面,完成以下配置。 - 配置 - 说明 - 地域 - 选择ALB实例所属的地域,需与待迁移CLB实例所属的地域相同。本文选择华东1(杭州)。 - 实例网络类型 - 选择实例网络类型,系统会根据您的选择分配私网或公网服务地址。实例网络类型需与待迁移CLB实例相同。本文选择公网。 - 私网:ALB只有私网IP地址,只能被ALB所在VPC内的资源访问,无法从互联网访问。 
- 公网:ALB具有公网IP和私网IP地址。公网ALB默认通过弹性公网IP(Elastic IP Address,简称EIP)提供公网能力,选择公网将会收取弹性公网IP的实例费、流量费用。 - 公网IP:弹性公网IP对外提供服务,支持通过互联网访问ALB。 
- 私网IP:支持云上VPC内的资源访问ALB。 
 
 - ALB支持变更实例网络类型。具体操作,请参见变更ALB实例的网络类型。 说明- 对于双栈实例,默认使用IPv4地址对外提供公网服务。如果您需要使用IPv6公网地址,需要变更网络类型,同时会产生IPv6网关费用,更多信息,请参见IPv6网关计费说明。 - VPC - 选择待迁移CLB实例后端服务器所在的VPC。本文选择VPC1。 - 可用区 - 选择可用区和交换机。 - ALB支持多可用区部署,若当前地域支持2个及2个以上的可用区,为保障业务高可用,请至少选择2个可用区,且ALB不会额外收取可用区的费用。 
- 分别在所选可用区内选择交换机,如果可用区下无交换机,请根据控制台提示创建交换机。 
- 可选:分别在所选可用区内选择EIP。 - 如果无可用存量EIP,可保持默认选项自动分配公网IP:系统将帮您自动创建按量付费(按使用流量计费)的BGP多线默认安全防护EIP,并绑定至ALB实例。 
- 选择已有的EIP:您可以指定已创建的EIP并绑定至新购的ALB实例上。 重要- 仅可绑定暂未加入共享带宽的按量付费(按使用流量计费)的已购EIP。 
- 同一个ALB实例不同可用区分配的EIP类型需保持一致。 
 
 
 - 协议版本 - 选择实例的协议版本。IPv4的CLB实例可以迁移至IPv4或双栈的ALB实例,IPv6的CLB实例仅支持迁移至双栈ALB实例。您可以根据实际情况选择协议版本。 - IPv4:表示ALB实例仅支持客户端使用IPv4地址访问。 
- 双栈:表示ALB实例支持客户端同时使用IPv4和IPv6地址访问。双栈使用限制,请参见协议版本。 
 - 功能版本(实例费) - 选择实例的功能版本。 - 基础版:包含应用型负载均衡的基本功能,可支持基于域名、URL、HTTP Header等路由转发。 
- 标准版:在基础版的功能基础上,还包含自定义TLS安全策略,重定向、重写等高级路由功能。 
- WAF增强版:在标准版的功能基础上增加WAF安全防护功能,选择此功能后ALB实例上配置监听的Web业务流量自动接入到WAF 3.0防护。WAF增强版使用限制,请参见ALB WAF增强版的使用限制。 
 - 关于基础版、标准版、WAF增强版功能差异的更多信息,请参见功能特性。 - 加入共享带宽 - 未加入共享带宽时,单ALB实例(双可用区)默认公网带宽峰值为400 Mbps。 - 如需更大带宽,请选择加入共享带宽。如选中加入共享带宽,则需选择共享带宽包,如果没有可选共享带宽包,可单击购买共享带宽包并完成购买,然后返回ALB购买页面单击  图标,即可选择共享带宽包。 图标,即可选择共享带宽包。- 建议您购买后付费共享带宽,关于如何购买共享带宽,请参见创建与管理共享带宽。 说明- 该参数仅在实例网络类型为公网时有效。 - 公网计费方式 - 公网计费方式默认选项为按流量计费。按流量计费方式中带宽峰值不作为业务承诺指标,仅作为参考值和带宽上限峰值。当出现资源争抢时,带宽峰值可能会受到限制。关于弹性公网网络费计费说明,请参见弹性公网IP计费。 说明- 该参数仅在实例网络类型为公网,并且未选择加入共享带宽时有效。 - 实例名称 - 输入自定义实例名称。 - 资源组 - 选择ALB所属的资源组。 - 关联角色创建须知 - 首次购买应用型负载均衡时您需要单击创建创建一个服务关联角色,允许应用型负载均衡访问您的弹性网卡,安全组,弹性公网IP,共享带宽包等产品服务。更多信息,请参见ALB服务关联角色。 说明- 该参数仅在首次创建ALB时展示。 
- 单击立即购买,然后根据控制台提示完成实例开通。 
步骤二:创建ALB服务器组
- 登录应用型负载均衡ALB控制台。
- 在顶部菜单栏处,选择ALB实例所属的地域。本文选择华东1(杭州)。 
- 在左侧导航栏,选择。 
- 在服务器组页面,单击创建服务器组。 
- 在创建服务器组对话框,完成以下配置,然后单击创建。 - 此处仅列出与本文强相关的配置项,其余部分参数可保持默认值。更多信息,请参见创建和管理服务器组。 - 配置 - 说明 - 服务器组类型 - 选择一种服务器组类型。本文选择服务器类型。 - 服务器组名称 - 输入自定义服务器组名称。本文输入RS1。 - VPC - 从VPC下拉列表中选择一个VPC,只有该VPC下的服务器可以加入到该服务器组。本文选择待迁移CLB实例后端服务器所属的VPC1。 - 选择后端协议 - 选择一种后端协议。本文选择HTTP。 - 选择调度算法 - 选择一种调度算法。本文选择加权轮询。 
- 在弹出的对话框中,单击添加后端服务器,在后端服务器页签,单击添加后端服务器。 
- 在添加后端服务器面板,选择与待迁移CLB实例相同的后端服务器,然后单击下一步。 - 本文选择ECS01和ECS02。 
- 在配置端口和权重配置向导,设置ECS的端口和权重,然后单击确定。 - 本文端口配置为80,权重保持默认值100。 说明- 为应对业务突增或者指定时间段的波峰,您可以使用弹性伸缩为ALB自动添加或移除后端服务器,有效控制成本。 
步骤三:ALB实例配置监听
本文以为ALB实例配置重定向、域名和路径的转发规则为例进行介绍。
- CLB配置了HTTP重定向,ALB的HTTP监听也需配置重定向转发规则。 
- CLB配置了域名和路径的转发策略,ALB也需要配置域名和路径的转发规则,且需与CLB实现的功能一致。 
添加HTTP和HTTPS监听
- 登录应用型负载均衡ALB控制台。
- 在顶部菜单栏处,选择ALB实例所属的地域。本文选择华东1(杭州)。 
- 选择以下一种方法,打开监听配置向导。 - 在实例页面,在目标实例操作列单击创建监听。 
- 在实例页面,单击目标实例ID。在监听页签,单击创建监听。 
 
- 在配置监听配置向导,完成以下配置,然后单击下一步完成HTTP监听的配置。 - 监听配置 - 说明 - 选择监听协议 - 选择监听的协议类型。 - 本文选择HTTP。 - 监听端口 - 输入用来接收请求并向后端服务器进行请求转发的监听端口,端口范围为1~65535。 通常HTTP协议使用80端口,HTTPS协议使用443端口。 说明- 在同一个负载均衡实例内,监听端口不可重复。 - 本文输入80。 - 监听名称 - 输入监听名称。 - 高级配置 - 单击修改展开高级配置。本文保持默认配置。 
- 在选择服务器组配置向导,选择服务器类型的服务器组,查看后端服务器信息,然后单击下一步。 - 本文选择服务器组RS1。 
- 在配置审核配置向导,确认配置信息,然后单击提交。 
- 请参见添加HTTPS监听完成HTTPS监听的配置。 - 此处仅列出与本文强相关的配置项: - 选择监听协议:选择HTTPS。 
- 监听端口:输入443。 
 
配置重定向
为ALB实例的HTTP监听配置重定向转发规则,将访问ALB的所有HTTP请求均重定向至HTTPS的443端口。
- 在监听页签,单击已创建的HTTP监听ID。在监听详情页,单击转发规则页签。 
- 在转发规则页签,单击插入新规则。 
- 在插入转发规则区域,完成以下参数的配置,然后单击确定。  - 配置 - 说明 - 如果(条件全部匹配) - 在下拉框中选择路径及精准匹配及通配符,本文输入 - /*。- 那么转发动作是 - 在下拉框中选择重定向,参数配置如下。 - 协议:本文选择HTTPS。 
- 域名:本文使用默认值${host}。 
- 端口:输入您已创建的HTTPS协议监听端口。本文输入443。 
- 路径:本文使用默认值${path}。 
- 查询:本文使用默认值${query}。 
- 状态码:本文选择301。 
 
配置域名和路径转发
为ALB实例的HTTPS监听配置域名和路径的转发规则。
- 返回监听页签,单击已创建的HTTPS监听ID。在监听详情页,单击转发规则页签。 
- 在转发规则页签,单击插入新规则。 
- 在插入转发规则区域,完成以下参数的配置,然后单击确定。  - 配置 - 说明 - 如果(条件全部匹配) - 在下拉框中选择域名及精准匹配及通配符,本文输入 - www.example.net。
- 单击添加转发条件,在下拉框中选择路径,本文输入/home*。 
 - 那么转发动作是 - 选择转发至服务器类型的服务器组。本文选择服务器组RS1。 说明- 此处选择的服务器组中的后端服务器,需与待迁移CLB实例转发策略中虚拟服务器组的后端服务器保持一致。 
步骤四:测试流量
开启访问日志
ALB联合日志服务(SLS)推出了访问日志功能,您可以通过访问日志监控ALB实例的负载情况和定位问题。
- 登录应用型负载均衡ALB控制台。
- 在顶部菜单栏处,选择ALB实例所属的地域。本文选择华东1(杭州)。 
- 在实例页面,找到目标ALB实例,单击实例ID。 
- 在实例详情页,单击访问日志页签。在访问日志页签,单击创建访问日志。 
- 在创建访问日志对话框,配置项目Project和日志库Logstore,然后单击确定,在弹出的对话框中确认提示信息后,再次单击确定。 - 配置 - 说明 - 项目Project - 日志服务中的资源管理单元,用于资源隔离和控制。 - 选择现有Project:在下拉框中选择一个Project。 
- 新建Project:在文本框中输入新建Project名称。 
 - 日志库Logstore - 日志服务中日志数据的采集、存储和查询单元。 - 选择现有Logstore:在下拉框中选择一个Logstore。 
- 新建Logstore:在文本框中输入新建Logstore名称。Project选择新建时,Logstore也需选择新建。 
 - 服务关联角色创建须知 - 执行此操作时,将会为您自动创建一个服务关联角色,以完成相应功能。 
流量测试
- 远程登录ECS03,具体操作,请参见ECS远程连接操作指南。 
- 执行以下命令修改hosts文件。 - sudo vi /etc/hosts- 进入hosts文件中,新增以下ALB实例的IP地址及域名。修改完成后,保存并退出该文件的修改。 - 118.XX.XX.39 www.example.net
- 执行以下命令,测试重定向配置。 - curl -X GET -L -v http://www.example.net- 运行结果如下图所示:  
- 返回ALB控制台,找到目标ALB实例的访问日志页签,单击SLS日志存储右侧的链接,查看访问日志。  在日志服务控制台,您可以结合request_uri、http_host、upstream_addr、status字段查看ALB域名和路径转发策略的运行日志。 在日志服务控制台,您可以结合request_uri、http_host、upstream_addr、status字段查看ALB域名和路径转发策略的运行日志。
步骤五:迁移流量至ALB
本文假设CLB的访问链路如下图所示。已配置HTTP:80重定向至HTTPS:443,HTTPS支持多域名访问,本文配置的域名为example.net。
- 流量迁移前,请比对您的CLB转发策略和ALB转发规则的配置,确保二者提供的能力完全一致,且所有配置经过完备的测试验收,以免在迁移过程中对您的业务产生非预期的影响。 
- 建议在业务低谷期进行CLB流量的迁移。 
流量迁移前,待迁移的CLB实例已配置域名解析,您已将业务域名通过A记录解析的方式指向CLB实例的服务地址。
在完成ALB实例配置的验收后,本文以阿里云云解析DNS为例,为您介绍CLB流量迁移至ALB的操作步骤。您可以通过以下步骤完成流量的迁移。关于阿里云云解析DNS的介绍,请参见公网权威解析。
第一步:CLB实例配置临时域名并添加CNAME解析
ALB实例推荐使用CNAME解析,为满足域名权重配置的启用条件,您需要为临时域名添加一条CNAME解析记录,同时将该临时域名指向待切换CLB实例的服务地址。本文假设CLB实例配置的业务域名为www.example.net。
权重配置的启用条件是域名下存在相同的主机记录、相同解析线路的多条A记录、CNAME记录、AAAA记录。
- 登录云解析DNS控制台。 
- 在公网权威解析页面,找到待迁移CLB实例使用的域名 - example.net,单击该域名。
- 在解析设置页面,找到指向待迁移CLB实例服务地址的A记录,在操作列单击修改。 
- 在弹出的编辑记录面板,修改主机记录,然后单击确定。本文修改主机记录为web0,其余参数保持不变。 
- 在解析设置页面,单击添加记录。在添加记录面板,完成以下参数的配置,并单击确定保存退出。 - 配置 - 说明 - 记录类型 - 在下拉列表中选择CNAME。 - 主机记录 - 您的域名的前缀。本文输入www。 - 解析请求来源 - 选择默认。 - TTL - 全称Time To Live,表示DNS记录在DNS服务器上的缓存时间,本文设置为5秒。 - 记录值 - 输入临时域名,本文输入web0.example.net。 
第二步:ALB实例添加CNAME解析
在解析设置页面,单击添加记录。在添加记录面板,完成以下参数的配置,并单击确定保存退出。
| 配置 | 说明 | 
| 记录类型 | 在下拉列表中选择CNAME。 | 
| 主机记录 | 您的域名的前缀。本文输入www。 | 
| 解析请求来源 | 选择默认。 | 
| TTL | 全称Time To Live,表示DNS记录在DNS服务器上的缓存时间,本文设置为5秒。 | 
| 记录值 | 输入您复制的ALB实例的DNS域名。 | 
第三步:设置权重,开始流量灰度
- 在解析设置页面,找到第二步中添加的CNAME记录,单击修改后面的下拉按钮,单击修改记录集。 
- 在编辑记录面板下方的记录值集合,分别为CLB和ALB实例的解析记录设置权重。将CLB实例对应的解析记录的权重设置为100,同时将ALB实例对应的解析记录的权重设置为0。单击确定保存退出。  
- 在观察到业务没有受影响的情况下,逐步减小CLB实例解析记录的权重值,同时逐步增加ALB实例解析记录的权重值。 
- 登录ECS04实例,多次执行 - dig命令,验证流量迁移效果。- dig www.example.net- 运行结果如下图所示。您可以通过多次运行结果观察到,请求会根据权重分配至ALB或CLB处理。   
第四步:完成流量迁移
根据流量迁移的验证结果,逐步将CLB实例解析记录的权重值减小至0,同时逐步增加ALB实例解析记录的权重值至100。至此,您已完成CLB实例流量至ALB实例的迁移,当CLB实例长连接全部处理完成,且CLB实例没有新增流量时,您可以根据业务场景静默观察一段时间后释放该CLB实例。关于如何释放CLB实例,请参见释放实例。
迁移完成后,本文中ALB的访问链路如下图所示:
高阶功能
负载均衡产品ALB是对CLB七层负载均衡能力的一次升级,在某些特性的具体表现形式上有一些差异。您可以通过以下文档更好地了解ALB实例、配额限制、快速入门及DDoS防护:
- 关于ALB实例概述,请参见ALB实例。 
- 关于ALB配额限制,请参见ALB使用限制。 
- 关于ALB快速入门, 请参见ALB快速实现IPv4服务的负载均衡和ALB快速实现IPv6服务的负载均衡。 
- ALB默认提供基础的DDoS防护能力。更多信息,请参见什么是DDoS原生防护。 
下表列出了CLB和ALB一些高阶功能的差异:
| 功能 | CLB | ALB | 
| 服务器组 | 支持默认服务器组、虚拟服务器组和主备服务器组。 | 统称为服务器组。 | 
| 将HTTP访问重定向至HTTPS | 在创建监听时选择重定向,配置方式请参见使用CLB将HTTP访问重定向至HTTPS。 | 通过转发规则实现重定向,配置方式请参见使用ALB将HTTP访问重定向至HTTPS。 | 
| 为HTTPS监听挂载多个证书 | 配置方式请参见单CLB实例配置多域名HTTPS网站。 | 配置方式请参见单ALB实例配置多域名HTTPS网站。 | 
| 部署HTTPS业务(单向认证) | 支持阿里云签发的证书和上传非阿里云签发的证书,配置方式请参见使用CLB部署HTTPS业务(单向认证) 。 | 通过数字证书管理服务实现证书管理,配置方式请参见配置全链路HTTPS访问实现加密通信。 | 
| 部署HTTPS业务(双向认证) | 支持阿里云签发的CA证书和上传非阿里云签发的CA证书。配置方式请参见使用CLB部署HTTPS业务(双向认证)。 | 支持阿里云签发的CA证书和上传非阿里云签发的CA证书,通过数字证书管理服务实现证书管理。配置方式请参见使用ALB部署HTTPS业务(双向认证)。 | 
| WAF防护 | 支持WAF透明化接入和CNAME接入。配置方式请参见为CLB实例开启WAF防护和通过CNAME接入为网站开启WAF防护。 | 支持服务化接入、透明化接入和CNAME接入。 
 | 
常见问题
- 迁移前后,CLB实例和ALB实例的哪些配置需要保持一致? - 地域、网络类型、监听协议、后端服务器等需保持一致。ALB实例所属VPC需与CLB实例的后端服务器所属VPC保持一致,可用区无需保持一致。 
- CLB和ALB使用的证书有哪些差异? - CLB和ALB均支持HTTPS协议的加密传输,相对于CLB原生支持上传阿里云签发和非阿里云签发证书;ALB使用的证书依赖数字证书管理服务提供的能力,由阿里云证书中心管理。 - 对于CLB实例,证书上传的相关操作请参见上传证书。 
- 对于ALB实例,证书上传的相关操作请参见购买正式证书、上传、同步和共享SSL证书和管理证书应用仓库中的证书。 
 
- CLB和ALB访问控制有哪些差异? 
- CLB和ALB的域名解析有哪些差异? - CLB实例需要通过A记录解析的方式,将自定义域名指向CLB的服务地址。 
- 对于ALB实例: - 建议您使用CNAME解析的方式将自定义域名指向到ALB实例的DNS名称,使您更方便访问网络资源。 
- 如果您的自定义域名需要解析到固定IP地址,建议您使用固定IP模式的ALB,通过A记录解析的方式将自定义域名解析至ALB提供的IP地址。