使用 Amazon CloudFront 分發服務靜態網站 - Amazon Route 53

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

使用 Amazon CloudFront 分發服務靜態網站

此入門教學課程說明如何執行以下任務:

  • 註冊網域名稱,例如 example.com。

  • 為您的網域建立憑證。

  • 建立兩個 Amazon S3 儲存貯體,並設定一個儲存貯體用於託管網站,另一個用於重新引導至子網域。

  • 建立範例網站,並將檔案儲存在 S3 儲存貯體

  • 為兩個 S3 儲存貯體建立 CloudFront 分發。

  • 設定 Amazon 路線 53 以將流量路由到 CloudFront 分發。

完成後,您將能夠開啟瀏覽器,輸入網域名稱,並安全地檢視您的網站。

必要條件

開始之前,請務必先完成 設定 Amazon Route 53 中的步驟。

步驟 1:註冊網域

若要使用網域名稱 (例如 example.com),您必須找到一個未被使用的網域名稱並註冊該網域。當您註冊網域名稱,即表示您要保留它以供您在網際網路上的任何位置獨佔使用,通常為期一年。依預設,我們會在每年年底自動續約網域名稱,但您可以關閉自動續約。如需詳細資訊,請參閱 註冊新網域

步驟 2:請求公有憑證

Amazon CloudFront 分發需要公有憑證才能進行設定,以 CloudFront 要求檢視者使用 HTTPS,以便在與檢視者 CloudFront 通訊時加密連線。

要求 AWS Certificate Manager(ACM) 公用憑證 (主控台)
  1. 登入 AWS 管理主控台,然後開啟 ACM 主控台,網址為 https://console.aws.amazon.com/acm/home

    注意

    確定您是在美國東部 (維吉尼亞北部) 區域建立憑證。這是 Amazon 所必需的 CloudFront。

    在左側導覽區中選擇請求憑證,然後在請求憑證頁面上依次選擇請求公有憑證下一步

  2. 網域名稱區段中,輸入 example.com 之類的網域。

    選擇將其他名稱新增至此憑證,在網域名稱前輸入星號,以請求所有子網域的萬用字元憑證,例如 *.example.com

  3. 驗證方法區段中,選擇 DNS 驗證

  4. 金鑰演算法區段中,選擇 RSA 2048

  5. 新增標籤區段中,您可以選擇標記憑證。標籤是索引鍵值配對,可做為識別和組織 AWS 資源的中繼資料。

    選擇請求以進入憑證頁面。

  6. 當新憑證的狀態顯示為擱置中時,請選擇憑證 ID,然後在憑證詳細資訊頁面上選擇在 Route 53 中建立記錄,以自動新增網域的 CNAME 記錄,然後選擇建立記錄

    所以此 Certificate status(憑證狀態)頁面應該開啟並顯示狀態橫幅報告 Successfully created DNS records(成功建立 DNS 記錄)

    您的新憑證可能會繼續顯示 Pending validation(待定驗證)狀態最多 30 分鐘。

步驟 3:建立 S3 儲存貯體以託管您的子網域

為 www 創建一個 S3 存儲桶。 your-domain-name

Amazon S3 可讓您從網際網路上的任何位置儲存和擷取您的資料。在此步驟中,您將建立一個 S3 儲存貯體來儲存網站的所有檔案。

  1. 前往 https://console.aws.amazon.com/s3/ 開啟 Amazon S3 主控台。

  2. 選擇建立儲存貯體

  3. 輸入下列值:

    儲存貯體名稱

    輸入萬維網。 your-domain-name。例如,如已註冊網域名稱 example.com,請輸入 www.example.com

    區域

    為您的儲存貯體選擇一個區域。

  4. 若要接受預設設定並建立儲存貯體,請選擇 Create bucket (建立儲存貯體)

    如需 S3 儲存貯體設定的詳細資訊,請參閱 Amazon S3 使用者指南中的檢視儲存貯體屬性

步驟 4:為您的根網域建立另一個 S3 儲存貯體

