全部产品
云市场

GTM实现CDN源站IP容灾切换

更新时间:2019-11-19 20:17:07

场景说明

网站、游戏、视频、直播等客户群体为了实现就近访问源站内容,会将企业应用服务接入CDN加速,同时他们对业务的高可用性也有着非常高的要求,因为CDN本身并不能感知源站IP的运行状态,所以在灾难场景下无法快速将用户流量切换至正常地址上,而全局流量管理(下文简称GTM),则可以帮助企业实现流量负载均衡、访问加速、容灾切换。

解决方案

首先CDN和GTM这两款产品都是通过CNAME域名来为用户提供相应的服务,用户如果将相同子域名同时指向不同的CNAME域名,因为权威DNS是采用轮询的方式应答,所以会导致其中一个产品无法正常使用。但是很多企业的业务场景是既需要实现域名加速,又要保障源站的高可用性,所以面对CDN加速+GTM对源IP容灾切换场景我们建议用户通过串行的方式来设置实现。

原理图

原理图

设置方法

步骤概览

1 . 全局流量管理配置

2 . CDN加速配置

3 . 效果验证

准备资源

1 . 准备一个测试域名:test.alidns.com

2 . 创建一个GTM实例

3 . 开通阿里云CDN加速产品

设置方法

一、 全局流量管理配置

登录 云解析DNS控制台,左侧菜单选择 全局流量管理

1 . 全局配置

全局配置


2 . 地址池配置

创建2个地址池,分别为为:

地址池名称 地址池中的IP地址 模式
test1 1.1.1.148 智能返回
test2 2.2.2.79 智能返回


创建地址池,并开启健康检查

地址池配置

健康检查开启

健康检查配置01健康检查配置02


3 . 访问策略配置

新增一条访问策略,配置如下:

访问策略名称 默认地址池 备用地址池 解析请求来源
全局默认策略 test1 test2 全局


访问策略配置

二、 CDN加速配置

1 . 在全局流量管理的全局配置页签下,复制GTM的CNAME接入域名。

GTM的CNAEM域名

2 . 登录 CDN控制台,选择域名管理, 单击 添加域名 按钮。填写加速域名、源站域名。

CDN添加域名


CDN添加域名详情


3 . 加速域名添加完毕后,刚开始状态会显示为审核中、配置中,此时需要等待几分钟,等状态变为 正常运行 后, 再到DNS控制台配置CNAME解析记录。

添加域名

CNAME记录


4 . 添加完CNAME记录后,返回CDN控制台域名管理页面,可以看到CNAME处已配置完成,同时测试解析也已生效。您可以参考 解析生效测试方法

CDN配置已完成


测试解析生效

三、 效果验证

为了便于查看效果,先做个简单的网站搭建,在上述两个地址池中的IP地址上进行了nginx搭建,并在index.html中进行Test1和Test2进行区分修改。

1 . 期望效果:当地址池test1和test2都正常时,GTM的生效地址池和CDN回源请求都使用的是test1地址池。

地址池:test1 地址池:test2
健康检查状态 可用 可用
GTM生效地址池
CDN回源请求


验证方法:

① 在GTM的地址池配置页签下,查看地址池状态:可以看到目前两个地址池都处于可用状态

地址池状态

② 在GTM的访问策略页签下,可以查看当前GTM的生效地址池是test1.

访问策略

③ CDN回源请求的测试:在浏览器访问域名,当地址池test1和test2健康状态都可用时,回源请求到了地址池test1中的服务器。

CDN回源测试
验证结论: 符合预期;可以从上述测试看到当test1和test2地址池都可用时,GTM的生效地址池和CDN回源请求都是到达test1地址池的服务器。
2 . 期望效果:当地址池test1不可用,test2可用时,GTM会将访问流量切换至test2,则CDN回源请求也会变为test2中的服务器

地址池:test1 地址池:test2
健康检查状态 不可用 可用
GTM生效地址池
CDN回源请求


验证方法:

① 在GTM的地址池配置页签下,查看地址池状态:可以看到目前默认地址池test1不可用

地址池不可用

② 在GTM告警日志页签下,可以看到因为健康检查探测出test1不可用,将解析流量切换至test2

流量切换

③ 在GTM的访问策略页签下,可以查看当前GTM的生效地址池是test2.

访问策略06

④ CDN回源请求的测试:在浏览器访问域名,当地址池test1不可用时,由于GTM将访问流量从test1切换到test2,CDN的回源请求也相应的变为test2中的服务器。

回源请求07
验证结论: 符合预期;可以从上述测试看到当默认地址池test1不可用时,GTM的生效地址池和CDN回源请求都是到达test1地址池的服务器。
3 . 期望效果:当默认地址池test1恢复可用,而备用地址池test2不可用时,GTM则会将请求流量从test2切换回test1,同时test2地址池不可用,会进行告警通知。

地址池:test1 地址池:test2
健康检查状态 可用 不可用
GTM生效地址池
CDN回源请求


验证方法:

① 在GTM的地址池配置页签下,查看地址池状态:可以看到目前默认地址池test1不可用

地址池可用08

② 在GTM告警日志页签下,可以看到因为健康检查探测出test1地址池恢复可用,将解析流量切换至test2,同时GTM检测出test2不可用,进行告警通知。

告警通知

③ 在GTM的访问策略页签下,可以查看当前GTM的生效地址池是test1.

访问策略09

④ CDN回源请求的测试:在浏览器访问域名,可以看到当test1恢复可用时,GTM将解析请求流量从test2切换回test1,CDN的回源请求也相应的变为test1中的服务器。
验证结论: 符合预期;可以从上述测试看到当默认地址池test1恢复可用时,GTM的生效地址池和CDN回源请求都是到达test1地址池的服务器。