首頁文章關於報價聯絡我們🌐 EN
返回首頁CDN
AWS CloudFront 教學:7 步驟完成 CDN 設定與優化

AWS CloudFront 教學:7 步驟完成 CDN 設定與優化

📑 目錄

AWS CloudFront 教學:7 步驟完成 CDN 設定與優化AWS CloudFront 教學:7 步驟完成 CDN 設定與優化

AWS CloudFront 是 Amazon Web Services 的 CDN 服務,與 AWS 生態系深度整合,是企業級應用的首選。本文將從基礎概念開始,帶你完成 CloudFront 的完整設定,包含 S3 靜態網站、EC2/ALB 動態應用的整合,以及效能與成本優化的最佳實踐。

需要快速完成 AWS 架構設計?預約架構諮詢,讓我們的 AWS 認證架構師協助你。



CloudFront 簡介

什麼是 AWS CloudFront?

AWS CloudFront 是 Amazon 的全球內容傳遞網路(CDN),在全球 47 個國家擁有超過 450 個邊緣節點(Edge Locations)和 13 個區域邊緣快取(Regional Edge Caches)。

想了解更多 CDN 的基礎概念和運作原理,可以參考我們的完整指南。

CloudFront 的主要特色:

特色說明
AWS 深度整合與 S3、EC2、ALB、Lambda@Edge 無縫整合
全球覆蓋450+ 邊緣節點,覆蓋六大洲
安全防護內建 AWS Shield Standard,可整合 WAF
彈性計費按實際用量計費,沒有最低消費
即時日誌可匯出至 S3、CloudWatch 分析

CloudFront 與其他 CDN 的差異

比較項目CloudFrontCloudflareAkamai
免費方案有(12 個月 1TB/月)有(無限流量)
AWS 整合原生需額外設定需額外設定
設定複雜度中等簡單複雜
適合場景AWS 用戶一般網站大型企業

想了解更多 CDN 廠商的完整比較,可以參考我們的比較文章。

描述:AWS CloudFront 全球邊緣節點分布圖,以世界地圖為底,標示 450+ 個 Edge Location 和 13 個 Regional Edge Cache 的位置 構圖:全幅橫向、AWS 深藍色底、橙色節點標記 -->



CloudFront 核心概念

在開始設定前,你需要了解 CloudFront 的四個核心概念:

Distribution(分發)

Distribution 是 CloudFront 的基本設定單位,包含了所有關於 CDN 的設定,如 Origin、快取行為、SSL 憑證等。

類型:

Origin(來源)

Origin 是你的內容存放位置,CloudFront 會從 Origin 取得內容並快取。

常見 Origin 類型:

Edge Location(邊緣節點)

Edge Location 是快取內容的實際位置,分布在全球各地。使用者的請求會被路由到最近的 Edge Location。

亞太區主要節點:

Cache Behavior(快取行為)

Cache Behavior 決定 CloudFront 如何處理不同路徑的請求。

可設定項目:

描述:CloudFront 架構圖,顯示使用者請求流程:使用者 → Edge Location → Regional Edge Cache → Origin(S3/ALB/EC2),並標示各層的功能 構圖:由上至下流程圖、四層架構、箭頭標示資料流向 -->



建立第一個 Distribution

Step 1:進入 CloudFront Console

  1. 登入 AWS Console
  2. 搜尋「CloudFront」或在服務列表中找到
  3. 點擊「Create Distribution」

Step 2:設定 Origin

Origin Domain: 輸入你的來源網域

Origin Path: 選填,指定特定路徑(如 /public)

Origin Access:

Protocol:

Step 3:設定 Default Cache Behavior

Path Pattern: 預設為 *(匹配所有請求)

Compress Objects Automatically: 建議開啟

Viewer Protocol Policy:

Allowed HTTP Methods:

Cache Key and Origin Requests:

Step 4:設定 Distribution Settings

Price Class: 決定使用哪些區域的節點

AWS WAF: 可選擇是否整合 WAF

Alternate Domain Names (CNAMEs): 輸入你的自訂網域

Custom SSL Certificate: 選擇 ACM 憑證

Default Root Object: 如 index.html

Step 5:建立並等待部署

點擊「Create Distribution」後,需等待 5-15 分鐘完成部署。狀態會從「In Progress」變為「Deployed」。

部署完成後,你會獲得一個 CloudFront 網域名稱(如 d1234567890.cloudfront.net),可以用來測試。



整合 S3 靜態網站

S3 + CloudFront 是最常見的靜態網站架構,適合部落格、企業官網、SPA 應用程式。

S3 Bucket 設定

1. 建立 Bucket

2. 上傳檔案

3. 不需要開啟 Static Website Hosting

Origin Access Control(OAC)設定

OAC 是 AWS 推薦的新方式,取代舊的 OAI:

1. 建立 OAC

2. 在 Distribution 中選擇 OAC

