搭配 CloudFront 分佈使用各種原始伺服器 - Amazon CloudFront

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

搭配 CloudFront 分佈使用各種原始伺服器

建立分佈後,您必須指定 CloudFront 為檔案傳送請求的原始伺服器。CloudFront 可以與多種不同類型的原始伺服器搭配使用,例如,您可以使用 Amazon S3 儲存貯體、MediaStore 容器、MediaPackage 頻道、Application Load Balancer 或 AWS Lambda 函數 URL。

如果您在私有子網路中有 Application Load Balancer、Network Load Balancer 或 EC2 執行個體,則可以將其用作 VPC 原始伺服器。使用 VPC 原始伺服器時,您的應用程式只能在具有 CloudFront 分佈的私有子網路中存取,以防止您的應用程式在公有網際網路上存取。如需詳細資訊,請參閱使用 VPC 原始伺服器限制存取

注意

您可以使用邊緣函數,為每個請求動態選取適當的原始伺服器。透過使用 CloudFront Functions 或 Lambda@Edge,您可以根據檢視器的地理位置、請求標頭或查詢字串參數等因素,將請求路由到不同的原始伺服器。如需詳細資訊,請參閱使用 函數在邊緣自訂

使用 Amazon S3 儲存貯體

下列主題介紹了多種方法,可協助您將 Amazon S3 儲存貯體用做 CloudFront 分佈的原始伺服器。

使用標準 Amazon S3 儲存貯體

使用 Amazon S3 做為分佈的原始伺服器時,可以將想讓 CloudFront 傳送的物件放置在 Amazon S3 儲存貯體中。您可以使用 Amazon S3 支援的任何方法將物件放入 Amazon S3,例如 Amazon S3 主控台或 API,也可使用第三方工具。如同使用其他標準 Amazon S3 儲存貯體一樣,您可以在儲存貯體中建立階層結構以存放物件。

使用現有 Amazon S3 儲存貯體做為您的 CloudFront 原始伺服器,不會以任何方式變更儲存貯體;您可以繼續像平常一樣按標準 Amazon S3 價格使用它來存放和存取 Amazon S3 物件。您需要定期支付 Amazon S3 費用才能將物件存放在儲存貯體中。如需 CloudFront 服務使用費的詳細資訊,請參閱 Amazon CloudFront 定價。如需進一步瞭解如何將 CloudFront 與現有 S3 儲存貯體搭配使用,請參閱將 CloudFront 新增至現有的 Amazon S3 儲存貯體

重要

為了讓您的儲存貯體使用 CloudFront,該名稱必須符合 DNS 命名請求。如需詳細資訊,請參閱 Amazon Simple Storage Service 使用者指南中的儲存貯體命名規則

將 Amazon S3 儲存貯體指定為 CloudFront 的原始伺服器時,建議使用以下格式:

bucket-name.s3.region.amazonaws.com

當您以此格式指定儲存貯體名稱,可以使用以下 CloudFront 功能:

請勿使用以下格式指定儲存貯體:

  • Amazon S3 路徑樣式:s3.amazonaws.com/bucket-name

  • Amazon S3 CNAME

使用 Amazon S3 Object Lambda

在您建立 Object Lambda 存取點時,Amazon S3 會自動為您的 Object Lambda 存取點產生唯一的別名。您可以使用此別名,而非 Amazon S3 儲存貯體名稱作為 CloudFront 發佈的原始伺服器。

在您將 Object Lambda 存取點別名用作 CloudFront 的原始伺服器時,建議使用以下格式:

alias.s3.region.amazonaws.com

如需有關尋找 alias 的詳細資訊,請參閱《Amazon S3 使用者指南》中的如何為您的 S3 儲存貯體 Object Lambda 存取點使用儲存貯體式別名

重要

在您使用 Object Lambda 存取點做為 CloudFront 的原始伺服器時,您必須使用原始伺服器存取控制