如果您還希望您的用戶能夠使用根域,請. your-domain-name(例如 example.com) 若要存取您的範例網站,請建立第二個 S3 儲存貯體。在本教學課程中,您需設定第二個儲存貯體 (根網域),以將流量路由到第一個儲存貯體。

若要為其建立 S3 儲存貯體 your-domain-name
  1. 前往 https://console.aws.amazon.com/s3/ 開啟 Amazon S3 主控台。

  2. 選擇建立儲存貯體

  3. 輸入下列值:

    儲存貯體名稱

    輸入 your-domain-name。例如,如已註冊網域名稱 example.com,請輸入 example.com

    區域

    選擇建立第一個儲存貯體的區域。

  4. 若要接受預設設定並建立儲存貯體,請選擇 Create bucket (建立儲存貯體)

步驟 5:將網站檔案上傳到您的子網域儲存貯體

現在您有了一個 S3 儲存貯體,可以上傳您的網站檔案。在本教學課程中,您只需上傳一個在頁面上顯示文字的簡單 index.html 檔案。

若要為網站託管啟用 S3 儲存貯體
  1. 前往 https://console.aws.amazon.com/s3/ 開啟的 Amazon Simple Storage Service (Amazon S3) 主控台。

  2. Buckets (儲存貯體) 清單中,選擇您要上傳網站檔案的目標儲存貯體名稱,例如 www.example.com

  3. 複製建立一個簡單的單頁網頁的示例文字,將其貼到文字編輯器中,並將其儲存為 index.html:

    <html> <head> <title>Amazon Route 53 Getting Started</title> </head> <body> <h1>Routing Internet traffic to Cloudfront distributions for your website stored in an S3 bucket</h1> <p>For more information, see <a href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/getting-started.html">Getting Started with Amazon Route 53</a> in the <emphasis>Amazon Route 53 Developer Guide</emphasis>.</p> </body> </html>
  4. Objects (物件) 標籤上,選擇 Upload (上傳)

  5. Files and folders (檔案和資料夾) 下方,選擇 Add files (新增檔案) 並上傳您的網站檔案。在本教學課程中,上傳您在此程序步驟 3 中儲存的 index.html 檔案。

步驟 6:設定用於網站重新引導的根網域儲存貯體

設定用於網站託管的根網域儲存貯體之後,您可以選擇設定根網域儲存貯體,以將所有請求重新引導至子網域。例如,您可以設定 example.com 的所有要求以重新引導至 www.example.com

若要設定重新引導
  1. 在 Amazon S3 主控台中,於 Buckets (儲存貯體) 清單中選擇子網域儲存貯體 (例如 example.com)。

  2. 選擇 Properties (屬性)。

  3. Static website hosting (靜態網站託管) 下,選擇 Edit (編輯)

  4. Static website hosting (靜態網站託管) 下,選擇 Enable (啟用)

  5. 選擇 Redirect requests for an object (重新引導物件請求)

  6. Host name (主機名稱) 方塊中,輸入您的子網域,例如 www.example.com

  7. 請在 Protocol (通訊協定) 中選擇 HTTPS

  8. 選擇儲存變更

  9. Static website hosting 下,請記下 Endpoint (端點)

    Endpoint (端點) 是儲存貯體的 Amazon S3 網站端點。您將使用此端點來設定 Amazon CloudFront 分發。

步驟 7:為您的子域創建 Amazon CloudFront 分發

在此步驟中,您會為您的子網域 (例如 www.example.com) 建立 CloudFront分發,讓您的網站能夠使用 HTTPS,讓人們可以安全地檢視網站。

