〈延伸閱讀: SEO入門知識,簡單說讓你聽得懂〉
〈延伸閱讀: 企業B2B網站SEO要怎麼執行?〉
CDN 是什麼?
CDN 的英語是 Content Delivery Network,簡稱 CDN,中文翻譯是「內容傳遞網路」。假設網站在台灣主機,那麼全世界要連線這個網站,必須經過海底電纜連線到台灣,因為距離很遠所以連線速度會很慢,CDN 就是將在台灣的源頭伺服器(Origin Server)檔案,利用緩存技術放到全世界節點上,美國使用者要連網站就會到美國節點讀取網站資料,法國使用者就到法國節點讀取,透過CDN可以到離使用者最近 CDN 節點(CDN POP),不需要到處建置主機,只要用CDN就可以讓全世界讀取網站都很快。
Google CDN 全世界節點
【圖片來源:https://cloud.google.com 】
CDN 是怎麼運作的?
CDN 運作方式主要是以「網站快取」、「動態加速」、「邊緣運算」這三種運作模式,將網站內容快速傳遞到全世界的 CDN 節點(CDN POP)。
網站快取
這是 CDN 最基本的內容傳遞方式,是把源頭網站的靜態資料複製並緩存到全世界的 CDN 節點上(CDN POP),CDN會把第一次連線網站的靜態檔案複製一份緩存到節點主機上,下一次有人要連線網站,就會從CDN節點去快取網站的靜態資料,包括HTML 、CSS、Javascript、圖片、視訊。
CDN 緩存資料的模式
動態加速
CDN 網站快取是抓原始網站的靜態資料,CDN 緩存到的靜態資料是無法處理動態請求的,像「讀取資料庫」就是一個動態請求,每個使用者的動態請求都不一樣,所以必須去連線源頭主機(Origin Server),因為連線源頭網站速度較慢所以必須進行「動態加速」,動態加速的優化方法有「智慧路由最佳化」、「TCP最佳化」、「物件預先擷取」。
邊緣運算
邊緣伺服器(Edge Server)進行的運算就叫做「邊緣運算(Edge Computing)」,源頭伺服器(Origin Server) 通常只有一台,如果所有 CDN 後端請求都是連回源頭伺服器進行運算,當有大量運算或是被攻擊的時候,主機就會被塞爆,如果使用CDN大量邊緣伺服器幫忙運算後傳給使用者,就能緩解源頭主機的負載,減少傳輸延遲和網路頻寬使用,加速用戶服務的反應速度,邊緣運算和雲端運算(源主機)屬於互補彼此不衝突。
使用 CDN 有哪些優點?
改善網站速度
改善全世界的使用者連網站的速度是 CDN 最重要的好處,大多數網站速度慢都是因為圖檔、影片、檔案的傳輸慢,CDN 會自動判斷使用者位置發配到速度最快的邊緣伺服器,讓使用者載入網站時間變短,網站快就可以增加停留網站時間,避免因無法等待而離開網站。
提昇網站安全性
CDN 使用大量邊緣伺服器的內容傳遞技術,可以隱藏源頭伺服器(Origin Server)的真實位置(IP),可避免駭客入侵或是被分散式阻斷服務(DDoS)攻擊,有些 CDN 提供應用程式防火牆 (WAF)、免費 SSL/TLS,都可以讓 CDN 提昇網站安全性。節省網站成本
CDN 是由大量分散的邊緣伺服器組成,所以使用頻寬會分散在各地,源主機本身的頻寬跟負載並不會太多,可以有效省下主機的頻寬與硬體配置費用,當然大部分CDN是以快取使用頻寬計費,CDN整體來說還是比自架主機延伸的費用低上不少。
網站更可靠
單一主機故障,無論是硬體還是網路故障,網站就是連不上了,如果使用CDN就沒有這個問題,因為CDN有一大堆的主機跟網路分布,有故障的主機硬體或是網路斷線都可以馬上接替,所以不會有中斷服務得問題,CDN 對於風險的承載能力是比單一主機好的。
CDN 可以取代網站嗎?
CDN 只是幫助將主機上的內容傳遞出去,是無法取代原始主機功用的,因為傳統主機無法讓全世界連網站速度都很快、無法避開 DDOS 攻擊、無法節省頻寬使用、無法達到服務不中斷,以上都是種種缺點所以使用CDN服務,但是CDN必須去源頭伺服器(Origin Server)抓取資料緩存到邊緣伺服器(Edge Server),所以原始主機的網站必須要存在才能使用CDN。
CDN 對 SEO 有什麼幫助?
如果你希望透過SEO做全世界的生意,那你一定要使用 CDN,因為在同樣的網站條件之下,Google會優先讓當地網站的關鍵字排在前頭,所以必須要用CDN讓網站具備「當地訊號」,因為IP是附近邊緣伺服器的IP,可以具備當地訊號,當然 SEO 還有語系、架構、內容、連結的優化要做,但 CDN 對國際 SEO 來說還是很重要的。〈延伸閱讀: SEO是什麼? 簡單說讓你聽得懂〉
常見的 CDN 服務
有幾家常用的 CDN,像是Akamai、Google Cloud CDN、Amazon CloudFront、Cloudflare,台灣的HiCloud、台灣固網、遠傳都有CDN,大陸阿里雲、騰訊雲、網速科技、ChinaCache,每家的計費方式都不太一樣,大部分都是依照資料快取的流量去計費,Cloudflare 則是依照通功能按月收費,並且提供免費的 CDN 版本,Cloudflare速度要快還是付費版本會比較好。
CDN 節點是不是越多越好?
CDN 並不是越多越好要看網站的需求,例如網站只想在台灣營運,那麼網站根本就不需要採用CDN,使用了CDN反而還會讓網站變慢、影響SEO成效,如果網站只需要在亞洲運行,採用了全世界CDN節點反而會因為節點過多而降低「緩存命中率」,讓第一次的緩存次數變多,而無法得到快取的速度。
3 家 CDN 速度比較
價格因素,捨去較貴的 Akamai,我們用一模一樣的網站設定到三家CDN,CDN 包含:Google Cloud CDN、Amazon CloudFront、Cloudflare,然後用 dotcom-tools 在全世界的節點測試速度,不是絕對正確但可以參考看看,以下是我們的測試結果,以 Amazon CloudFront 最快(平均2.26秒),付費 Cloudflare 次之(平均3.15秒),然後是 Google Cloud CDN (平均3.8秒),最後是免費的 Cloudflare 速度最慢 (平均 5.53秒),Cloudflare 付錢跟沒付錢還是有差的,付費 Cloudflare 跟 Google CDN 差不多,CDN整體速度由快到慢是 Amazon CloudFront < Cloudflare < Google Cloud CDN < Cloudflare(免費) 。
CDN 速度比較結果
Amazon CloudFront 測試結果 (平均2.26秒)
Google Cloud CDN 測試結果 (平均3.8秒)
付費 Cloudflare 測試結果 (平均3.15秒)
免費 Cloudflare 測試結果 (平均5.53秒)
CDN 的計費方式
Amazon CloudFront 跟 Google Cloud CDN 是以流量計費,Cloudflare 則是固定費用, Amazon CloudFront 前 1T 是免費傳輸,CDN 整體費用由便宜到貴 Cloudflare < Amazon CloudFront < Google Cloud CDN < Akamai ,最後還是要以各原網站費用為準,僅供參考。
Amazon CloudFront 計費方式
Amazon 計費網址:https://aws.amazon.com/tw/cloudfront/pricing/
網站如果放在Amazon的主機,無論是S3、EC2、Elastic Load Balacer ...,擷取網站資料到 CDN 節點都是免費的,從CDN節點出去的費用以流量計價,各地區CDN費用不同,前10T是比較貴的,用越多單G的費用越低,而且每月的1T是免費的,HTTP 或 HTTPS 請求前1000萬也是免費的。
從CDN節點出去的流量費
從CDN向原始網站傳資料或是HTTP請求的費用
從CDN傳出去的前1T、1000萬HTTP請求是免費的
Google Cloud CDN 計費方式
Cloud CDN 訂價網址:https://cloud.google.com/cdn/pricing?hl=zh-tw
費用線上計算工具:CDN 費用試算工具
Google的計費方式跟Amazon差不多,一樣是三個費用,一個是CDN節點出去的流量,一個是CDN跟原始網站拿資料來更新(填補)資料的流量,第三個費用就是HTTP要求數的費用,跟Amazon一樣是 每10,000次計費, 沒有看到有跟Amazon一樣的免費額度條件,Google的流量計價費用低於Amazon。
Google CDN 出去到客戶端的流量費
Google CDN 向原始網站要求更新網站的流量
Google CDN 的 HTTP 請求計費
Cloudflare 計費方式
Cloudflare 訂價網址:https://www.cloudflare.com/zh-tw/plans/
Cloudflare有CDN的免費方案,費用可以月計費或年計費,年計費比較划算,免費的速度經過測試是比較慢的,真的需要CDN還是建議付費,Cloudflare 跟Amazon、Google用多少付多少不一樣,是一個固定收費,如果CDN用量大,還是可以考慮使用 Cloudflare,如果需要更多的功能可以參考 Cloudflare 網站。
Cloudflare 分成四種計費方案
Amazon CDN、Google CDN、Cloudflare 費用比較
比對各地區的CDN 流入費、流出費、HTTP請求費,Google 比 Amazon 便宜,但如果加上 Amazon 免費額度(1T),那 Amazon 初期低流量(10T)時是稍微比Google便宜,Cloudflare是固定費用肯定最便宜。
CDN三個費用的比較,每GB以美金計價
項目 | Amazon CDN | Google CDN | Amazon 10T | Google 10T | Cloudflare |
---|---|---|---|---|---|
CDN流出(每GB) | 美洲 0.085 歐洲 0.085 大洋洲 0.114 |
美洲 0.08 歐洲 0.08 大洋洲 0.11 |
美洲 765 US | 美洲 800 US | 240 US |
填補CDN(每GB) | 美洲 0.02 歐洲 0.02 大洋洲 0.08 |
美洲 0.01 歐洲 0.01 大洋洲 0.02 |
20 US | 10 US | -- |
HTTP請求 | HTTP 0.0075 HTTPS 0.01 |
HTTP 0.0075 HTTPS 0.0075 |
免費 | 750 US (10萬次) |
-- |
結論
網站要走向全世界使用CDN是最佳方案,大型國際公司也是採用CDN技術讓速度最佳化,像是Youtube、Netfilex、Facebook、Wix…都是靠著CDN讓全世界連線都很順,如果網站要做全世界的SEO,就要把網站放到國際節點上,也就是要採用CDN服務,再搭配網站的多國語系,就能參加全世界地區的關鍵字排名,SEO顧問、CDN、多語系網站就是達到國際SEO的三個基本要件。以費用來說Cloudflare最便宜,但是速度還是Amazon比較快,高流量Google費用低於Amazon,低流量因為 Amazon CDN 每月有免費額度所以低於Google CDN,Google CDN 速度未來也許會迎頭趕上,以現在的條件來看,流量不大的網站,便宜可以選Cloudflare,速度要快選 Amazon CDN。〈延伸閱讀: 網頁設計公司不會告訴你的5個真相〉
(本文為達文西數位科技所有,轉載文圖請註明出處)