如需範例使用案例,請參閱將 Amazon S3 Object Lambda 與 Amazon CloudFront 搭配使用,以為最終使用者量身打造內容

CloudFront 會將 Object Lambda 存取點原始伺服器視為與標準 Amazon S3 儲存貯體原始伺服器相同。

如果您使用 Amazon S3 Object Lambda 作為分發的原始伺服器,則必須設定以下四個許可。

Object Lambda Access Point
新增 Object Lambda 存取點的許可
  1. 登入 AWS Management Console ,並在 https://console.aws.amazon.com/s3/:// 開啟 Amazon S3 主控台。

  2. 在導覽窗格中,選擇 物件 Lambda 存取點

  3. 選擇您要使用的 Object Lambda 存取點。

  4. 選擇許可索引標籤標籤。

  5. 物件 Lambda 存取點政策 部分中選擇 編輯

  6. 將以下政策貼入 政策 欄位。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "cloudfront.amazonaws.com" }, "Action": "s3-object-lambda:Get*", "Resource": "arn:aws:s3-object-lambda:region:AWS-account-ID:accesspoint/Object-Lambda-Access-Point-name", "Condition": { "StringEquals": { "aws:SourceArn": "arn:aws:cloudfront::AWS-account-ID:distribution/CloudFront-distribution-ID" } } } ] }
  7. 選擇儲存變更

Amazon S3 Access Point
新增 Amazon S3 存取點的許可
  1. 登入 AWS Management Console ,並在 https://console.aws.amazon.com/s3/:// 開啟 Amazon S3 主控台。

  2. 在導覽窗格中,選擇 存取點

  3. 選擇您要使用的 Amazon S3 存取點。

  4. 選擇許可索引標籤標籤。

  5. 存取點政策 部分中選擇 編輯

  6. 將以下政策貼入 政策 欄位。

    { "Version": "2012-10-17", "Id": "default", "Statement": [ { "Sid": "s3objlambda", "Effect": "Allow", "Principal": { "Service": "cloudfront.amazonaws.com" }, "Action": "s3:*", "Resource": [ "arn:aws:s3:region:AWS-account-ID:accesspoint/Access-Point-name", "arn:aws:s3:region:AWS-account-ID:accesspoint/Access-Point-name/object/*" ], "Condition": { "ForAnyValue:StringEquals": { "aws:CalledVia": "s3-object-lambda.amazonaws.com" } } } ] }
  7. 選擇儲存

