使用 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,然後按兩下開啟儀表板。

tmt_faster-content-delivery-01

(按一下以縮放)

tmt_faster-content-delivery-01

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 (建立儲存貯體)

tmt_faster-content-delivery-02

(按一下以縮放)

tmt_faster-content-delivery-02

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

選取 Next (下一步)

tmt_faster-content-delivery-03

(按一下以縮放)

tmt_faster-content-delivery-03

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

選取 Next (下一步)

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

選取 Next (下一步)

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

選取 Upload (上傳)

tmt_faster-content-delivery-04

(按一下以縮放)

tmt_faster-content-delivery-04

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


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

tmt_faster-content-delivery-06

(按一下以縮放)

tmt_faster-content-delivery-06

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


 

tmt_faster-content-delivery-07

(按一下以縮放)

tmt_faster-content-delivery-07

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


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

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

tmt_faster-content-delivery-08

(按一下以縮放)

tmt_faster-content-delivery-08

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 存取日誌的詳細資訊,請參閱 Access Logs
  • Log Prefix (記錄字首):如果對 Logging (記錄) 選擇 On (開啟),則可就此分佈指定字串,由 CloudFront 用來當做存取記錄檔名的字首。如需 CloudFront 存取日誌的詳細資訊,請參閱 Access Logs
  • Cookie Logging (Cookie 記錄):做為物件來源的 Amazon S3 不會處理 Cookie,除非您的分佈也包含 Amazon EC2 或其他自訂來源,否則必須針對 Cookie Logging (Cookie 記錄) 的值選取 Off (關閉)。如需有關 cookie 的詳細資訊,請參閱 Configuring CloudFront to Cache Objects Based on Cookies
  • Comment (註解):您可輸入任何評論,使其與分佈一併儲存。
  • Distribution Status (分佈狀態):預設為 Enabled (啟用),表示分佈建立完成後,內容隨即可用。
tmt_faster-content-delivery-09

(按一下以縮放)

tmt_faster-content-delivery-09

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

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

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

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

tmt_faster-content-delivery-10

(按一下以縮放)

tmt_faster-content-delivery-10

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


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

</html>

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

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

cloudfront-16

(按一下以縮放)

cloudfront-16

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


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

tmt_faster-content-delivery-11

(按一下以縮放)

tmt_faster-content-delivery-11

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

tmt_faster-content-delivery-12

(按一下以縮放)

tmt_faster-content-delivery-12

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

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

Amazon CloudFront 入門頁面 >>