使用 Amazon CloudFront

在本教學中,您會學習如何使用 Amazon CloudFront 交付內容,並減少 Web 應用程式的最終使用者延遲。CloudFront 運用稱為節點的全球資料中心網路來加速內容交付,藉由快取接近最終使用者的內容來縮短交付時間。 當節點中尚未有內容時,CloudFront 會從各項來源​,例如 Amazon S3 儲存貯體、Amazon EC2 執行個體、Amazon Elastic Load Balancing 負載平衡器或您自己的 Web 伺服器取得內容。CloudFront 可用於交付整個網站或應用程式,包括動態、靜態、串流和互動內容。

在下列步驟中,您會設定 Amazon S3 儲存貯體做為來源,並使用 Web 瀏覽器來測試分發,以確認系統正在交付內容。

此教學中的所有操作都可用免費方案資格來進行。

更快交付內容需要一個帳戶

登入主控台

AWS 免費方案包括每月 50 GB 的資料傳出和 2,000,000 次 HTTP 或 HTTPS 請求,為期一年。 

查看 AWS 免費方案詳細資訊 »


在這個步驟中,我們會把範本靜態內容上傳到 Amazon S3 儲存貯體。在後面的步驟中,我們將使用這個儲存貯體作為 CloudFront 來源。對於包含靜態內容 (例如影像、視訊、HTML 頁面、.css 檔案和 .js 檔案) 的 Amazon CloudFront 來源,Amazon S3 是不錯的選擇。


a.我們在本教學中使用的範例影像為 PNG 格式,名稱為 cloudfront-test-image.png。 按一下右方的按鈕下載範例映像,並確認將其另存為 cloudfront-test-image.png


b.按一下這裡,就會在新的瀏覽器視窗中開啟 AWS 管理主控台。在搜尋方塊中輸入 ​S3,然後按兩下開啟儀表板。

(按一下以縮放)


c.您現在已經位於 S3 儀表板,按一下 Create Bucket (建立儲存貯體) 按鈕。​

  • Bucket Name (儲存貯體名稱):輸入儲存貯體的名稱 -​ 其必須為唯一且全部小寫。其他有關 S3 儲存貯體名稱的限制,請參閱 Bucket Restrictions and Limitations。 
  • Region (區域):您可選擇最接近的區域來最佳化延遲、將成本降至最低,或是合乎法規要求。 

選取 Next (下一步)

Set properties (設定屬性) 面板中,有很多實用的 S3 儲存貯體選項,包括 Versioning (版本控制)、Server Access Logging (伺服器存取日誌記錄)、Tags (標籤)、Object-level Logging (物件等級日誌記錄) 和 Default Encryption (預設加密)。我們不會在此教學啟用這些功能。

選取 Next (下一步)

在「Set permissions (設定許可)」面板中,您可以為我們的儲存貯體設定存取控制許可。我們不會在此教學啟用這些功能。

選取 Next (下一步)

在 Review (審閱) 面板上,選擇 Create bucket (建立儲存貯體)

(按一下以縮放)


d.按兩下儲存貯體名稱。選擇 Upload (上傳),然後選擇 Add Files (新增檔案),接下來從電腦中選擇 cloudfront-test-image.png 

選取 Next (下一步)

(按一下以縮放)


e.在 Set permissions (設定許可) 標籤上,您需要將影像設為公開可讀。 依預設,S3 物件會設為私有。  將 Manage public permissions (管理公有許可) 變更為「Grant public access to objects(s) (將公有存取權授予物件)」。

選取 Next (下一步)

在「Set properties (設定屬性)」標籤中,可以設定「Storage class (儲存體類別)」、「Encryption (加密)」和「中繼資料 (Metadata)」。我們不會在此教學啟用這些功能。

選取 Next (下一步)

在「Review (審閱)」標籤中,查看檔案上傳。

選取 Upload (上傳)

(按一下以縮放)

將內容上傳至 Amazon S3 後,即可使用 Amazon CloudFront 主控台將內容交付至全球各地的最終使用者。


a.按一下這裡,就會在新的瀏覽器標籤中開啟 AWS 管理主控台。 在 Storage & Content Delivery (儲存與內容交付)​ 下尋找 CloudFront,然後按一下以開啟 Amazon CloudFront 主控台。

(按一下以縮放)


b. 選取 Create Distribution (建立分佈)


 

(按一下以縮放)

Web 分佈會指定組態設定,使 CloudFront 得知要從哪個來源取得內容,以回應使用者的請求。您可使用 Amazon S3 儲存貯體 (儲存資料夾) 和 HTTP 伺服器 (例如 web 伺服器) 做為原始來源。


a. 您要先為自己的內容選擇交付方法。 Web 分佈可用於靜態或動態內容,RTMP 分佈則適合串流媒體檔案 (採用 Adobe Flash Media Server 的 RTMP 通訊協定)。

由於 cloudfront-test-image.png​ 是靜態影像,因此請在 Web 選項下方選取 Get Started (開始使用)

(按一下以縮放)


b. 您現在可以進行閘道設定。 

請在 Origin Domain Name (原始網域名稱)​​ 中,選取 cloudfront-test-image.png​ 所在的 S3 儲存貯體。

在本教學中,其餘組態設定保留預設值即可。 如需進一步了解各項組態設定,請詳閱以下內容。

進一步了解組態設定

預設快取行為設定:

