關閉

什麼是CDN

內容分發網路(Content Delivery Network,CDN)

從1998年至今20幾年,其實它並不是個新穎的技術,但在不斷的創新改進後,已成為現在網路服務中不可或缺重要環節。

服務供應商在全球分布不同地區的數據中心伺服器組成一個大型網路環境,讓全球訪問網站的使用者能體驗最快速的服務。

其原理對內容來源進行緩存(cache)的動作,並利用在全球分布節點POP(數據中心伺服器)將遊覽者第一次訪問的內容同時複製一份在離遊覽者訪問地區最近的POP節點,當該地區有其他遊覽者訪問時就會由最近的POP提供內容,以此達到快速響應。

例如:以前買民生用品可能需要前往離家較遠的大賣場購買,由於現在便利商店商品越漸多樣化,許多民生需求已不須特地前訪大賣場,所有購買者都可以就近在離家最近的便利商店採買,這樣的概念就像是CDN帶給最終用戶的體驗。

 

CDN示意圖
內容傳遞網路應用

CDN解決方案

整體CDN能解決什麼問題:

  1. 根據訪問者地理位置提供最近的服務內容,減少遊覽網站整體下載、讀取的延遲時間
  2. 防止因高訪問及高頻寬造成伺服器負載瓶頸
  3. 持續可用性,不會因一個CDN節點出現問題導致服務不可用
  4. 降低網站伺服器乘載瀏覽人數過多的負擔,適合高流量網站
  5. 降低網路成本,通常CDN流量價格比主機網路流量價格低
  6. 保護原始網站IP,降低被網路攻擊全面癱瘓的風險
內容傳遞網路應用
 

如何選擇適合的CDN?

由於提供CDN服務的是服務供應商在全球佈署的數據中心節點,因此在選擇CDN服務時也必須注意CDN供應商提供的CDN節點數是不是充足,各家CDN除了各自功能差異外,也存在著提供地區節點上的不同,在選擇CDN時將考量最終的訪問者來至那些地區。

CDN的衡量指標:

隨著市場競爭,各個雲端平台皆推出自家內容分發傳遞服務,除了各自擁有的快取節點地理位置不同、功能面的差異性不同之外,選擇上優先需要考量最基礎的幾項指標為下:

Delay Time:

發送到快取節點請求,以及返回用戶數據的來回時間,越低的Latency(延遲),代表性能越好。

Download Speed:

從快取節點上下載的網頁數據時的速度,下載速度越快,代表性能越佳。

Page Speed:

打開網站的載入速度,一個基本的網站可能包含有多個html、css、js等檔案內容,打開速度越快性能越好。

Packet Loss Rate:

與快取節點網絡傳輸中,所遺失的數據包數量佔所發送數據組的比率。

Return-to-origin Rate:

回源率分為以下兩種:

  • 回源請求數比:指邊緣節點對於沒有緩存、緩存過期和不可緩存的請求佔全部請求記錄的比例。越低則性能越好。
  • 回源流量比:回源流量是回源請求的流量和總請求產生的流量的比例,通常以靜態內容來說回源流量越低越好。
Cache Hit Rate:

用戶訪問已緩存數據的快取節點時,佔總訪問次數的比例,緩存命中率越高,代表性能越好。
 

什麼是靜態內容 & 動態內容?

使用CDN費用為什麼這麼高?回源流量怎麼那麼多?這時候您需要注意網站是哪一種屬性的內容

靜態資源內容:

當訪問者多次訪問這個網頁內容,資源的原始碼永遠都是固定不變的,將進行緩存在CDN快取節點上(例:形象官網、圖床、線上電影、部落格 等..)。

靜態文件範例:

.gif、.png、.bmp、.jpg、.jpeg、.mp3、.wma、.flv、.mp4、.wmv、.ogg、.avi、.doc、.docx、.xls、.xlsx、.ppt、.pptx、.txt、.pdf、.zip、.exe、.tat、.ico、.css、.js、.swf、.apk、.m3u8、.ts、.ps、.tif、.class、.mid、.webp、.jar…..

動態資源內容:

需要與伺服器、資料庫即時同步及即時交互等功能的
當訪問者多次訪問這個網頁內容時需要與伺服器、資料庫同步更新,資源可能會發生變動的,則透過快取節點最佳路由回源伺服器更新資料(例:股市交易、直播、聊天室、購物車系統、會員功能 等..)

動態文件範例:

asp、.jsp、.php、.perl、.cgi、api接口、websocket 長連結、動態交互請求(post、put、patch)….