配置 CloudFront 來加速 S3 的內容分發
配置 CloudFront 來加速 S3 的內容分發
使用 Amazon CloudFront 來加速 S3 的內容分發,可以顯著提升全球用戶訪問 S3 上內容的速度和性能。以下是配置步驟:
步驟 1:準備 S3 儲存桶
- 創建 S3 儲存桶:
- 登入 AWS 管理控制台,導航到 S3,然後點擊 “Create bucket”。
- 為儲存桶命名並選擇區域,然後點擊 “Create bucket” 完成創建。
- 上傳內容到 S3:
- 進入您剛創建的 S3 儲存桶,點擊 “Upload” 上傳您想要通過 CloudFront 分發的文件。
- 設置公共訪問權限(可選):
- 如果您希望所有人都能通過 CloudFront 訪問這些文件,您需要將這些文件設置為公共訪問。
- 選擇文件,點擊 “Actions” > “Make public”,或者直接在 S3 Bucket Policies 中設置公共訪問。
步驟 2:創建 CloudFront 發行(Distribution)
- 進入 CloudFront 控制台:
- 在 AWS 管理控制台中導航到 CloudFront。
- 創建新發行:
- 點擊 “Create Distribution”。
- 選擇 “Web” 作為發行方法,然後點擊 “Get Started”。
- 配置發行設置:
- Origin Domain Name: 從下拉選單中選擇您的 S3 儲存桶(格式為
your-bucket-name.s3.amazonaws.com
)。 - Origin Path: 如果您只想加速儲存桶內的某個子目錄,可以在此指定路徑;否則保持空白。
- Viewer Protocol Policy: 選擇 “Redirect HTTP to HTTPS” 或 “HTTPS Only” 來確保通過 HTTPS 訪問內容。
- Allowed HTTP Methods: 默認選擇 “GET, HEAD”,如果需要支持更多 HTTP 方法(如 POST、PUT),可以選擇對應選項。
- Cache Based on Selected Request Headers: 默認選擇 “None”。如果有特定需求,如根據用戶代理頭來控制快取,可以選擇對應選項。
- Object Caching: 默認選擇 “Use Origin Cache Headers”。如果需要自定義快取時間,選擇 “Customize” 並設置 TTL 值。
- Smooth Streaming: 如果需要支持微軟 Smooth Streaming 格式,選擇此選項。
- Restrict Bucket Access: 如果不希望 S3 URL 能被直接訪問,可以啟用這個選項,並創建一個 Origin Access Identity (OAI) 來限制存取。
- Origin Domain Name: 從下拉選單中選擇您的 S3 儲存桶(格式為
- 設置 SSL/TLS 設定:
- SSL Certificate: 如果您有自定義域名,並且希望通過 HTTPS 訪問,選擇 “Custom SSL Certificate” 並從 ACM (AWS Certificate Manager) 中選擇憑證。
- Supported HTTP Versions: 默認選擇 “HTTP/2, HTTP/1.1, HTTP/1.0” 來支援多種 HTTP 版本。
- 設置 Caching Behaviors:
- Path Pattern: 保持
/
用於根目錄或設置特定的路徑模式來應用這個快取行為。 - Min/Max/Default TTL: 根據您的需求設置文件的快取時間。
- Compress Objects Automatically: 啟用此選項可自動壓縮傳遞的內容,如 HTML、CSS、JavaScript 等。
- Path Pattern: 保持
- 創建發行:
- 完成配置後,點擊 “Create Distribution”。
步驟 3:驗證並使用 CloudFront 發行
- 等待發行部署完成:
- 創建發行後,CloudFront 需要幾分鐘的時間來部署。部署完成後,您可以在 CloudFront 控制台中查看分配的 Domain Name(例如
d1a2bc3d4e5fg6.cloudfront.net
)。
- 創建發行後,CloudFront 需要幾分鐘的時間來部署。部署完成後,您可以在 CloudFront 控制台中查看分配的 Domain Name(例如
- 驗證內容傳遞:
- 使用 CloudFront 分配的 Domain Name 訪問 S3 上的內容。例如,如果您的文件存儲在
mybucket.s3.amazonaws.com/image.png
,您可以通過d1a2bc3d4e5fg6.cloudfront.net/image.png
來訪問。
- 使用 CloudFront 分配的 Domain Name 訪問 S3 上的內容。例如,如果您的文件存儲在
- 配置自定義域名(可選):
- 如果您希望通過自己的域名來訪問內容,可以在 Route 53 或其他 DNS 託管商處創建 CNAME 記錄,指向 CloudFront 分配的 Domain Name。然後在 CloudFront 設置中添加您的自定義域名。
- 監控與優化:
- 使用 Amazon CloudWatch 監控 CloudFront 的流量、錯誤率等關鍵指標,並根據需要調整快取策略和安全設置。
總結
通過配置 CloudFront,您可以顯著提升全球用戶訪問 S3 上內容的速度,並享受高效能、安全的內容傳遞服務。CloudFront 的全球分佈邊緣節點和靈活的配置選項,使其成為加速靜態和動態內容的理想選擇。
本文章以 CC BY 4.0 授權