加速跨地域应用实现高可用容灾

重要

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

当您的应用跨地域部署时,可能会面临地域性网络故障导致的对应地域服务不可用问题。您可以使用全球加速服务(GA)加速跨地域部署的应用,并实现应用访问流量的多地域负载和高可用容灾。

背景信息

某金融公司总部和分部分别设立在美国(硅谷)和美国(弗吉尼亚)地域,并分别在阿里云对应地域创建了服务器ECS01和ECS02,用于部署应用。客户端主要集中在中国香港和日本地区。为进一步保证关键核心应用系统能够持续成功运作,同时将发生风险的损失降低,对应用系统的可靠性有一定的要求:

  • 要求当位于美国(硅谷)地域的总部发生事故时,可以迅速将业务数据切换至美国(弗吉尼亚)地域的分部系统。

  • 要求减少因跨地域公网不稳定出现的延迟、抖动、丢包等问题。

image

您可以创建全球加速实例,设置日本(东京)、中国香港为加速地域,将多地域应用系统即美国(硅谷)地域和美国(弗吉尼亚)地域分别添加为终端节点组1和终端节点组2。全球加速会根据各个终端节点组的调度优先级和流量调配值对访问流量进行智能分发,从而实现访问流量的多地域负载。

您可以为多个终端节点组配置健康检查,当总部系统健康检查出现异常时,全球加速会自动将新的请求分发到健康检查正常的分部系统上;而当总部系统恢复正常后,全球加速会将其自动恢复到请求服务中。由此可实现跨地域应用系统的高可用性,并降低网络时延。

同时,您还可以结合全球加速实例分配的CNAME配置DNS解析。全球加速的CNAME地址支持按地域解析,可以为不同地域的终端用户智能返回不同的加速IP,降低解析时延,提升应用系统的访问速度。

前提条件

  • 您的美国(硅谷)服务器ECS01和美国(弗吉尼亚)ECS02已部署了后端应用。

  • 您已为应用域名配置了DNS解析,即已配置了A记录将域名指向2个后端服务器的公网IP。

说明

本文操作以使用Nginx配置后端HTTP 80服务,并使用阿里云云解析 DNS(Alibaba Cloud DNS)配置解析记录为例。

  • 关于如何部署Nginx服务,请参见安装Nginx

  • 关于如何配置解析记录,请参见添加解析记录。如果您使用的DNS解析服务为非阿里云云解析DNS,请参见您的DNS服务商操作指导。

步骤一:配置实例基础信息

  1. 登录全球加速管理控制台

  2. 实例列表页面,单击创建标准型按量付费实例

  3. 实例基础配置配置向导页面,根据以下信息进行配置,然后单击下一步

    配置

    说明

    全球加速实例名称

    输入全球加速实例名称。

    实例计费方式

    默认为按量付费

    使用按量付费的标准型全球加速实例,产生的费用包括:实例费、性能容量单位CU费和流量费。

    资源组

    选择标准型全球加速实例所属的资源组。

    该资源组为当前阿里云账号在资源管理中创建的资源组。更多信息,请参见创建资源组

步骤二:配置加速区域

全球加速实例配置加速区域,指定可以加速访问后端服务的用户所在的地域并为其分配加速带宽。

配置加速区域配置向导页面,根据以下信息配置加速区域,然后单击下一步

配置

说明

加速区域

在下拉列表中选中需要进行访问加速的一个地域或多个地域,然后单击添加至列表

本文选中中国(香港)日本

分配带宽

带宽峰值

设置加速地域的带宽。每个加速地域支持分配的带宽范围为2~10000 Mbps。

此处带宽峰值仅作限速,产生的流量费用统一由CDT结算出账。

本文保持默认值200 Mbps。

重要

如果带宽峰值设置过低,可能出现限速从而导致流量被丢弃,请合理规划带宽峰值,确保和业务需求匹配。

IP地址协议

选择接入全球加速服务的IP地址协议。

本文保持默认值IPv4

公网质量类型

选择接入全球加速服务的公网质量类型。

本文选择BGP(多线)

步骤三:配置监听

监听负责检查连接请求,根据您指定的端口和协议处理来自客户端的入站连接。每个监听都关联一个终端节点组,通过指定要分发流量的地域,将终端节点组与监听关联。关联后,全球加速会将流量分配到与监听关联的终端节点组内的最佳终端节点。

