Amazon CloudFront 是一項 Amazon Web Services (AWS) 提供的全球內容傳遞網路 (Content Delivery Network, CDN) 服務。它的主要目的是安全地加速將您的網站、影片、應用程式和其他 Web 內容傳遞給全球使用者。
簡單來說,CloudFront 透過將您的內容副本儲存在全球各地的邊緣位置 (Edge Locations),讓使用者可以從距離他們最近的伺服器獲取內容,而不是直接從您的原始伺服器(Origin Server)獲取,從而顯著縮短內容載入時間、降低延遲,並減輕原始伺服器的負載。
主要概念與特點:
- 邊緣位置 (Edge Locations) / 接觸點 (Points of Presence, PoPs):
- CloudFront 在全球擁有數百個邊緣位置。這些是分佈在世界各地的數據中心,用於快取您的內容。
- 當使用者請求內容時,CloudFront 會將請求路由到距離使用者最近的邊緣位置。如果該邊緣位置有快取的內容,它會直接提供給使用者,否則會從您的原始伺服器擷取內容並快取起來以備將來使用。
- 加速內容傳遞:
- 低延遲: 使用者從最近的邊緣位置獲取內容,而不是從遠端的原始伺服器,大大減少了網路延遲。
- 高輸送量: CloudFront 使用 AWS 的全球骨幹網路,最佳化了資料傳輸路徑,提高資料傳輸速度。
- 負載分擔: 快取內容減少了對原始伺服器的請求,降低了原始伺服器的負載和營運成本。
- 多種原始伺服器支援:
- CloudFront 可以支援多種來源(Origin),作為其內容的源頭: Amazon S3 儲存貯體: 用於託管靜態網站、圖像、影片等。 Amazon EC2 實例: 用於動態網站和應用程式。 Elastic Load Balancing (ELB): 負載平衡器。 任何 HTTP 伺服器: 甚至是您自己的地端 Web 伺服器。
- 安全性:
- DDoS 防護: 與 AWS Shield Standard 整合,提供針對常見 DDoS 攻擊的自動保護。
- AWS WAF (Web Application Firewall) 整合: 可以與 WAF 結合使用,以保護您的 Web 應用程式免受常見的 Web 漏洞(如 SQL 注入、跨站指令碼)攻擊。
- SSL/TLS 加密: 支援 HTTPS,確保資料在傳輸過程中的加密安全。您可以自訂 SSL 憑證。
- 地理限制 (Geo-restriction): 可以根據使用者的地理位置限制或允許內容的存取。
- 簽署 URL 和簽署 Cookie: 用於限制對私人內容(如付費媒體、應用程式訂閱內容)的存取,只允許授權使用者訪問。
- 動態內容加速:
- CloudFront 不僅適用於靜態內容。對於動態內容(例如 API 請求),它也可以透過最佳化路由、減少往返時間 (RTT) 和持久連接來加速內容傳遞。
- 即時日誌和監控:
- 提供詳細的存取日誌,記錄所有透過 CloudFront 提供的請求。
- 與 Amazon CloudWatch 整合,提供效能指標和監控。
- 自定義行為:
- 快取行為: 您可以精細控制哪些內容應該被快取、快取多久、以及根據哪些請求標頭、Cookie 或查詢字串來快取內容。
- Lambda@Edge: 允許您在 CloudFront 邊緣位置運行 Lambda 函數,在內容傳遞路徑的各個階段(請求到達、回應返回等)自定義行為,無需佈建或管理伺服器。這對於 A/B 測試、SEO 優化、內容個性化等非常有用。
典型使用案例:
- 加速網站和 Web 應用程式: 提升全球用戶的網站載入速度,改善用戶體驗。
- 影片串流服務: 提供高效且低延遲的影片傳遞,支援直播和點播。
- 遊戲應用程式: 加速遊戲資源(如圖片、音訊、地圖)的下載,降低遊戲延遲。
- API 加速: 提高 API 請求的回應速度,特別是對於全球分散的使用者。
- 軟體下載: 加速軟體更新和安裝程式的傳遞。