

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用 Amazon CloudFront 加速您的網站
<a name="website-hosting-cloudfront-walkthrough"></a>

您可以使用 [Amazon CloudFront](https://aws.amazon.com/cloudfront) 來提高 Amazon S3 網站的效能。CloudFront 可讓您網站的檔案 (例如 HTML、影像及影片) 能從全球各地的資料中心 (稱為*節點*) 存取。當訪客請求您網站的檔案時，CloudFront 會自動將請求重新導向至最接近節點的檔案複本。比起訪客向更遠處的資料中心要求內容，如此可以縮短下載時間。

CloudFront 會在您指定的期間，將節點內容放在快取記憶體中。若訪客請求的內容在快取中的時間超過了過期日，CloudFront 會查看原始伺服器中是否有較新版本的內容可供使用。若有提供較新的版本，CloudFront 會將新版本複製到節點。您對原始內容所做的變更，會在訪客要求內容時複寫到節點。

**使用 CloudFront 但不使用 Route 53**  
此頁面上的教學課程使用 Route 53 來指向您的 CloudFront 分發。然而，如果您想要使用 CloudFront 提供 Amazon S3 儲存貯體中託管的內容，但不使用 Route 53，請參閱 [Amazon CloudFront 教學課程：設定 Amazon S3 的動態內容分發](https://aws.amazon.com/cloudfront/getting-started/S3/)。當您使用 CloudFront 提供 Amazon S3 儲存貯體中託管的內容時，您可以使用任何儲存貯體名稱，而且同時支援 HTTP 和 HTTPS 兩者。

**使用 CloudFormation 範本自動化設定**  
如需使用 CloudFormation 範本設定建立 CloudFront 分佈以提供網站之安全靜態網站的詳細資訊，請參閱《*Amazon CloudFront 開發人員指南*》中的[安全靜態網站入門](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/getting-started-secure-static-website-cloudformation-template.html)。

**Topics**
+ [步驟 1：建立 CloudFront 分發](#create-distribution)
+ [步驟 2：更新網域與子網域的記錄集](#update-record-sets)
+ [(選用) 步驟 3：檢查日誌檔案](#check-log-files)

## 步驟 1：建立 CloudFront 分發
<a name="create-distribution"></a>

首先，請建立 CloudFront 分發。如此一來，即可從全球各地的資料中心取得您的網站。

**使用 Amazon S3 來源伺服器建立分發**

1. 在 [https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home) 開啟 CloudFront 主控台。

1. 選擇 **Create Distribution (建立分佈)**。

1. 在**建立分發**頁面的**來源設定**區段中，針對**來源伺服器網域名稱**，輸入您儲存貯體的 Amazon S3 網站端點，例如 **example.com.s3-website.us-west-1.amazonaws.com**。

   CloudFront 會為您填入**原始伺服器 ID**。

1. 針對 **Default Cache Behavior Settings (預設快取行為設定)**，請保留預設值。

   透過**檢視器通訊協定政策**的預設設定，您可以將 HTTPS 用於您的靜態網站。如需這些組態選項的詳細資訊，請參閱*《Amazon CloudFront 開發人員指南》*中的[建立或更新 Web 分發時指定的值](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/WorkingWithDownloadDistributions.html#DownloadDistValuesYouSpecify)。

1. 針對 **Distribution Settings (分佈設定)**，請執行下列作業：

   1. 將 **Price Class (價格方案)** 維持在設為 **Use All Edge Locations (Best Performance) (使用所有節點 (最佳效能))**。

   1. 將**替代網域名稱 (CNAME)** 設定為根網域和 `www` 子網域。在本教學課程中，有 `example.com` 和 `www.example.com`。
**重要**  
在執行此步驟前，請記下[使用替代網域名稱的需求](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/CNAMEs.html#alternate-domain-names-requirements)，尤其是有效 SSL/TLS 認證的需求。

   1. 對於 **SSL 憑證**，請選擇**自訂 SSL 憑證 (example.com)**，然後選擇涵蓋網域和子網域名稱的自訂憑證。

      如需詳細資訊，請參閱*《Amazon CloudFront 開發人員指南》*中的 [SSL 憑證](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesSSLCertificate)。

   1. 在 **Default Root Object (預設根物件)** 中，輸入索引文件的名稱，例如 `index.html`。

      如果用來存取分發的 URL 不包含檔案名稱，則 CloudFront 分發會傳回索引文件。**Default Root Object (預設根物件)** 應該與您靜態網站的索引文件名稱完全相符。如需詳細資訊，請參閱[設定索引文件](IndexDocumentSupport.md)。

   1. 將 **Logging (記錄日誌)** 設為 **On (開啟)**。
**重要**  
當您建立或更新分佈並啟用 CloudFront 日誌記錄時，CloudFront 會更新儲存貯體存取控制清單 ACL 以為 `awslogsdelivery` 帳戶提供向儲存貯體寫入日誌的 `FULL_CONTROL` 許可。如需詳細資訊，請參閱《Amazon CloudFront 開發人員指南》**中的[設定標準日誌記錄和存取日誌檔案所需的許可](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/AccessLogs.html#AccessLogsBucketAndFileOwnership)。如果存放日誌的儲存貯體使用 S3 物件擁有權的儲存貯體擁有者強制設定來停用 ACL，則 CloudFront 無法將日誌寫入儲存貯體。如需詳細資訊，請參閱[控制物件的擁有權並停用儲存貯體的 ACL](about-object-ownership.md)。

   1. 針對 **Bucket for Logs (日誌儲存貯體)**，選擇所建立的日誌記錄儲存貯體。

      如需配置日誌儲存貯體的詳細資訊，請參閱 [(選y用) 記錄 Web 流量](LoggingWebsiteTraffic.md)。

   1. 如果您要將流量產生的日誌儲存到資料夾中的 CloudFront 分發，請在**日誌前綴**中輸入資料夾名稱。

   1. 將其他所有設定保留為其預設值。

1. 選擇 **Create Distribution (建立分佈)**。

1. 若要查看分佈的狀態，請在主控台中尋找分佈並檢查 **Status (狀態)** 欄。

   `InProgress` 狀態表示尚未完整部署分散。

   部署分發之後，可以使用新的 CloudFront 網域名稱來參考您的內容。

1. 記錄 CloudFront 主控台中所顯示的**網域名稱**值，例如 `dj4p1rv6mvubz.cloudfront.net`。

1. 若要確認 CloudFront 分發運作正常，請在 Web 瀏覽器中輸入分發的網域名稱。

   如果您的網站是可見的，則 CloudFront 分發會正常運作。如果您的網站有已註冊 Amazon Route 53 的自訂網域，您將需要 CloudFront 網域名稱才能在下一個步驟中更新記錄集。

## 步驟 2：更新網域與子網域的記錄集
<a name="update-record-sets"></a>

現在您已成功建立 CloudFront 分發，請更新 Route 53 中的別名記錄，以指向新的 CloudFront 分發。

**若要更新別名記錄以指向 CloudFront 分發**

1. 請在 [https://console.aws.amazon.com/route53/](https://console.aws.amazon.com/route53/)開啟 Route 53 主控台。

1. 在左側導覽窗格中，選擇 **Hosted zones** (託管區域)。

1. 在 **Hosted Zones** (託管區域) 頁面上，選擇您為子網域所建立的託管區域，例如 `www.example.com`。

1. 在 **Records** (記錄) 下，選取您為子網域建立的 *A* 記錄。

1. 在 **Record details** (記錄詳細資訊)下，選擇 **Edit record** (編輯記錄)

1. 在 **Route traffic to** (將流量路由至) 下，選擇 **Alias to CloudFront distribution** (CloudFront 分佈的別名)。

1. 在 **Choose distribution** (選擇分佈) 下，選擇 CloudFront 分發。

1. 選擇 **Save** (儲存)。

1. 若要將根網域的 *A* 記錄重新導向至 CloudFront 分佈，請針對根網域重複此程序，例如 `example.com`。

   對記錄集所做的更新，會在 2–48 小時內生效。

1. 若要查看新的 *A* 記錄是否已生效，請在網頁瀏覽器中輸入您的子網域 URL，例如 `http://www.example.com`。

   如果瀏覽器不再將您重新導向至根網域 (例如，`http://example.com`)，則表示 A 記錄已生效。當新的 *A* 記錄生效時，就不會將新的 *A* 記錄路由至 CloudFront 分發的流量重新導向至根網域。任何使用 `http://example.com` 或 `http://www.example.com` 參考網站的訪客，都會被重新導向至最近的 CloudFront 節點，如此有助於其縮短下載時間。
**提示**  
瀏覽器可快取重新導向設定。若您認為新的 *A* 記錄設定應該已經生效，但您的瀏覽器仍將 `http://www.example.com` 重新導向至 `http://example.com`，請嘗試清除瀏覽器的歷史記錄與快取、關閉瀏覽器應用程式再重新開啟，或使用不同的 Web 瀏覽器。

## (選用) 步驟 3：檢查日誌檔案
<a name="check-log-files"></a>

存取日誌能告知您瀏覽網站的人數。這些日誌也包含重要的商務資料，您可以使用 [Amazon EMR](https://docs.aws.amazon.com/emr/latest/DeveloperGuide/) 等其他服務進行分析。

CloudFront 日誌會儲存在您建立 CloudFront 分發並啟用日誌時所選擇的儲存貯體和資料夾中。CloudFront 會在提出相應請求的 24 小時內，將日誌寫入您的日誌儲存貯體。

**查看網站的日誌檔**

1. 開啟位於 [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) 的 Amazon S3 主控台。

1. 選擇適用於您網站的記錄儲存貯體。

1. 選擇 CloudFront 資料夾。

1. 在開啟之前，請先下載由 CloudFront 撰寫的 `.gzip` 檔案。

   若您建立的網站僅供學習練習，則可先刪除原先已配置的資源，如此即不會再增加費用。若要這麼做，請參閱[清理範例資源](getting-started-cleanup.md)。刪除 AWS 資源之後，您的網站即不再可供使用。