分佈設定:

  • Price Class (價格分級)​ CloudFront 具有三種「價格分級」,取決於您要在全球各地支援的「節點」數量。依預設,CloudFront 會使用所有節點來確保最佳效能。如需詳細資訊,請參閱 Amazon CloudFront 定價
  • AWS WAF Web ACL:如需根據您指定的條件來允許或封鎖 ACL 與 HTTPS 請求,請選擇要與此分佈關聯的 Web ACL。如需詳細資訊,請參閱 AWS WAF 開發人員指南。
  • Alternate Domain Names (替代網域名稱):建立 Web 分佈後,CloudFront 會自動為您指派一個網域名稱 (例如:http://abcdefghi888.cloudfront.net/filename.jpg)。更新 DNS 組態後,也可以在 URL 中為物件指定專屬的網域名稱 (例如:http://yourDomain.com/filename.jpg),以便將 DNS 查詢路由到您的 CloudFront 分佈。在本教學中,此欄位留空即可。
  • SSL Certificate (SSL 憑證):CloudFront 提供預設憑證,而您也可以指定自訂的 SSL 憑證。 
  • Default Root Object (預設根物件):若使用者僅請求分佈的根 URL,您可在此指定 CloudFront 應從來源請求的物件。例如使用者請求 http://www.example.com/ 時,您可指定交付 http://www.example.com/product-description.html。指定預設根物件可避免暴露分佈的內容。
  • Logging (記錄):CludFront 可以記錄物件的每項請求資訊,並將記錄檔案存放於 Amazon S3 儲存貯體。啟用記錄功能不會收取額外費用,但存放與存取檔案會累計一般 Amazon S3 費用。
  • Bucket for Logs (記錄儲存貯體):若指定 Amazon S3 儲存貯體來存放存取記錄,CloudFront 可以記錄物件的每項使用者請求資訊,並將檔案存放於指定的 Amazon S3 儲存貯體。您可以隨時啟用或停用記錄。如需 CloudFront 存取日誌的詳細資訊,請參閱存取日誌
  • Log Prefix (記錄字首):如果對 Logging (記錄) 選擇 On (開啟),則可就此分佈指定字串,由 CloudFront 用來當做存取記錄檔名的字首。如需 CloudFront 存取日誌的詳細資訊,請參閱存取日誌
  • Cookie Logging (Cookie 記錄):做為物件來源的 Amazon S3 不會處理 Cookie,除非您的分佈也包含 Amazon EC2 或其他自訂來源,否則必須針對 Cookie Logging (Cookie 記錄) 的值選取 Off (關閉)。如需有關 cookie 的詳細資訊,請參閱根據 Cookie 設定 CloudFront 為快取物件。
  • Comment (註解):您可輸入任何評論,使其與分佈一併儲存。
  • Distribution Status (分佈狀態):預設為 Enabled (啟用),表示分佈建立完成後,內容隨即可用。

(按一下以縮放)

設定分發後,CloudFront 即會在整個 CloudFront 網路上建立並散佈分發,以供您使用。  選取 Create Distribution (建立分佈)。 

當流程完成時,分佈的狀態會從 In Progress (進行中)​ 變更為 Deployed (已部署)

​注意:這可能需要幾分鐘的時間。

CloudFront 指派到您的分佈的網域名稱,將顯示在分佈清單中。請牢記在心,以便下一個步驟使用。 按一下 Distribution ID (分佈 ID) 欄位可前往相關頁面,並在 Domain Name (網域名稱) 下方查看完整的 CloudFront 網域。

(按一下以縮放)

建立 Web 分發後,您可確認 CloudFront 從來源取得物件並將其回傳至 Web 瀏覽器,以針對該分發進行測試。 本測試需要使用「步驟 4」的 CloudFront 網域名稱,以及在「步驟 1」上傳到 S3 儲存貯體的影像名稱。


a.請在電腦上開啟文字編輯器,然後複製並貼上以下 HTML 程式碼:

<html>

<head>My CloudFront Test</head>

<body>

<p>My text content goes here.</p>

<p><img src="http://domain name/object name" alt="my test image">

</body>

</html>

  • domain name 取代為 CloudFront 指派給您的網域名稱,例如 d111111abcdef8.cloudfront.net
  • object name 取代為 Amazon S3 儲存貯體中的映像檔名稱 – 在此為 cloudfront-test-image.png.
  • 將文字存檔為 mycloudfronttest.html

b.在瀏覽器中開啟您的 Web 頁面,確保您可以查看內容。 

(按一下以縮放)

您可以從 CloudFront 主控台輕易刪除分佈。 事實上,對於不再使用的分佈,最佳實務就是予以停用,如此就不必繼續付費。但請注意,分佈一旦停用,其所支援的網站會停止運作,最終使用者也無法再存取內容。


a. 選取您所建立分佈旁的核取方塊,然後按一下 Disable (停用)

(按一下以縮放)


b.系統會請您確認 - 請按一下 Yes, Disable (是,停用)

(按一下以縮放)

您的第一個 Amazon CloudFront Web 分佈已建立完成,並且透過 Amazon S3 交付一份雲端託管的靜態內容。藉由數項組態變更,您可透過 HTTP 或 HTTPS 使用 CloudFront 來即時交付動態內容,以及諸如約會、會議或演唱會等即時事件.使用 Amazon Cloudfront 來加速整個網站或應用程式的交付,包括動態、靜態、串流和互動內容。

現在,您已經學會如何設定 Web 分發並透過 Amazon CloudFront 交付一部分靜態內容,您可以在即將到來的服務時間或即將召開的 AWS 技術會議期間,請教我們的 CloudFront 專家。

Amazon CloudFront 入門頁面 >>