關閉

有關適合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