3. 更新 S3 Bucket Policy CloudFront 會提供一個 Policy,複製並貼到 S3 Bucket Policy:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AllowCloudFrontServicePrincipal",
            "Effect": "Allow",
            "Principal": {
                "Service": "cloudfront.amazonaws.com"
            },
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::your-bucket-name/*",
            "Condition": {
                "StringEquals": {
                    "AWS:SourceArn": "arn:aws:cloudfront::123456789012:distribution/EDFDVBD6EXAMPLE"
                }
            }
        }
    ]
}

SPA 應用程式設定

對於 React、Vue、Angular 等 SPA,需要額外設定錯誤頁面處理:

Custom Error Response:

這樣當使用者直接存取 /about 這類路徑時,CloudFront 會回傳 index.html,讓前端路由處理。



整合 EC2 / ALB

對於動態內容,CloudFront 通常與 ALB(Application Load Balancer)整合。

ALB 作為 Origin

1. 設定 Origin Domain

2. Protocol

3. Origin Shield

動態內容快取策略

對於 API 或動態內容,需要特別設定快取行為:

不快取的路徑(如 /api/*):

部分快取的路徑(如 /products/*):

健康檢查設定

CloudFront 會自動監控 Origin 健康狀態,但你可以調整:

Origin Connection Attempts: 預設 3 次

Origin Connection Timeout: 預設 10 秒

Origin Read Timeout: 預設 30 秒

Origin Keepalive Timeout: 預設 5 秒

架構設計需要第二意見?預約架構諮詢,我們的 AWS 認證架構師將提供專業建議。



SSL 憑證設定

使用 ACM 免費憑證

AWS Certificate Manager(ACM)提供免費的 SSL 憑證:

重要: CloudFront 只能使用在 us-east-1(N. Virginia) 區域的 ACM 憑證。

申請步驟:

  1. 切換到 us-east-1 區域
  2. 進入 ACM Console → Request Certificate
  3. 選擇 Public Certificate
  4. 輸入網域名稱(如 example.com, *.example.com)
  5. 選擇驗證方式(建議 DNS Validation)
  6. 在 DNS 新增驗證記錄
  7. 等待憑證狀態變為 Issued

自訂網域設定

1. 在 Distribution 新增 Alternate Domain Names (CNAMEs)

2. 選擇 SSL Certificate

3. 在 DNS 新增 CNAME 記錄

HTTPS 強制導向

設定 Viewer Protocol Policy:

這樣所有 HTTP 請求都會自動 301 導向到 HTTPS。

描述:CloudFront SSL 設定介面截圖,標示 Alternate Domain Names、SSL Certificate 選擇和 Viewer Protocol Policy 設定位置 構圖:後台截圖、紅框標註重點設定區域 -->



快取優化策略

Cache Policy 設定

AWS 提供預設的 Cache Policy,也可以自訂:

預設 Policy:

Policy 名稱TTL適用場景
CachingOptimized預設 24 小時,最大 1 年靜態資源
CachingDisabled不快取API、動態內容
CachingOptimizedForUncompressedObjects同上,但不壓縮已壓縮的內容

自訂 Policy 設定項目:

TTL 設定原則

資源類型建議 TTL說明
HTML5 分鐘 - 1 小時內容可能經常更新
CSS/JS(有版本號)1 年透過 Cache Busting 更新
圖片1 個月 - 1 年通常不常更新
API 回應0 或很短根據業務需求決定
使用者特定內容0不應快取

快取失效(Invalidation)

當需要強制更新快取時:

1. Console 操作

2. CLI 操作

aws cloudfront create-invalidation \
    --distribution-id E1234567890 \
    --paths "/*"

3. 費用注意

建議: 與其頻繁 Invalidation,不如善用 Cache Busting(在檔名加版本號)。



安全性設定

AWS Shield 整合

CloudFront 自動包含 AWS Shield Standard,提供:

Shield Advanced(付費)提供:

WAF 整合

AWS WAF 可以與 CloudFront 整合,提供:

設定方式:

  1. 在 WAF Console 建立 Web ACL
  2. 區域選擇 CloudFront(Global)
  3. 新增規則(可使用 AWS Managed Rules)
  4. 在 CloudFront Distribution 中關聯 Web ACL

想了解更多 CDN 與 DDoS 防護,可以參考我們的專文。

地理限制

CloudFront 可以根據使用者的地理位置允許或封鎖存取:

設定位置: Distribution → Security → Restrictions → Geo Restriction

選項:

對於需要存取控制的內容(如付費內容),可以使用簽署:

Signed URLs: 適合單一檔案 Signed Cookies: 適合多個檔案或串流



成本優化

Price Class 選擇

不同 Price Class 的費用差異顯著:

Price Class覆蓋區域費用差異
All Edge Locations全球最高
200(排除南美、澳洲部分)北美、歐洲、亞洲中等
100北美、歐洲最低

建議: 如果主要使用者在亞洲,選擇 Price Class 200 可以在效能和成本間取得平衡。

壓縮設定

開啟自動壓縮可以減少傳輸量,降低費用:

設定位置: Cache Behavior → Compress Objects Automatically → Yes

支援的壓縮格式:

節省效果: 通常可減少 60-80% 的傳輸量

更多 CDN 優化技巧,請參考 CDN 設定優化教學

監控與預算警示

CloudWatch Metrics:

設定 Budget Alert:

  1. AWS Budgets → Create Budget
  2. 設定每月預算金額
  3. 設定警示閾值(如 80%、100%)
  4. 設定通知方式(Email、SNS)

想了解更多 CDN 費用與省錢技巧,可以參考我們的費用指南。



常見問題排解

403 Forbidden 錯誤

可能原因:

  1. S3 Bucket Policy 未正確設定
  2. OAC/OAI 設定錯誤
  3. S3 Block Public Access 設定
  4. 檔案不存在

解決步驟:

  1. 確認 Bucket Policy 包含 CloudFront 的存取權限
  2. 確認 OAC 設定正確
  3. 確認檔案路徑正確

504 Gateway Timeout

可能原因:

  1. Origin 回應過慢
  2. Origin 健康檢查失敗
  3. Origin Timeout 設定過短

解決步驟:

  1. 檢查 Origin 是否正常運作
  2. 增加 Origin Read Timeout(最大 60 秒)
  3. 優化 Origin 效能

快取未更新

可能原因:

  1. 快取尚未過期
  2. 瀏覽器快取
  3. TTL 設定過長

解決步驟:

  1. 建立 Invalidation 清除快取
  2. 清除瀏覽器快取或使用無痕模式測試
  3. 調整 TTL 設定
  4. 使用 Cache Busting(在 URL 加版本參數)

效能調校

檢查項目:

  1. Cache Hit Ratio:目標 > 80%
  2. Origin Latency:檢查 Origin 回應時間
  3. Edge Location:確認使用者連到正確的節點

優化方向:

  1. 增加快取涵蓋範圍
  2. 使用 Origin Shield 減少 Origin 負載
  3. 考慮使用 Lambda@Edge 做邊緣運算


進階功能

Lambda@Edge

在邊緣節點執行自訂程式碼:

使用場景:

觸發點:

CloudFront Functions

比 Lambda@Edge 更輕量快速的邊緣運算:

限制:

適合場景:

Origin Shield

在 Origin 前面增加一層快取:

好處:

費用: 依據請求數計費



實際案例:電商網站架構

一個典型的電商網站 CloudFront 架構:

架構:

使用者 → CloudFront → ALB → EC2 Auto Scaling Group
                    ↘ S3(靜態資源)

Cache Behavior 設定:

路徑OriginCache Policy
/api/*ALBCachingDisabled
/static/*S3CachingOptimized(1 年)
/images/*S3CachingOptimized(1 個月)
Default (*)ALB自訂(5 分鐘)

安全設定:



結論:打造高效能 AWS 架構

完成本文的設定後,你的 CloudFront 應該已經:

下一步建議:

  1. 監控 CloudWatch Metrics,確認效能指標
  2. 設定 Budget Alert,控制成本
  3. 定期檢視存取日誌,優化快取策略
  4. 考慮是否需要 Lambda@Edge 做進階處理

好的架構能節省數倍的營運成本。預約架構諮詢,讓我們一起檢視你的雲端架構。CloudSwap 團隊擁有多位 AWS 認證解決方案架構師,已協助超過 100 家企業優化 AWS 架構。



常見問題 FAQ

CloudFront 和 S3 Transfer Acceleration 有什麼不同?

CloudFront 是完整的 CDN 服務,提供快取、安全防護等功能。S3 Transfer Acceleration 只是加速上傳到 S3 的功能。如果你需要加速網站內容傳遞,應該使用 CloudFront。

CloudFront 的免費額度有多少?

AWS Free Tier 包含每月 1TB 傳輸量和 10,000,000 次 HTTP/HTTPS 請求,期限為 12 個月。超過後按用量計費,亞太區約 $0.12/GB。

可以同時使用 CloudFront 和 Cloudflare 嗎?

技術上可以,但通常不建議。兩層 CDN 會增加複雜度和延遲。如果你已經在使用 AWS,CloudFront 是更好的選擇;如果主要使用其他雲端或需要免費方案,Cloudflare 更適合。

CloudFront 支援 HTTP/3 嗎?

是的,CloudFront 支援 HTTP/3(QUIC)。可以在 Distribution 設定中啟用,對於行動網路使用者可以提升效能。

如何將現有網站遷移到 CloudFront?

建議步驟:(1) 先建立 CloudFront Distribution 指向現有 Origin;(2) 使用 CloudFront 網域測試;(3) 確認正常後,再將 DNS 指向 CloudFront。整個過程可以做到零停機遷移。

CDNAWSAzure
上一篇
AWS Lambda 費用計算完整指南:Free Tier、計價方式與省錢攻略【2025】
下一篇
API Key 管理與安全|2026 年 AI API Key 最佳實踐完整指南