建立 CloudFront 分佈
  1. 在開啟 CloudFront 主控台https://console.aws.amazon.com/cloudfront/v4/home

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

  3. 來源下,對於來源網域,選擇您先前建立的 Amazon S3 儲存貯體。格式看起來類似於www.example.com.s3.<Region>.amazonaws.com

    對於原始存取,選取舊版存取身分。對於 Origin access identity (原始存取身分),您可以從清單選擇,或選擇 Create new OAI (建立新的 OAI) (兩者都可以發揮作用)。

    對於 Bucket policy (儲存貯體政策),選擇 Yes, update the bucket policy (是,更新儲存貯體政策)。

  4. 對於 Default Cache Behavior Settings (預設快取行為設定) 下的設定,在 Viewer (檢視器) 下將 Viewer protocol policy (檢視器通訊協定政策) 設定為 Redirect HTTP to HTTPS (重新導向 HTTP 到 HTTPS),並接受其餘的預設值。

    如需快取行為選項的詳細資訊,請參閱 Amazon CloudFront 開發人員指南中的快取行為設定

  5. Web 應用程式防火牆 (WAF) 區段中,您可以選擇啟用或停用 AWS WAF 安全保護。

  6. 對於 Settings (設定) 下的欄位,執行下列動作:

    • Alternate domain name (CNAME) - optional (備用網域名稱 (CNAME) - 選y用) 選擇 Add item (新增項目),然後輸入您的子網域,例如 www.example.com

    • 對於 Custom SSL Certificate (自訂 SSL 憑證),選擇您先前建立的憑證。

    • Default root object (預設根物件) 文字方塊中,輸入 index.html

    • 接受剩餘欄位的預設值,然後選擇建立分佈

      如需分佈選項的詳細資訊,請參閱分佈設定

  7. CloudFront 建立發行版之後,發佈的 [狀態] 欄的值會從 [進行中] 變更為 [已部署]。通常這需要幾分鐘的時間。

    記錄指 CloudFront 派給您的發行版的網域名稱,該網域名稱會出現在發行版清單中。您可以使用此網域名稱來測試分佈。

步驟 8:為您的根網域建立 Amazon CloudFront 分發

在此步驟中,您可以為根網域建立一個 CloudFront 分發,以便在其 URL 重新導向至子網域時使用 HTTPS。

建立 CloudFront 分佈
  1. 在開啟 CloudFront 主控台https://console.aws.amazon.com/cloudfront/v4/home

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

  3. Origin Settings (原始設定) 下方,對於 Origin Domain Name (原始網域名稱),請輸入儲存貯體網站端點。對於您先前建立的 Amazon S3 儲存貯體,您從 Properties (屬性)Static website hosting (靜態網站託管) 部分取得此資訊。

    對於其餘的欄位,請接受預設值。

  4. Web 應用程式防火牆 (WAF) 區段中,您可以選擇啟用或停用 AWS WAF 安全保護。

  5. 對於 [快取金鑰和來源要求] 下的欄位,請選擇 [快取原則和原始要求原則] (建議選項),然後在 [快取政策] 下拉式清單中選 CachingDisabled

    對於其餘的欄位,請接受預設值。

    如需快取行為選項的詳細資訊,請參閱 Amazon CloudFront 開發人員指南中的快取行為設定

  6. 對於 Settings (設定) 下的欄位,執行下列動作:

    • Alternate domain name (CNAME) - optional (備用網域名稱 (CNAME) - 選用) 選擇 Add item (新增項目),然後輸入您的根網域,例如 example.com

    • 對於 Custom SSL Certificate (自訂 SSL 憑證),選擇您先前建立的憑證。

    • 對於其餘的欄位,請接受預設值。

    如需分佈選項的詳細資訊,請參閱分佈設定

  7. 在頁面底部,選擇 Create Distribution (建立分佈)。

  8. CloudFront 建立發行版之後,發佈的 [狀態] 欄的值會從 [進行中] 變更為 [已部署]。通常這需要幾分鐘的時間。

    記錄指 CloudFront 派給您的發行版的網域名稱,該網域名稱會出現在發行版清單中。您可以使用此網域名稱來測試分佈

步驟 9:將您網域的 DNS 流量路由到您的CloudFront 分發

您現在在 S3 儲存貯體中有一個使用 CloudFront 分發的單頁網站。若要開始將您網域的網際網路流量路由至 CloudFront 發佈,請執行下列程序。