配置监听配置向导页面,配置监听,然后单击下一步

此处仅介绍本文强相关的配置项,其余配置项可保持默认配置。更多信息,请参见添加TCP或UDP协议监听

配置

说明

监听名称

输入监听的名称。

路由类型

选择路由类型。

本文选择智能路由

协议

选择监听的协议类型。

全球加速仅支持为单个TCP和UDP协议的监听配置多个不同地域的终端节点组。

本文选择TCP

端口

指定用来接收请求并向终端节点进行转发的监听端口,端口取值范围:1-65499

本文输入80

客户端亲和性

选择是否保持客户端亲和性。保持客户端亲和性,即客户端访问有状态的应用程序时,可以将来自同一客户端的所有请求都定向到同一终端节点。

本文选择关闭

步骤四:配置终端节点组和终端节点

您可以将美国(硅谷)和美国(弗吉尼亚)地域的后端应用分别配置为终端节点组1和终端节点组2,并为2个终端节点组配置健康检查,以实现跨地域应用系统的高可用性。

您还可以通过设置流量调配,调整多个终端节点组的访问流量比例,实现访问流量的合理负载。

  1. 配置美国(硅谷)终端节点组1。

    1. 配置终端节点组配置向导页面,根据以下信息配置终端节点组1,然后单击下一步

      配置

      说明

      地域

      选择终端节点组所属的地域,即请求要访问的目标服务器的所属地域。

      本文选择美国(硅谷)

      说明

      有多个终端节点组时,每个终端节点组的地域必须唯一,即每个地域只支持配置一个终端节点组。

      终端节点配置

      终端节点是客户端请求访问的目标主机。您可以根据以下信息配置终端节点:

      • 后端服务类型:选择阿里云公网IP

        重要

        针对终端节点类型为专有网络类型ECS、阿里云公网IP、自定义源站IP或自定义源站域名支持健康检查,如果终端节点类型是负载均衡类型实例,则终端节点组上配置的健康检查参数不生效。

      • 后端服务:输入要加速的后端服务的IP。本文输入美国(硅谷)源站服务器ECS01的IP地址。

      • 权重:输入终端节点的权重,权重取值范围:0~255。全球加速根据您配置的权重按比例将流量路由到终端节点。本文保持默认值255

        警告

        如果某个终端节点的权重设置为0,全球加速将终止向该终端节点分发流量,请您谨慎操作。

      保持客户端源IP

      选择是否保持客户端源IP。

      选择保持客户端源IP,后端服务器可以通过该功能获取客户端源IP。更多信息,请参见保持客户端源IP

      本文保持默认配置不保持

      流量调配

      配置到不同终端节点组的流量比例。

      取值范围:0~100。本文输入50

      健康检查

      选择开启或关闭健康检查。开启后,可以通过健康检查来判断终端节点的运行状态。

      本文开启健康检查。

      健康检查协议

      选择健康检查的协议,支持TCP、HTTP和HTTPS协议。

      本文保持默认配置,为HTTP

      端口

      健康检查服务访问终端节点时的探测端口。取值范围:1-65535。

      本文配置为80

      健康检查间隔时间

      健康检查的时间间隔,单位为秒。取值范围:1-50秒。

      本文保持默认配置,为2秒。

      路径

      指定健康检查的路径。

      必须以正斜线(/)开头,长度限制为1~80个字符,支持使用字母、数字和短划线(-)、正斜线(/)、英文句点(.)、百分号(%)、问号(?)、井号(#)和and(&)以及扩展字符集_;~!()*[]@$^:',+

      默认为全球加速系统向后端服务器应用配置的缺省首页发起GET请求。如果您用来进行健康检查的页面并不是应用服务器的缺省首页,需要指定具体的检查路径。

      本文保持默认配置,为/

      说明

      仅HTTP和HTTPS协议健康检查显示该项。

      健康检查健康阈值

      针对健康检查状态变化所需要的连续健康检查次数,即从成功到失败的连续健康检查失败次数或从失败到成功的连续健康检查成功次数。取值范围2~10。

      本文保持默认配置,为3次。

    2. 配置审核配置向导页面,确认监听和终端节点组1的配置信息,然后单击提交

      说明

      创建全球加速实例预计耗时3~5分钟,请您耐心等待。

    3. 可选:创建任务完成后,在创建任务详情列表下方,单击进入实例详情,然后在实例详情页,可选择实例信息监听加速区域等页签查看实例配置信息。

  2. 配置美国(弗吉尼亚)终端节点组2。

    1. 在实例详情页面,单击监听页签。

    2. 监听页签,找到目标监听,在默认终端节点组列单击终端节点组ID。

    3. 终端节点组页签下的默认终端节点组区域,单击+添加终端节点组

    4. 添加终端节点组页面,根据以下信息进行配置,然后单击创建

      • 地域:选择美国(弗吉尼亚)

      • 终端节点配置后端服务:输入美国(弗吉尼亚)源站服务器ECS02的IP地址。

      其余参数配置与终端节点组1保持一致。

步骤五:配置CNAME解析

您可以修改DNS解析设置,将要访问的域名解析至全球加速实例的CNAME。客户端通过域名访问后端服务时,全球加速会根据发起访问的地域自动将域名解析到对应加速地域的加速IP上,降低解析时延,提升应用系统的访问速度。

  1. 登录域名解析控制台

  2. 如果您是非阿里云注册的域名,请将域名添加到云解析控制台。

    说明

    对于非阿里云注册域名,需先将域名添加到云解析控制台,才可以进行域名解析设置。具体操作,请参见添加域名。如果您的域名是在阿里云注册的,请跳过该步骤。

  3. 域名解析页面,找到目标域名,在操作列单击解析设置

  4. 在解析设置页面,找到并选中已有的A记录,在下方单击批量操作,然后单击删除并完成删除操作。

  5. 在解析设置页面,单击添加记录,然后在右侧添加记录面板,根据以下信息配置记录,然后单击确认

    • 记录类型:选择CNAME

    • 主机记录:输入子域名的前缀。本文输入@

    • 解析请求来源:选择默认

    • 记录值:输入全球加速的CNAME。

      您可以在实例列表页面查看全球加速实例分配的CNAME。

    • TTL:表示DNS记录在DNS服务器上的缓存时间,数值越小,修改记录各地生效时间越快。本文使用默认值10分钟

  6. 验证CNAME解析是否生效。

    您可以在加速地域的电脑中打开命令行窗口,执行ping命令,ping加速域名。

    如果返回的解析结果与全球加速的CNAME值一致,则表示CNAME配置已经生效。

步骤六:访问测试

完成以下操作,测试加速跨地域应用并实现高可用容灾的效果。

说明

本文使用以下操作系统为例进行测试,不同类型的操作系统测试命令会有差异,具体测试命令请参见您操作系统的操作指南。

  • 客户端操作系统:Windows Server 2022。

  • 源站操作系统:Alibaba Cloud Linux 3。

测试多终端节点组高可用性

  1. 通过断开美国(硅谷)源站,模拟多终端节点组中某一终端节点组出现故障时的访问请求结果。

    1. 在中国香港、日本地区及其他地域的电脑中打开浏览器。

    2. 输入应用系统域名访问在美国(硅谷)和美国(弗吉尼亚)地域部署的应用。

      测试结果如下:

      • 如下图为中国香港用户通过应用系统域名访问的结果,应答服务器为美国(弗吉尼亚)源站的ECS02。

        HK 访问结果 01断掉.png

      • 如下图为日本地区用户通过应用系统域名访问的结果,应答服务器为美国(弗吉尼亚)源站的ECS02。

        JP 访问结果 01断掉.png

  2. 美国(硅谷)源站恢复后,再次使用上述方法查看中国香港和日本地区用户的访问结果。

  • 如下图为中国香港用户通过应用系统域名访问的结果,应答服务器为美国(硅谷)源站的ECS01。

    HK 访问恢复.png

  • 如下图为日本地区用户通过应用系统域名访问的结果,应答服务器为美国(硅谷)源站的ECS01。

    JP 访问恢复.png

说明

客户端访问请求最终的解析结果(即应答的终端节点组)以您的实际业务测试为准。当全球加速配置了多个加速地域和多个地域终端节点组时,客户端访问请求最终的解析结果与各终端节点组的调度优先级和流量调配值相关。更多信息,请参见多终端节点组流量调配原理及应用场景

测试加速效果

如需测试加速效果,请参见使用网络拨测工具测试加速效果