关闭

有关适合CDN的应用场景,可以先参考这里(连结)。
本文会以「网站」(Web)作为基础,来完成CDN的实作,同时也会实践地端与云端的整合性应用。

实作前准备:

1. 在台湾准备一台On-Premises Server作为Origin Host(源站),记下Server的IP address;同时部署一台AWS主机在美洲地区,并且测试用来进行CDN加速的网域名称与直连IP的体感速度差异。
2. 准备测试用的HTML网站:

手把手教您了解CDN最佳实践的应用场景

3. 准备一组Domain,此次实作使用的网域为:higher-cloud.com,站点页面为www.higher-cloud.com
4. 准备AWS CloudFront - AWS的CDN服务,用于进行网站加速。
5. 最后准备一组SSL凭证:用于AWS CloudFront。此处可使用第三方提供的免费SSL凭证,或者是由AWS提供的凭证

实作步骤:

  1. 登入AWS控制台,并选择CloudFront。

手把手教您了解CDN最佳实践的应用场景

 
  1. 选择建立分布(Distributions)

手把手教您了解CDN最佳实践的应用场景

 
  1. Origin domain填写 www.higher-cloud.com

手把手教您了解CDN最佳实践的应用场景

 
  1. 决定回源是使用HTTP或HTTPS,或是选择 Match viewer,这是根据使用者存取的Port来决定使用80或443 Port来进行回源快取。此处建议以HTTP (Port 80) 来进行回源,可节省加解密的过程,进一步提升回源速度。

手把手教您了解CDN最佳实践的应用场景

 

  1. Default cache behavier:

此处是编辑Viewer(网站使用者)的联机设定,可以根据需求调整

1. Http / Https 皆可存取

2. Http强制跳转Https

3. 仅允许Https联机

其余可保持预设。

手把手教您了解CDN最佳实践的应用场景 
 

  1. Cache key and origin requests:

针对回源、Cache的自定义Policy,可以根据业务需求来进行自定义。此处同样使用预设的建议。

手把手教您了解CDN最佳实践的应用场景 

 

  1. Function associations:

如果没有特别要自定义CloudFront针对HTTP的处理模式,保持默认即可。

手把手教您了解CDN最佳实践的应用场景 

 
  1. Setting:

Price Class - 可根据您想要加速分发的地区进行选择,但通常建议第一个选项(Use all edge locations)

  1. AWS WAF Web ACL:

如果有自定义的ACL (Access Control List)需要部署的话,可以选用此选项,但需要先建立好规则。

  1. Alternate Domain Name:

在部署CDN后,分发对外的域名(网站使用者会看到的一组网域)。若没有填写,则AWS会提供一个预设的域名。通常建议操作者要自行定义一个域名,提升网站与品牌的标志力。

  1. Custom SSL certificate:

可以自行提供SSL凭证或直接通过AWS申请免费的SSL凭证。若留空不填写,那么上述自定义的Alternate Domain Name则无法使用。

  1. 上述步骤完成后点选Create Distributions,即可完成部署。

手把手教您了解CDN最佳实践的应用场景 

  1. 接下来可以使用AWS的预设Domain跟自定义的Domain尝试联机。

手把手教您了解CDN最佳实践的应用场景

 
  1.  AWS预设Domain:dtytosfxel4su.cloudfront.net

手把手教您了解CDN最佳实践的应用场景

  1. 自定义Domain:test.higher-cloud.com 成功,但请注意此Domain为CNAME,DNS解析会转址到AWS预设Domain。手把手教您了解CDN最佳实践的应用场景
 
  1. 接下来会以开立在AWS 美国Region的机器来测试网页速度。

网域:www.higher-cloud.com
存取方式:回到源站存取
延迟时间:521ms

手把手教您了解CDN最佳实践的应用场景

网域:dtytosfxel4su.cloudfront.net
存取方式:透过CloudFront进行加速。
延迟时间:48ms

手把手教您了解CDN最佳实践的应用场景

网域:test.higher-cloud.com
存取方式:在DNS托管商进行CNAME,解析test.higher-cloud.com的域名时,会得到dtytosfxel4su.cloudfront.net的结果,并再次解析回传CloudFront的节点。
延迟时间:102ms

手把手教您了解CDN最佳实践的应用场景

 
结语:

通过上述实作,以商业层面来考虑,AWS CloudFront提供了相当弹性、快速的服务;尽管源站没有进行HTTPS的加密,在最终呈现的地方也可以通过在AWS平台上的操作,简便的取得SSL凭证,并为自己的网站进行加密,从而提升网站的SEO排名以及品牌可靠度。

以用户体验的层面上来说,CDN也提升了用户的联机延迟速度,从上述的图表可以看到,从美国联机源站的速度为500ms左右,使用CDN后,联机延迟降低至50-100ms,对于使用者体验来说也是极大的提升。以使用上而言,市面上的CDN服务操作起来都大同小异,但是根据全球节点分布的不同,CDN质量也会有所差异。除了本次操作的AWS CloudFront,Google Cloud、Alibaba Cloud、Tencent Cloud、Cloudflare都有提供CDN服务。
 



撰写人
手把手教您了解CDN最佳实践的应用场景

解决方案架构师
吴佑德 Ted Wu