如需將流量路由至 CloudFront 分發的詳細資訊,請參閱使用您的網域名稱將流量路由到 Amazon CloudFront 分發

若要將流量路由到您的網站
  1. 請在 https://console.aws.amazon.com/route53/ 開啟 Route 53 主控台。

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

    注意

    當您註冊網域時,Amazon Route 53 自動建立同名的託管區域。託管區域包含有關您希望 Route 53 如何路由網域流量的資訊。

  3. 在託管區域清單,請選擇您的網域名稱。

  4. 選擇 Create record (建立記錄)

    如果您位於 Quick create record (快速建立記錄) 檢視,選擇 Switch to wizard (切換至精靈)

    注意

    每個記錄包含有關您希望如何路由某個網域 (如 example.com) 或子網域 (例如 www.example.com 或 test.example.com) 流量的資訊。記錄儲存在網域的託管區域中。

  5. 選擇 Simple routing (簡易路由),然後選擇 Next (下一步)

  6. 選擇 Define simple record (定義簡易記錄)

  7. Record name (記錄名稱) 中,在預設值的前方輸入 www,這是您的託管區域與網域的名稱。

  8. 在 [記錄類型] 中,選擇 [A]-將流量路由至 IPv4 位址和某些 AWS 資源

  9. 在流量值/路由到中,選擇要分配的別名。 CloudFront

  10. 選擇分佈。

    分佈名稱應與 Distributions (分佈) 清單的 Domain name (網域名稱) 方塊中出現的名稱相符,例如 dddjjjkkk.cloudfront.net

  11. Evaluate target health (評估目標運作狀態) 中,選擇 No (否)

  12. 選擇 Define simple record (定義簡易記錄)

新增根網域 (example.com) 的別名記錄

同時新增根網域的別名記錄,以便它指向將流量重新引導到 www.example.com 的 S3 儲存貯體。如需將流量路由至 CloudFront 分發的詳細資訊,請參閱使用您的網域名稱將流量路由到 Amazon CloudFront 分發

  1. 在導覽窗格中,選擇 Hosted zones (託管區域)

  2. 在託管區域清單,請選擇您的網域名稱。

  3. 選擇 Create record (建立記錄)

    如果您位於 Quick create record (快速建立記錄) 檢視,選擇 Switch to wizard (切換至精靈)

    注意

    每個記錄包含有關您希望如何路由某個網域 (如 example.com) 或子網域 (例如 www.example.com 或 test.example.com) 流量的資訊。記錄儲存在網域的託管區域中。

  4. 選擇 Simple routing (簡易路由),然後選擇 Next (下一步)

  5. 選擇 Define simple record (定義簡易記錄)

  6. Record name (記錄名稱) 中,接受預設值。

  7. 在 [記錄類型] 中,選擇 [A]-將流量路由至 IPv4 位址和某些 AWS 資源

  8. 在流量值/路由到中,選擇要分配的別名。CloudFront

  9. 選擇分佈。

    分佈名稱應與 Distributions (分佈) 清單的 Domain name (網域名稱) 方塊中出現的名稱相符,例如 dddjjjkkk.cloudfront.net

  10. Evaluate target health (評估目標運作狀態) 中,選擇 No (否)

  11. 選擇 Define simple record (定義簡易記錄)

  12. Configure records (設定記錄) 頁面上,選擇 Create records (建立記錄)。

步驟 10:測試您的網站

若要確認網站正常運作,請開啟 Web 瀏覽器並瀏覽到下列 URL:

  • https://www. your-domain-name例如 www.example.com — 在 www 中顯示索引文件。 your-domain-name

  • 例如,example.com-將您的請求重定向到萬維網。your-domain-name your-domain-name

在某些情況下,您可能需要清除快取,才能看到預期的行為。

如需路由網際網路流量的進階資訊,請參閱將 Amazon Route 53 設定為 DNS 服務。如需將網際網路流量路由至 AWS 資源的相關資訊,請參閱將互聯網流量路由到您的 AWS 資源