云下IDC应用(非华为云部署)使用华为云全球加速优化全球用户访问
方案概述
应用场景:客户网站服务器部署在中国大陆的非华为云数据中心杭州自建机房中,国内用户直接访问杭州IDC的公网IP,但是由于跨国公网不稳定、大陆跨境经常丢包等因素,通过华为云全球加速服务优化海外用户访问,实现访问加速。
方案架构:客户应用部署在杭州自建机房,域名已经通过DNS解析到杭州公网IP,并且已经完成备案对外提供Web服务,海外用户可以使用全球加速服务,全球用户访问就近接入华为云骨干网快速传输到华为云华东-上海一Region出公网到杭州自建IDC公网IP。
资源成本与规划
资源 |
资源说明 |
数量 |
费用 |
---|---|---|---|
加速实例 |
按照每个全球加速实例的创建时长收费。 按小时计费,创建时长不满1小时按1小时收费。 实例费=实例单价*创建时长 |
1 |
请参见全球加速价格详情。 |
数据传输 |
通过全球加速服务转发的流量费用,按GB收费。 从一个全球加速接入点到一个应用部署区域之间的流量,定义流量大的方向为主方向,按照每条流量的主方向收费。 数据传输费=流量单价*使用量 |
根据实际转发的流量 |
|
公网解析记录 |
根据不同地区的用户添加如下3条A类型解析记录:
|
3 |
免费 |
流程简介
步骤一:跨境申请
根据中华人民共和国工业和信息化部(简称工信部)相关法律、行政法规规定,中国大陆只有三大运营商具备跨境业务运营资质。所以涉及跨中国大陆访问的业务场景,都需要通过跨境资质审核。
步骤二:购买全球加速实例
跨境资质申请完成后,购买全球加速实例。
- 在全球加速页面,单击“购买全球加速服务”。
图2 购买全球加速实例
- 根据界面提示配置相关参数,加速地域选择中国大陆以外,详细请参见表2。
图3 创建全球实例
表2 创建全球加速实例 参数
说明
名称
用户将要创建的全球加速实例的名称。
只能由中文、英文字母、数字、中划线组成。
长度范围:1-64个字符。
企业项目
企业项目是一种云资源管理方式,企业项目管理服务提供统一的云资源按项目管理,以及项目内的资源管理、成员管理。
您可以使用已有企业项目,也可以新建企业项目。
加速区域
加速区域指需要进行访问加速的区域。
支持选择“中国大陆以外”或“中国大陆”,默认选择“中国大陆以外”。
本实践中请选择“中国大陆以外”。
IP地址类型
全球加速实例的地址类型。
默认选择IPv4。
标签
全球加速的标识,包括键和值。可以为全球加速实例创建20个标签。
说明:如果已经通过TMS的预定义标签功能预先创建了标签,则可以直接选择对应的标签键和值。
预定义标签的详细内容,请参见预定义标签简介。
如您的组织已经设定全球加速服务的相关标签策略,则需按照标签策略规则为加速实例添加标签。标签如果不符合标签策略的规则,则可能会导致加速实例创建失败,请联系组织管理员了解标签策略详情。
描述
全球加速实例描述。
长度范围:不超过255个字符。
- 单击“下一步”,进入监听器配置页面。
步骤三:配置监听器
创建全球加速实例后,您需要为全球加速实例配置监听器。监听器负责监听连接请求,并根据流量转发策略将请求流量分发至终端节点。
参数 |
说明 |
---|---|
名称 |
监听器名称。 只能由中文、英文字母、数字、中划线组成。 长度范围:1-64个字符。 |
前端协议 |
客户端与监听器建立流量分发连接的协议。 取值范围:TCP、UDP。 |
前端端口 |
客户端与监听器建立流量分发连接的端口。 端口取值在1-65535之间,端口范围用“-”连接,多个端口或端口范围以逗号隔开。 例如:1-10,11-50,51,52-200 |
客户端亲和性 |
会话保持。 支持选择“关闭”或“按源IP保持会话”。 TCP和UDP协议仅支持“按源IP保持会话”。 按源IP保持会话:基于源IP地址的简单会话保持,将请求的源IP地址作为散列键(HashKey),从静态分配的散列表中找出对应的服务器。即来自同一IP地址的访问请求会被转发到同一台后端服务器上进行处理。 |
标签 |
监听器的标识,包括键和值。可以为监听器创建20个标签。
说明:
如果已经通过TMS的预定义标签功能预先创建了标签,则可以直接选择对应的标签键和值。 预定义标签的详细内容,请参见预定义标签简介。 如您的组织已经设定全球加速服务的相关标签策略,则需按照标签策略规则为监听器添加标签。标签如果不符合标签策略的规则,则可能会导致监听器创建失败,请联系组织管理员了解标签策略详情。 |
描述 |
监听器描述。 长度范围:不超过255个字符。 |
步骤四:配置终端节点组和终端节点
根据界面提示配置终端节点组和终端节点的相关参数,终端节点组区域选择“上海一”(上海一Region离客户杭州自建IDC距离最短)详细请参见表4。
类型 |
参数 |
说明 |
---|---|---|
终端节点组 |
名称 |
终端节点组名称。 每个监听器下每个区域只允许关联一个终端节点组。 只能由中文、英文字母、数字、中划线组成。 长度范围:1-64个字符。 |
区域 |
终端节点组所属区域。 本实践选择“上海一” |
|
描述 |
终端节点组描述。 长度范围:不超过255个字符。 |
|
流量调度 |
配置到不同终端节点组的流量比例。 如果增加流量调度比例,将有更多的请求分发到此终端节点组。 如果将流量调度比例设置为0,则不会将任何请求分发到此终端节点组。 取值范围为:[0-100]。
说明:
如果监听器中有多个终端节点组,分配流量时优先选择时延最低的终端节点组,并按照该终端节点组的流量调度值分配流量,然后再向其他终端节点组分配其余流量。 |
|
终端节点 |
终端节点充当客户端的接触点,加速实例跨正常运行的终端节点分发传入流量。 本实践中选择自定义IP或者自定义域名。 |
|
健康检查配置 |
是否开启 |
开启或者关闭健康检查。 关闭健康检查可能会导致业务请求转发至异常的后端服务器。 |
前端协议 |
健康检查目前支持选择TCP协议。 默认:TCP协议。 |
|
前端端口 |
健康检查端口号。 取值范围:[1,65535]。 |
|
高级配置 |
||
检查间隔(秒) |
每次健康检查响应的最大间隔时间。 取值范围:[1-60]。 |
|
超时时间(秒) |
每次健康检查响应的最大超时时间。 取值范围:[1-60]。 |
|
最大重复次数 |
健康检查最大的重试次数。 取值范围:[1-10]。 |
步骤五:配置DNS解析
全球加速实例配置完成后,需要配置DNS智能解析,实现海外用户解析到全球加速Anycast IP,国内用户仍解析到杭州自建IDC公网IP。
本文以配置华为云DNS解析为例,请按照以下步骤操作:
- 进入公网域名列表页面。
- 在“公网域名”页面的域名列表的“域名”列,单击域名的名称。
- 在页面右上角,单击“添加记录集”。
- 在“添加记录集”页面,根据界面提示为域名添加3条A类型记录集,详细请参见表5。
图5 设置记录集参数
表5 A类型记录集参数说明 参数
参数说明
主机记录
解析域名的前缀。
例如创建的域名为“example.com”,其“主机记录”设置包括:
类型
记录集的类型,此处选择A类型。
线路类型
解析的线路类型用于DNS服务器在解析域名时,根据访问者的来源,返回对应的服务器IP地址。
3个A类型记录集分别选择“全网默认”、“地域解析 > 中国大陆”、“地域解析 > 全球”。
TTL(秒)
解析记录在本地DNS服务器的缓存时间,以秒为单位。
默认值:300秒
取值范围为:1~2147483647
如果您的服务地址经常更换,建议TTL值设置相对小些,反之,建议设置相对大些。
本实践中该参数保持默认配置。
值
域名对应的IPv4地址。
本实践中需要根据不同线路类型的解析记录配置不同的值,具体如下:
- 全网默认、中国大陆线路类型:云下IDC的公网IP。
- 全球:全球加速实例分配的加速IP地址。
权重
可选参数,返回解析记录的权重比例。
默认值:1
取值范围:0~1000
本实践中该参数保持默认配置。
标签
可选参数,记录集的标识,包括键和值,每个记录集可以创建10个标签。
描述
可选参数,对域名的描述。
长度不超过255个字符。
- 单击“确定”。
- 返回“解析记录”页面。
添加完成后,您可以在域名对应的记录集列表中查看已添加的记录集(“中国大陆”,“全网默认”解析到杭州自建IDC公网IP,“全球”解析到全球加速服务Anycast IP地址)。当记录集的状态显示为“正常”时,表示记录集添加成功。
配置验证
在本场景中,全球加速服务的监听器配置的是TCP协议,可以使用curl命令方式,具体如下:
- 配置GA服务之前,在加速区域的电脑上执行curl命令
curl -o /dev/null -s -w "time_connect: %{time_connect}\ntime_starttransfer: %{time_starttransfer}\ntime_total: %{time_total}\n" "http[s]://<IP>[:<端口>]"
- IP:杭州自建IDC公网IP。
- 端口:应用的http端口号。
- time_connect:连接时间。从开始建立TCP到连接完成所用的时间,单位为秒。
- time_starttransfer:开始传输时间。从客户端发出请求到后端服务器响应第一个字节所用的时间,单位为秒。
- time_total:连接总时间。从客户端发出请求到后端服务器响应会话所用的时间,单位为秒。
- 配置GA服务后,再执行如下curl命令
curl -o /dev/null -s -w "time_connect: %{time_connect}\ntime_starttransfer: %{time_starttransfer}\ntime_total: %{time_total}\n" "http[s]://<IP>[:<端口>]"
命令中的“IP”需要填入全球加速服务提供的Anycast IP。
- 通过对“time_connect”值进行比较,对比加速前后的时延。