今天介紹一下亞馬遜的CDN服務AWS CloudFront。CDN的全稱是Content Delivery Network,即內容分發網絡。將伺服器上的內容發布到網絡分發節點上,終端用戶訪問網站時,從離終端用戶最近的網絡分發節點提供網站的內容。從而實現低延遲,高速數據傳輸,簡單來說就是使用CDN進行網絡加速。CloudFront是AWS推出的一項實現CDN的服務。首先介紹一下相關的基本概念。
CDN
先來提一下什麼事CDN,這一技術以前只應用於大型商業性網站。通過使用這種技術,可以將網站上的靜態內容(例如.html文件、.jpg圖片)和動態內容(例如數據庫查詢)緩存到CDN提供商位於全球各地的多個伺服器上。這樣當全世界不同訪客訪問這個網站的時候,就不再需要通過網站所在伺服器讀取這些內容,而是可以從就近的CDN緩存伺服器上讀取,因此內容的讀取速度更快,直接影響就是網頁的加載速度更快。
CDN的總承載量可以比單一骨幹最大的頻寬還要大。這使得CDN可以承載的使用者數量比起傳統單一伺服器多。也就是說,有100Gbits/sec處理能力的伺服器放在同樣的資料中心,只有10Gbps/sec頻寬就只能發揮出10Gbps/sec的承載量。但如果放到十個有10Gbps/sec的地點,整個系統的承載量就可以到10*10Gbps/sec。同時,將伺服器放到不同地點,可以減少互連的流量,進而降低頻寬成本。
對於TCP傳輸而言,TCP的速度(throughput)會受到延遲時間(latency)與封包漏失率(packet lost)影響。為了改善這些負面因素,CDN通常會指派較近、較順暢的伺服器節點將資料傳輸給使用者。雖然距離並不是絕對因素,但這麼做可以盡可能提高效能,使用者將會覺得比較順暢。這使得一些比較高頻寬的應用(傳輸高清畫質的影片)更容易推動。CDN另外一個好處在於有異地備援。當某個伺服器故障時,系統將會調用其他鄰近地區的伺服器服務,進而提供接近100%的可靠度。除此之外,CDN提供給服務提供者更多的控制權。提供服務的人可以針對客戶、地區,或是其他因子調整。
AWS CloudFront
CloudFront是由Amazon提供的一套覆蓋全球的CDN網絡。該服務擁有雲端計算服務特點,可以根據流量和請求數量進行收費,並且相對來說費用還算低廉,因此適合小型公司或個人。
因此只要使用CloudFront服務,就相當於可以通過上述遍布全球主要地區的緩存伺服器,為您的網站提供加速服務。
如果該內容已存在於最低延遲的節點,CloudFront 會立即提供該內容。
如果內容不存在於該節點,CloudFront 將從您已定義的原始伺服器 (例如 Amazon S3 儲存貯體、MediaPackage 頻道或 HTTP 伺服器 (例如 Web 伺服器)) 擷取內容。