[CDN] 1. 什麼是 CDN? 讓我們的資料在世界各地被快速存取
CDN 是什麼? 為什麼要使用 CDN?
在早期 199X 年代,原本是用來作為傳輸靜態內容到各個世界,後來近期,只要有 http traffic,就有可能使用 CDN,也就是內容傳輸網路
有了 CDN,我們可以大大的減少網路內容傳輸的距離,進而大大的減少傳輸時間,顯著的提升效能

(圖片來源:ByteByteGo)
尤其是在網速很重要的年代,0.1 秒都會帶來極大的產值,大大的增加我們的轉換率

(圖片來源:ByteByteGo)
Conversion Rate(轉化率)是一個衡量網站、應用程序或營銷活動效果的指標,通常用於衡量用戶在達到某個目標(例如購買產品、註冊帳戶或填寫表格)方面的表現。換句話說,它描述了從用戶瀏覽網站到實際完成目標操作的過程中的成功比例。
轉化率的計算公式如下:
轉化率(%) =(完成目標操作的用戶數量 / 參與用戶總數)x 100
例如,如果一個電子商務網站有 1,000 名訪客,其中有 50 名訪客購買了產品,那麼轉化率就是:
轉化率(%) =(50 / 1,000)x 100 = 5%
轉化率是一個重要的營銷和用戶體驗指標,通常用來評估廣告投放、網站設計、產品定價等方面的成功程度。通過分析和優化轉化率,企業可以提高收入、降低獲客成本,並提高客戶滿意度。
CDN 分布在全球的每一個點稱作 Pop (Point of Presence),在每個 Pop 的 server,稱做 Edge server



(圖片來源:ByteByteGo)
訪問我們網站的客戶們,可以快速的從 Edge server 中,取得他們所需要的內容

(圖片來源:ByteByteGo)
以下是知名的 CDN 供應商:

(圖片來源:ByteByteGo)
CDN 找尋最近的 Edge server 的技術
有分以下 2 種:
- DNS based routing
- Anycast

(圖片來源:ByteByteGo)
DNS based routing
DNS based routing 的每個 Edge server 的 ip address 都不一樣

(圖片來源:ByteByteGo)
Anycast
Anycast 的每個 Edge server 的 ip address 都一樣

(圖片來源:ByteByteGo)
CDN 額外的好處
Edge server 作為一個 reverse proxy,可以存取著 大量的 內容緩存 (content cache)

(圖片來源:ByteByteGo)
Security - 阻擋 DDOS
若我們沒有 CDN 的狀況,我們的 Server 就必須接收所有的請求

(圖片來源:ByteByteGo)
因為 CDN 有很多的 server,具有大量的 network capactiy,可以抵檔 DDOS

尤其是利用 Anycast 建立的 CDN,更能有效地擴散攻擊

(圖片來源:ByteByteGo)
Availability
就算附近的 CDN 壞了,還有許多個 Edge server 可以支援

(圖片來源:ByteByteGo)
CDN 的運作流程?

查找 CDN edge server IP address
- Bob 在瀏覽器中輸入 www.myshop.com 瀏覽器在本地 DNS cache 中查找域名。
- 如果域名不存在於本地 DNS 緩存中,瀏覽器會去 DNS resolver 解析名稱。DNS resolver 通常位於互聯網服務提供商(ISP)中
- DNS 解析器遞迴地解析域名。最終,它會要求 Authoritative name server 解析域名。
- 如果我們不使用 CDN,Authoritative name server 會返回 www.myshop.com 的 IP 地址。但使用 CDN 的情況下,Authoritative name server 有一個 CNAME 指向 www.myshop.cdn.com CDN 伺服器的域名)
- DNS 解析器要求 Authoritative name server 解析 www.myshop.cdn.com
- 授權名稱伺服器返回 CDN 的負載平衡器的域名 www.myshop.lb.com
- DNS resolver 要求 CDN Load balancer 解析 www.myshop.lb.com IP 地址、使用者的 ISP、請求的內容和伺服器負載,Load balancer 選擇一個最佳的 CDN edge server
- CDN Load balancer 返回 CDN edge server 的 IP 地址,用於 www.myshop.lb.com
- 現在我們終於得到了要訪問的實際 IP 地址。DNS 解析器將 IP 地址返回給瀏覽器
CDN edge server 查找內容 & 回傳
- 瀏覽器訪問 CDN 邊緣伺服器以加載內容。CDN 伺服器上緩存了兩類內容:靜態內容和動態內容。前者包含靜態頁面、圖片、視頻;後者包括邊緣計算的結果
- 如果邊緣 CDN 伺服器的緩存中沒有該內容,它會向上到區域 CDN 伺服器。如果內容仍未找到,它將向上到中央 CDN 伺服器,甚至到源頭 - 倫敦的網路伺服器。這被稱為 CDN 分佈網路,伺服器是按地理位置部署的
結論
- 知道 CDN 可以幫我們 cache server 資源內容,並以最近的距離傳給 user,大大提升效能,提高轉換率
- 瞭解 CDN 還可以減少 DDOS,並提高 availability,不會輕易讓我們的網站損壞
- 瞭解 CDN 透過 DNS 和在 Authoritative 上做 DNS record 的設定,以達到 CDN 在最近距離傳送給 user 的目的