应用型负载均衡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类型需保持一致。
IP模式
选择实例的IP地址模式。
固定IP:每个可用区有且只有一个IP,并且IP地址保持固定不变。此模式下实例弹性能力有限,最大支持10万QPS。
动态IP:每个可用区至少有一个IP,随着业务请求的增加,会自动扩展IP数量。此模式下最大支持100万QPS。
协议版本
选择实例的协议版本。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。
选择调度算法
选择一种调度算法。本文选择加权轮询。
选择资源组
选择云资源归属的资源组。
开启IPv6挂载
选择是否需要开启IPv6挂载功能。本文保持默认配置,即不开启IPv6挂载。
开启会话保持
开启或关闭会话保持。本文保持默认配置,即不开启会话保持。
是否开启后端长连接
选择是否需要开启后端长连接,本文保持默认配置,即开启后端长连接。
配置健康检查
开启或关闭健康检查。本文保持默认配置,即开启健康检查。
高级配置
本文保持默认配置。
在弹出的对话框中,单击添加后端服务器,在后端服务器页签,单击添加后端服务器。
在添加后端服务器面板,选择与待迁移CLB实例相同的后端服务器,然后单击下一步。
本文选择ECS01和ECS02。
在配置端口和权重配置向导,设置ECS的端口和权重,然后单击确定。
本文端口配置为80,权重保持默认值100。
说明ALB实例动态IP模式最高提供100万QPS,标准版ALB实例最多可挂载1000台后端服务器。为了应对业务突增或者指定时间段的波峰,您可以使用弹性伸缩为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域名和路径转发策略的运行日志。
步骤五:迁移流量至ALB
本文假设CLB的访问链路如下图所示。已配置HTTP:80重定向至HTTPS:443,HTTPS支持多域名访问,本文配置的域名为example.net。
流量迁移前,请比对您的CLB转发策略和ALB转发规则的配置,确保二者提供的能力完全一致,且所有配置经过完备的测试验收,以免在迁移过程中对您的业务产生非预期的影响。
建议在业务低谷期进行CLB流量的迁移。
流量迁移前,待迁移的CLB实例已配置域名解析,您已将业务域名通过A记录解析的方式指向CLB实例的服务地址。
在完成ALB实例配置的验收后,本文以阿里云云解析DNS为例,为您介绍CLB流量迁移至ALB的操作步骤。您可以通过以下步骤完成流量的迁移。关于阿里云云解析DNS的介绍,请参见公网权威解析。
第一步:CLB实例配置临时域名
ALB实例推荐使用CNAME解析,为满足域名权重配置的启用条件,您需要为临时域名添加一条CNAME解析记录,同时将该临时域名指向待切换CLB实例的服务地址。
权重配置的启用条件是域名下存在相同的主机记录、相同解析线路的多条A记录、CNAME记录、AAAA记录。
登录域名解析控制台。
在域名解析页面,找到指向待迁移CLB实例的DNS域名
www.example.net
,单击该域名。在解析设置页面,单击添加记录,在添加记录面板,完成以下参数的配置,然后单击确认。
配置
说明
记录类型
在下拉列表中选择CNAME。
主机记录
您的域名的前缀。本文输入www。
解析请求来源
选择默认。
记录值
输入临时域名,本文输入web0.example.net。
TTL
全称Time To Live,表示DNS记录在DNS服务器上的缓存时间,本文设置为5秒。
本文使用的是企业旗舰版云解析DNS,为方便验证将TTL设置为5秒。您可以根据实际情况进行设置,更多信息,请参见版本对比。
在解析设置页面,找到指向待迁移CLB实例服务地址的A记录,在操作列单击修改。
在弹出的修改记录面板,修改主机记录,然后单击确认。本文修改主机记录为web0,其余参数保持不变。
第二步:ALB实例添加CNAME解析
在顶部菜单栏,选择ALB实例所属的地域。本文选择华东1(杭州)。
找到目标ALB实例,复制其对应的DNS名称。
完成以下步骤添加CNAME解析记录。
登录域名解析控制台。
在目标域名的操作列单击解析设置。这里目标域名为CLB实例绑定的域名。
在解析设置页面单击添加记录。
在添加记录面板配置以下信息完成CNAME解析配置,然后单击确认。
配置
说明
记录类型
在下拉列表中选择CNAME。
主机记录
您的域名的前缀。本文输入www
解析请求来源
选择默认。
记录值
输入域名对应的CNAME地址,即您复制的ALB实例的DNS域名。
TTL
全称Time To Live,表示DNS记录在DNS服务器上的缓存时间,本文设置为5秒。
本文使用的是企业旗舰版云解析DNS,为方便验证将TTL设置为5秒。您可以根据实际情况进行设置,更多信息,请参见版本对比。
说明新增CNAME记录实时生效,修改CNAME记录取决于本地DNS缓存的解析记录的TTL到期时间,一般默认为10分钟。
添加时如遇添加冲突,请换一个解析域名。
第三步:设置权重,开始流量灰度
在域名解析页面,单击目标域名,在解析设置页面, 单击左侧导航栏的权重配置。
在权重配置页面,在操作列单击开启权重,然后单击设置权重。
权重配置的启用条件是域名下存在相同的主机记录、相同解析线路的多条A记录、CNAME记录、AAAA记录。
在设置权重面板,分别为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证书,通过数字证书管理服务实现证书管理。配置方式请参见使用ALB部署HTTPS业务(双向认证)。 |
WAF防护 | 支持WAF透明化接入和CNAME接入。配置方式请参见为七层CLB(HTTP/HTTPS)开启WAF防护和添加域名。 | 支持服务化接入、透明化接入和CNAME接入。
|
常见问题
迁移前后,CLB实例和ALB实例的哪些配置需要保持一致?
地域、网络类型、监听协议、后端服务器等需保持一致。ALB实例所属VPC需与CLB实例的后端服务器所属VPC保持一致,可用区无需保持一致。
CLB和ALB使用的证书有哪些差异?
CLB和ALB均支持HTTPS协议的加密传输,相对于CLB原生支持上传阿里云签发和非阿里云签发证书;ALB使用的证书依赖数字证书管理服务提供的能力,由阿里云证书中心管理。
对于CLB实例,证书上传的相关操作请参见上传证书。
对于ALB实例,证书上传相关的操作请参见购买SSL证书和上传和共享SSL证书。
CLB和ALB访问控制有哪些差异?
CLB和ALB的域名解析有哪些差异?
CLB实例需要通过A记录解析的方式,将自定义域名指向CLB的服务地址。
对于ALB实例:
建议您使用CNAME解析的方式将自定义域名指向到ALB实例的DNS名称,使您更方便访问网络资源。
如果您的自定义域名需要解析到固定IP地址,建议您使用固定IP模式的ALB,通过A记录解析的方式将自定义域名解析至ALB提供的IP地址。