Amazon S3 bucket
將許可新增至 Amazon S3 儲存貯體
  1. 登入 AWS Management Console ,並在 https://console.aws.amazon.com/s3/:// 開啟 Amazon S3 主控台。

  2. 在導覽窗格中,選擇 儲存貯體

  3. 選擇您要使用的 Amazon S3 儲存貯體。

  4. 選擇許可索引標籤標籤。

  5. 儲存貯體政策 區段中,選擇 編輯

  6. 將以下政策貼入 政策 欄位。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": "*", "Resource": [ "arn:aws:s3:::bucket-name", "arn:aws:s3:::bucket-name/*" ], "Condition": { "StringEquals": { "s3:DataAccessPointAccount": "AWS-account-ID" } } } ] }
  7. 選擇儲存變更

AWS Lambda function
將許可新增至 Lambda 函數
  1. 登入 AWS Management Console ,並在 https://https://console.aws.amazon.com/lambda/ 開啟 AWS Lambda 主控台。

  2. 在導覽視窗中,選擇函數

  3. 選擇您要使用的 AWS Lambda 函數。

  4. 依序選擇 組態 索引標籤和 許可

  5. 基於資源的政策聲明 區段中選擇 新增許可

  6. 選擇 AWS 帳戶

  7. 輸入 聲明 ID 的名稱。

  8. 主體 輸入 cloudfront.amazonaws.com

  9. 動作 下拉式選單中選擇 lambda:InvokeFunction

  10. 選擇儲存

使用 Amazon S3 存取點

當您使用 S3 存取點時,Amazon S3 會自動為您產生唯一的別名。您可以使用此別名,而非 Amazon S3 儲存貯體名稱作為 CloudFront 發佈的原始伺服器。

當您使用 Amazon S3 存取點別名做為 CloudFront 的原始伺服器時,建議您使用下列格式:

alias.s3.region.amazonaws.com

如需尋找 的詳細資訊alias,請參閱《Amazon S3 使用者指南》中的為 S3 儲存貯體存取點使用儲存貯體樣式別名Amazon S3

重要

當您使用 Amazon S3 存取點做為 CloudFront 的原始伺服器時,您必須使用原始存取控制

CloudFront 會將 Amazon S3 存取點原始伺服器視為與標準 Amazon S3 儲存貯體原始伺服器相同。

如果您使用 Amazon S3 Object Lambda 作為分發的原始伺服器,則必須設定以下兩個許可。

Amazon S3 Access Point
新增 Amazon S3 存取點的許可
  1. 登入 AWS Management Console ,並在 https://console.aws.amazon.com/s3/:// 開啟 Amazon S3 主控台。

  2. 在導覽窗格中,選擇 存取點

  3. 選擇您要使用的 Amazon S3 存取點。

  4. 選擇許可索引標籤標籤。

  5. 存取點政策 部分中選擇 編輯

  6. 將以下政策貼入 政策 欄位。

    { "Version": "2012-10-17", "Id": "default", "Statement": [ { "Sid": "s3objlambda", "Effect": "Allow", "Principal": {"Service": "cloudfront.amazonaws.com"}, "Action": "s3:*", "Resource": [ "arn:aws:s3:region:AWS-account-ID:accesspoint/Access-Point-name", "arn:aws:s3:region:AWS-account-ID:accesspoint/Access-Point-name/object/*" ], "Condition": { "StringEquals": {"aws:SourceArn": "arn:aws:cloudfront::AWS-account-ID:distribution/CloudFront-distribution-ID"} } } ] }
  7. 選擇儲存

Amazon S3 bucket
將許可新增至 Amazon S3 儲存貯體
  1. 登入 AWS Management Console ,並在 https://console.aws.amazon.com/s3/:// 開啟 Amazon S3 主控台。

  2. 在導覽窗格中,選擇 儲存貯體

  3. 選擇您要使用的 Amazon S3 儲存貯體。

  4. 選擇許可索引標籤標籤。

  5. 儲存貯體政策 區段中,選擇 編輯

  6. 將以下政策貼入 政策 欄位。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": "*", "Resource": [ "arn:aws:s3:::bucket-name", "arn:aws:s3:::bucket-name/*" ], "Condition": { "StringEquals": { "s3:DataAccessPointAccount": "AWS-account-ID" } } } ] }
  7. 選擇儲存變更

使用設定為網站端點的 Amazon S3 儲存貯體

您可以將設定為網站端點的 Amazon S3 儲存貯體當做自訂原始伺服器,與 CloudFront 搭配使用。當您配置 CloudFront 分佈時,在原始伺服器中為您的儲存貯體輸入 Amazon S3 靜態網站託管端點。這個值會顯示在 Amazon S3 主控台 Properties (屬性) 索引標籤中的 Static website hosting (靜態網站託管) 窗格裡。例如:

http://bucket-name.s3-website-region.amazonaws.com

如需指定 Amazon S3 靜態網站端點的詳細資訊,請參閱 Amazon Simple Storage Service 使用者指南中的網站端點

當您以此格式指定儲存貯體名稱做為您的原始伺服器時,可以使用 Amazon S3 重新引導和 Amazon S3 自訂錯誤文件。如需詳細資訊,請參閱 Amazon Simple Storage Service 使用者指南中的設定自訂錯誤文件設定重新引導部分。(CloudFront 還提供自訂錯誤頁面。如需詳細資訊,請參閱針對特定 HTTP 狀態碼建立自訂錯誤頁面。)

使用 Amazon S3 儲存貯體做為 CloudFront 的原始伺服器,不會導致儲存貯體出現任何變動。您可以如一般情況般繼續使用,且需支付一般 Amazon S3 費用。如需 CloudFront 服務使用費的詳細資訊,請參閱 Amazon CloudFront 定價

注意

如果您使用 CloudFront API 來透過已設為網站端點的 Amazon S3 儲存貯體建立分發,您必須使用 CustomOriginConfig 來配置,雖然網站託管於 Amazon S3 儲存貯體。如需使用 CloudFront API 建立分佈的詳細資訊,請參閱 Amazon CloudFront API 參考中的 CreateDistribution

將 CloudFront 新增至現有的 Amazon S3 儲存貯體

如果您將物件存放於 Amazon S3 儲存貯體,您可以讓使用者直接從 S3 取得您的物件,或配置 CloudFront 從 S3 取得物件,然後將它們分配給使用者。如果您的使用者經常存取您的物件,則使用 CloudFront 更具成本效益,因為在較高用量,CloudFront 資料傳輸的價格低於 Amazon S3 資料傳輸的價格。此外,使用 CloudFront 下載的速度比單獨使用 Amazon S3 要快,因為物件存放在較靠近使用者的位置。

注意

如果您希望 CloudFront 尊重 Amazon S3 跨原始伺服器資源共享配置,請配置 CloudFront 將 Origin 標頭轉送到 Amazon S3。如需詳細資訊,請參閱根據請求標頭快取內容

如果您目前使用自己的網域名稱 (例如 example.com) 直接從 Amazon S3 儲存貯體分發內容,而不是 Amazon S3 儲存貯體的網域名稱 (例如 amzn-s3-demo-bucket.s3.us-west-2.amazonaws.com),您可以使用下列程序新增 CloudFront,而不會中斷。

在您已經從 Amazon S3 分佈內容時新增 CloudFront
  1. 建立 CloudFront 分佈。如需詳細資訊,請參閱建立分發

    當您建立分佈時,請指定 Amazon S3 儲存貯體的名稱做為原始伺服器。

    重要

    為了讓您的儲存貯體使用 CloudFront,該名稱必須符合 DNS 命名請求。如需詳細資訊,請參閱 Amazon Simple Storage Service 使用者指南中的儲存貯體命名規則

    如果您將 Amazon S3 與 CNAME 搭配使用,也請為您的分佈指定 CNAME。

  2. 建立一個在 Amazon S3 儲存貯體中包含公開可讀取物件的連結之測試 Web 頁面,並測試該連結。針對此初始測試,請使用物件 URL 中分佈的 CloudFront 網域名稱,例如 https://d111111abcdef8.cloudfront.net/images/image.jpg

    如需 CloudFront URL 格式的詳細資訊,請參閱 自訂 CloudFront 中檔案的 URL 格式

  3. 如果您使用的是 Amazon S3 CNAMEs您的應用程式會使用網域名稱 (例如 example.com) 來參考 Amazon S3 儲存貯體中的物件,而不是使用儲存貯體的名稱 (例如 amzn-s3-demo-bucket.s3.amazonaws.com)。若要繼續使用您的網域名稱來參考物件,而不是使用分佈的 CloudFront 網域名稱 (例如 d111111abcdef8.cloudfront.net),您需要透過 DNS 服務供應商來更新設定。

    針對使用 Amazon S3 CNAME,您的 DNS 服務供應商必須有網域的 CNAME 資源紀錄集,該記錄目前將網域查詢路由到您的 Amazon S3 儲存貯體。例如,如果使用者請求該物件:

    https://example.com/images/image.jpg

    該請求會自動重新路由,且使用者看到此物件:

    https://amzn-s3-demo-bucket.s3.amazonaws.com/images/image.jpg

    若要路由查詢到 CloudFront 分佈,而非 Amazon S3 儲存貯體,您需要使用 DNS 服務供應商提供的方法來更新網域的 CNAME 資源紀錄集。這項經過更新的 CNAME 記錄會將 DNS 查詢從您的網域重新引導到您的分佈的 CloudFront 網域名稱。如需詳細資訊,請參閱 DNS 服務供應商提供的說明文件。

    注意

    如果您使用 Route 53 做為 DNS 服務,您可以使用 CNAME 資源紀錄集或別名資源紀錄集。如需編輯資源紀錄集的詳細資訊,請參閱編輯記錄。如需別名資源紀錄集的詳細資訊,請參閱選擇別名或非別名記錄。這兩個主題都在 Amazon Route 53 開發人員指南中。

    如需搭配 CloudFront 使用 CNAME 的詳細資訊,請參閱 透過新增備用網域名稱 (CNAMEs來使用自訂 URLs

    在您更新 CNAME 資源紀錄集後,傳播變更到整個 DNS 系統需要 72 小時,但通常更快。這段期間內,會持續將一些內容的請求路由到 Amazon S3 儲存貯體,並將其他的內容路由到 CloudFront。

將 Amazon S3 儲存貯體移至不同的 AWS 區域

如果您使用 Amazon S3 做為 CloudFront 分佈的原始伺服器,並將儲存貯體移至不同的 AWS 區域,則當下列兩者都成立時,CloudFront 最多可能需要一小時的時間來更新其記錄以使用新區域:

  • 您使用 CloudFront 原始存取身分 (OAI) 限制對儲存貯體的存取。

  • 您將儲存貯體移至需要簽章版本 4 進行身分驗證的 Amazon S3 區域。

當您使用 OAI 時,CloudFront 使用區域 (其他值中),以計算用來從儲存貯體請求物件的簽章。如需 OAI 的詳細資訊,請參閱使用原始存取身分 (舊版,不建議)。如需支援 Signature 第 2 版 AWS 區域 的清單,請參閱 中的 Signature 第 2 版簽署程序Amazon Web Services 一般參考

若要強制執行更快速的 CloudFront 記錄更新,您可以更新 CloudFront 分佈,例如更新 CloudFront 主控台中 General (一般) 索引標籤裡的 Description (描述) 欄位;您更新分佈後,CloudFront 便會立即檢查儲存貯體所在的區域。將變更傳播到所有節點只需幾分鐘即可完成。

使用 MediaStore 容器或 MediaPackage 頻道

若要使用 CloudFront 串流視訊,您可以設定已配置為 MediaStore 容器的 Amazon S3 儲存貯體,或使用 MediaPackage 建立頻道和端點。然後,您可在 CloudFront 中建立及配置分佈來串流視訊。

如需詳細資訊和逐步說明,請參閱以下主題:

使用 Application Load Balancer

您可以使用 CloudFront 將流量路由到內部和面向網際網路的 Application Load Balancer。

如果您的原始伺服器是託管在一或多個 Amazon EC2 執行個體上的一或多個 HTTP(S) 伺服器 (Web 伺服器),您可以選擇使用面向網際網路的 Application Load Balancer 將流量分配到執行個體。面向網際網路的負載平衡器具有可公開解析的 DNS 名稱,並透過網際網路將請求從用戶端路由到目標。

如需使用面向網際網路的 Application Load Balancer 作為 CloudFront 原始伺服器的詳細資訊,包括如何確保檢視器只能透過 CloudFront 存取 Web 伺服器,而不是直接存取負載平衡器,請參閱 限制對 Application Load Balancer 的存取

或者,您可以使用 VPC 原始伺服器,從虛擬私有雲端 (VPC) 私有子網路中以內部 Application Load Balancer 託管的應用程式交付內容。VPC 原始伺服器可防止您的應用程式在公有網際網路上存取。如需詳細資訊,請參閱使用 VPC 原始伺服器限制存取

使用 Network Load Balancer

您可以將內部和面向網際網路的 Network Load Balancer 與 Amazon CloudFront 搭配使用。您可以使用 VPC 原始伺服器,將私有子網路內的內部 Network Load Balancer 與 CloudFront 搭配使用。CloudFront VPC 原始伺服器可讓您從私有 VPC 子網路中託管的應用程式提供內容,而無需將其公開至公有網際網路。如需詳細資訊,請參閱使用 VPC 原始伺服器限制存取

或者,您也可以使用 CloudFront 從面向網際網路的 Network Load Balancer 交付流量。面向網際網路的負載平衡器具有可公開解析的 DNS 名稱,並且可以在網際網路和 CloudFront 分佈上接收來自用戶端的請求。

使用 Lambda 函數 URL

Lambda 函數 URL 是 Lambda 函數的專用 HTTPS 端點。您可以使用 Lambda 函數 URL 來建置完全在 Lambda 內的無伺服器 Web 應用程式。您可以直接透過這個函數 URL 叫用 Lambda Web 應用程式,完全無需與 API Gateway 或 Application Load Balancer 進行整合。

如果您使用 Lambda 函數搭配函數 URLs來建置無伺服器 Web 應用程式,您可以新增 CloudFront 以取得下列優點:

  • 在更接近檢視者的位置快取內容,加快應用程式的速度

  • 讓您的 Web 應用程式使用自訂網域

  • 使用 CloudFront 快取行為將不同的 URL 路徑轉送至不同的 Lambda 函數

  • 使用 CloudFront 地理限制和/或 AWS WAF 封鎖特定請求

  • AWS WAF 搭配 CloudFront 使用 可協助保護您的應用程式免受惡意機器人攻擊、協助防止常見的應用程式入侵,並增強對 DDoS 攻擊的保護

若要使用 Lambda 函數 URL 做為 CloudFront 分佈的原始伺服器,請將 Lambda 函數 URL 的完整網域名稱指定為原始伺服器網域。Lambda 函數 URL 網域名稱必須使用以下格式:

function-URL-ID.lambda-url.AWS-Region.on.aws

當您使用 Lambda 函數 URL 做為 CloudFront 分佈的原始伺服器時,函數 URL 必須可公開存取。若要這麼做,請使用下列其中一個選項:

  • 如果您使用原始存取控制 (OAC),Lambda 函數 URL 的 AuthType 參數必須使用 AWS_IAM值,並在資源型政策中允許 lambda:InvokeFunctionUrl許可。如需針對 OAC 使用 Lambda 函數 URLs 的詳細資訊,請參閱 限制對 AWS Lambda 函數 URL 原始伺服器的存取

  • 如果您不使用 OAC,您可以將函數 URL 的 AuthType 參數設定為 ,NONE並在以資源為基礎的政策中允許 lambda:InvokeFunctionUrl許可。

您也可以將自訂原始伺服器標頭新增至 CloudFront 傳送至原始伺服器的請求,並撰寫函數程式碼,以便在請求中不存在標頭時傳回錯誤回應。以確保使用者只能透過 CloudFront (無法直接使用 Lambda 函數 URL) 存取您的 Web 應用程式。

如需 Lambda 函數 URL 的詳細資訊,請參閱 AWS Lambda 開發人員指南

使用 Amazon EC2 (或其他自訂原始伺服器)

您可以搭配 Amazon CloudFront 使用內部和面向網際網路的 EC2 執行個體。您可以使用 VPC 原始伺服器,將私有子網路內的內部 EC2 執行個體與 CloudFront 搭配使用。CloudFront VPC 原始伺服器可讓您從私有 VPC 子網路中託管的應用程式提供內容,而無需將其公開至公有網際網路。如需詳細資訊,請參閱使用 VPC 原始伺服器限制存取

自訂原始伺服器是 HTTP(S) Web 伺服器,具有可公開解析的 DNS 名稱,可透過網際網路將請求從用戶端路由到目標。HTTP(S) 伺服器可以託管在 AWS Amazon EC2 執行個體上,也可以託管在其他地方。設為網站端點的 Amazon S3 原始伺服器也會被視為自訂原始伺服器。如需詳細資訊,請參閱使用設定為網站端點的 Amazon S3 儲存貯體

使用自有的 HTTP 伺服器做為自訂原始伺服器時,您可以指定伺服器的 DNS 名稱,以及 CloudFront 從您的原始伺服器擷取物件時使用的 HTTP 與 HTTPS 連接埠和通訊協定。

使用自訂原始伺服器時,大多數 CloudFront 功能都受支援,但私有內容除外:雖然您可以使用已簽署的 URL 來分配自訂原始伺服器的內容,但是為了讓 CloudFront 存取自訂原始伺服器,該伺服器必須維持在可公開存取的狀態。如需詳細資訊,請參閱使用簽章的 URLs Cookie 提供私有內容

請依照這些準則,以便使用 Amazon EC2 執行個體和在 CloudFront 下的其他自訂原始伺服器原始伺服器。

  • 在所有伺服器上託管與服務相同內容,這些伺服器為相同的 CloudFront 原始伺服器提供的內容。如需詳細資訊,請參閱 分佈設定參考 主題中的 原始設定

  • 如果您需要 支援 或 CloudFront 使用此值進行偵錯,請在所有伺服器上記錄X-Amz-Cf-Id標頭項目。

  • 限制對您自訂原始伺服器所監聽的 HTTP 與 HTTPS 連接埠提出請求。

  • 同步實作中所有伺服器的時鐘。請注意,CloudFront 對已簽署 URL 和已簽署 Cookie、日誌及報告皆使用國際標準時間 (UTC)。此外,如果您使用 CloudWatch 指標來監控 CloudFront 活動,請注意,CloudWatch 也會使用 UTC。

  • 使用冗餘伺服器來處理故障。

  • 如需有關使用自訂原始伺服器來提供私有內容的詳細資訊,請參閱限制存取自訂原始伺服器上的檔案

  • 如需有關請求和回應行為,以及有關支援的 HTTP 狀態代碼的詳細資訊,請參閱請求和回應行為

如果您使用 Amazon EC2 做為自訂原始伺服器,建議您執行以下操作:

  • 使用 Amazon Machine Image,會自動為 Web 伺服器安裝軟體。如需詳細資訊,請參閱 Amazon EC2 說明文件

  • 使用 Elastic Load Balancing 負載平衡器來處理多個 Amazon EC2 執行個體的流量,並將應用程式與 Amazon EC2 執行個體的變更隔離。例如,如果您使用負載平衡器,則可以新增和刪除 Amazon EC2 執行個體,無需變更應用程式。如需詳細資訊,請參閱 Elastic Load Balancing 說明文件

  • 當您建立 CloudFront 分佈時,請為您的原始伺服器的網域名稱指定負載平衡器的 URL。如需詳細資訊,請參閱建立分發

使用 CloudFront 原始伺服器群組

例如,當您需要高可用性時,若想要針對案例配置原始伺服器容錯移轉,則您可以為 CloudFront 原始伺服器指定原始伺服器群組。使用原始伺服器容錯移轉來指定 CloudFront 的主要原始伺服器,另外再建立第二部原始伺服器,當主要原始伺服器傳回特定 HTTP 狀態碼故障回應時,CloudFront 會自動切換到第二部伺服器。

如需詳細資訊,包括原始伺服器群組的設定步驟,請參閱使用 CloudFront 原始伺服器容錯移轉最佳化高可用性

使用 Amazon API Gateway

您可以使用 API Gateway 做為 CloudFront 分佈的自訂原始伺服器。如需詳細資訊,請參閱下列主題: