加快您的網站與 Amazon CloudFront - Amazon Simple Storage Service

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

加快您的網站與 Amazon CloudFront

您可以使用 Amazon CloudFront 來提高您的 Amazon S3 網站的性能。 CloudFront 讓您的網站檔案 (例如 HTML、影像和視訊) 可從世界各地的資料中心取得 (稱為邊緣位置)。當訪客從您的網站要求檔案時, CloudFront會自動將要求重新導向至最近邊緣位置的檔案副本。比起訪客向更遠處的資料中心要求內容,如此可以縮短下載時間。

CloudFront 在您指定的一段時間內在節點快取內容。如果訪客要求快取時間超過到期日的內容,請 CloudFront 檢查原始伺服器以查看是否有較新版本的內容可用。如果有更新的版本可用,則會將新版本 CloudFront 複製到邊緣位置。您對原始內容所做的變更,會在訪客要求內容時複寫到節點。

CloudFront 不使用 Route 53

此頁面上的教學課程使用 Route 53 來指向您的 CloudFront 分佈。不過,如果您想要在不使用 Route 53 的 CloudFront 情況下使用 Amazon S3 儲存貯體託管的內容,請參閱 Amazon CloudFront 教學:為 Amazon S3 設定動態內容分發。使用提供在 Amazon S3 儲存貯體中託管的內容時 CloudFront,您可以使用任何儲存貯體名稱,同時支援 HTTP 和 HTTPS。

使用範本自動化設定 AWS CloudFormation

如需有關使用 AWS CloudFormation 範本設定安全靜態網站以建立 CloudFront 分發以為您的網站提供服務的詳細資訊,請參閱 Amazon 開 CloudFront 發人員指南中的安全靜態網站入門。

步驟 1:建立 CloudFront 分發

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

使用 Amazon S3 來源伺服器建立分發
  1. 在開啟 CloudFront 主控台https://console.aws.amazon.com/cloudfront/v4/home

  2. 選擇 Create Distribution (建立分佈)

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

    CloudFront 為您填入原點 ID

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

    透過檢視器通訊協定政策的預設設定,您可以將 HTTPS 用於您的靜態網站。如需這些組態選項的詳細資訊,請參閱 Amazon CloudFront 開發人員指南中的建立或更新 Web 分發指定的值。

  5. 針對 Distribution Settings (分佈設定),請執行下列作業:

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

    2. 替代網域名稱 (CNAME) 設定為根網域和 www 子網域。在本教學課程中,有 example.comwww.example.com

      重要

      在執行此步驟前,請記下使用替代網域名稱的需求,尤其是有效 SSL/TLS 認證的需求。

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

      如需詳細資訊,請參閱 Amazon CloudFront 開發人員指南中的 SSL 憑證

    4. Default Root Object (預設根物件) 中,輸入索引文件的名稱,例如 index.html

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

    5. Logging (記錄日誌) 設為 On (開啟)

      重要

      當您建立或更新發行版並啟用 CloudFront 記錄時,請 CloudFront 更新值區存取控制清單 (ACL),以授與awslogsdelivery帳戶將記錄寫入值區的FULL_CONTROL權限。如需詳細資訊,請參閱 Amazon CloudFront 開發人員指南中的設定標準記錄和存取日誌檔所需的權限。如果儲存記錄的儲存貯體使用 S3 物件擁有權強制執行的儲存貯體擁有者設定來停用 ACL,則CloudFront 無法將記錄寫入儲存貯體。如需詳細資訊,請參閱 控制物件的擁有權並停用儲存貯體的 ACL

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

      如需配置日誌儲存貯體的詳細資訊,請參閱 (選y用) 記錄 Web 流量

    7. 如果您想要將流量產生的記錄儲存在資料夾中,請在記錄前置詞中輸入資料夾名稱。 CloudFront

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

  6. 選擇 Create Distribution (建立分佈)

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

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

    部署發行版後,您可以使用新的 CloudFront網域名稱來參考您的內容。

  8. 記錄主 CloudFront 控台中顯示的網域名稱值,例如dj4p1rv6mvubz.cloudfront.net

  9. 若要驗證您的 CloudFront 發行版是否正常運作,請在網頁瀏覽器中輸入發行版的網域名稱。

    如果您的網站可見,則 CloudFront 分發可以正常工作。如果您的網站有在 Amazon Route 53 註冊的自訂網域,您將需要網 CloudFront 域名稱來更新下一個步驟中設定的記錄。

步驟 2:更新網域與子網域的記錄集

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

更新別名記錄以指向 CloudFront 分佈的步驟
  1. 請在 https://console.aws.amazon.com/route53/開啟 Route 53 主控台。

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

  3. Hosted Zones (託管區域) 頁面上,選擇您為子網域所建立的託管區域,例如 www.example.com

  4. Records (記錄) 下,選取您為子網域建立的 A 記錄。

  5. Record details (記錄詳細資訊)下,選擇 Edit record (編輯記錄)

  6. 在「路由流量至」下,選擇「要 CloudFront 散佈的別名」。

  7. 在「選擇分配」下,選擇 CloudFront 分配。

  8. 選擇儲存

  9. 若要將根網域的 A 記錄重新導向至 CloudFront發佈,請針對根網域重複此程序,例如example.com

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

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

    如果瀏覽器不再將您重新導向至根網域 (例如,http://example.com),則表示 A 記錄已生效。當新 A 記錄生效時,由新 A 記錄路由至 CloudFront 發佈的流量不會重新導向至根網域。任何透過使用http://example.com或重新導向至最近的 CloudFront 節點來參考網站的訪客,在http://www.example.com這裡他們將受益於更快的下載時間。

    提示

    瀏覽器可快取重新導向設定。若您認為新的 A 記錄設定應該已經生效,但您的瀏覽器仍將 http://www.example.com 重新導向至 http://example.com,請嘗試清除瀏覽器的歷史記錄與快取、關閉瀏覽器應用程式再重新開啟,或使用不同的 Web 瀏覽器。

(選用) 步驟 3:檢查日誌檔案

存取日誌能告知您瀏覽網站的人數。這些日誌也包含重要的商務資料,您可以使用 Amazon EMR 等其他服務進行分析。

CloudFront 記錄會儲存在您建立 CloudFront分發並啟用記錄時所選擇的值區和資料夾中。 CloudFront 在發出對應請求後的 24 小時內將日誌寫入日誌存儲桶。

查看網站的日誌檔
  1. 開啟位於 https://console.aws.amazon.com/s3/ 的 Amazon S3 主控台。

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

  3. 選擇記 CloudFront 錄檔資料夾。

  4. 在打開文.gzip件 CloudFront 之前下載它們寫入的文件。

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