本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 VPC 原始伺服器限制存取
您可以使用 CloudFront 從虛擬私有雲端 (VPC) 私有子網路中託管的應用程式交付內容。您可以使用 Application Load Balancer (ALB)、Network Load Balancer (NLB) 和私有子網路中的 EC2 執行個體做為 VPC 原始伺服器。
以下是您可能想要使用 VPC 原始伺服器的一些原因:
-
安全 – VPC 原始伺服器旨在透過將負載平衡器和 EC2 執行個體放置在私有子網路中,使 CloudFront 成為單一進入點,來增強應用程式的安全狀態。使用者請求會透過私有、安全的連線從 CloudFront 轉移到 VPC 原始伺服器,為您的應用程式提供額外的安全性。
-
管理 – VPC 原始伺服器可減少 CloudFront 與原始伺服器之間安全連線所需的營運開銷。您可以將原始伺服器移至沒有公有存取權的私有子網路,而且您不需要實作存取控制清單 (ACL) 或其他機制來限制對原始伺服器的存取。如此一來,您就不必投資未差異化的開發工作,即可使用 CloudFront 保護您的 Web 應用程式。
-
可擴展性和效能 – VPC 原始伺服器可協助您保護 Web 應用程式,騰出時間專注於擴展關鍵業務應用程式,同時透過 CloudFront 提高安全性和維護高效能和全球可擴展性。VPC 原始伺服器可簡化安全管理並降低操作複雜性,讓您可以使用 CloudFront 做為應用程式的單一進入點。
提示
CloudFront 支援跨 共用 VPC 原始伺服器 AWS 帳戶,無論它們是否在您的組織中。您可以從 CloudFront 主控台共用 VPC 原始伺服器或使用 AWS Resource Access Manager (AWS RAM)。如需詳細資訊,請參閱在 CloudFront 中使用共享的資源。
先決條件
為 CloudFront 分佈建立 VPC 原始伺服器之前,您必須完成下列操作:
VPC 組態
在 VPC 原始伺服器支援的其中一個 中,在 Amazon VPC 上建立虛擬私有雲端 (VPC)。 AWS 區域 如需有關建立 VPC 的資訊,請參閱《Amazon VPC 使用者指南》中的建立 VPC 和其他 VPC 資源。如需支援的區域的清單,請參閱 AWS 區域 支援 VPC 原始伺服器。
您的 VPC 必須包含下列項目:
-
網際網路閘道 – 您需要將網際網路閘道新增至具有 VPC 原始資源的 VPC。需要網際網路閘道才能表示 VPC 可以從網際網路接收流量。網際網路閘道不會用於將流量路由到子網路內的原始伺服器,而且您不需要更新路由政策。
-
具有至少一個可用 IPv4 位址的私有子網路 – CloudFront 會使用 CloudFront 在您使用 CloudFront 定義 VPC 原始伺服器資源後建立的服務受管彈性網路介面 (ENI),路由到您的子網路。您的私有子網路中必須至少有一個可用的 IPv4 位址,以成功完成 ENI 建立程序。IPv4 位址可以是私有位址,而且無需額外費用。不支援 IPv6-only 子網路。
原始伺服器資源
在私有子網路中,啟動 Application Load Balancer、Network Load Balancer 或 EC2 執行個體以做為原始伺服器。您啟動的資源必須完全部署且處於作用中狀態,才能將其用於 VPC 原始伺服器。
原始伺服器限制:
-
Gateway Load Balancer 無法新增為原始伺服器
-
雙堆疊 Network Load Balancer 無法新增為原始伺服器
-
具有 TLS 接聽程式的網路負載平衡器無法新增為原始伺服器
-
若要用作 VPC 原始伺服器,Network Load Balancer 必須連接安全群組
安全群組設定
您的 VPC 原始伺服器資源 (Application Load Balancer、Network Load Balancer 或 EC2 執行個體) 必須連接安全群組。當您建立 VPC 原始伺服器時,CloudFront 會自動建立命名模式為 的服務受管安全群組CloudFront-VPCOrigins-Service-SG。此安全群組完全由 管理 AWS,不應編輯。
若要允許來自 CloudFront 的流量到達 VPC 原始伺服器,請更新連接至原始資源 (ALB、NLB 或 EC2 執行個體) 的安全群組,以使用下列其中一種方法允許傳入流量:
-
選項 1:允許來自 CloudFront 受管字首清單的流量。如需詳細資訊,請參閱使用 CloudFront 受管字首清單。這也可以在建立 VPC 原始伺服器之前完成。
-
選項 2:允許來自 CloudFront 服務受管安全群組 () 的流量
CloudFront-VPCOrigins-Service-SG。這只能在建立 VPC 原始伺服器並建立服務受管安全群組之後完成。此組態會進一步限制,因為它只會將流量限制在您的 CloudFront 分佈。
重要
請勿建立名稱開頭為 的自有安全群組CloudFront-VPCOrigins-Service-SG。這是服務受管安全群組的 AWS 預留命名模式。如需詳細資訊,請參閱建立安全群組。
通訊協定和功能限制
VPC 原始伺服器不支援下列項目:
-
WebSockets
-
gRPC 流量
-
使用 Lambda@Edge 的原始伺服器請求和原始伺服器回應觸發條件
建立 VPC 原始伺服器 (新分佈)
下列程序說明如何在 CloudFront 主控台中為新的 CloudFront 分佈建立 VPC 原始伺服器。或者,您可以使用 CreateVpcOrigin 和 CreateDistribution API 操作搭配 AWS CLI 或 AWS SDK。
為新的 CloudFront 分佈建立 VPC 原始伺服器
在 https://console.aws.amazon.com/cloudfront/v4/home
中開啟 CloudFront 主控台。 -
選擇 VPC 原始伺服器、建立 VPC 原始伺服器。
-
填妥必要的欄位。針對原始伺服器 ARN,選取 Application Load Balancer、Network Load Balancer 或 EC2 執行個體的 ARN。如果您沒有看到 ARN,您可以複製特定資源 ARN 並將其貼到這裡。
-
選擇建立 VPC 原始伺服器。
-
等待您的 VPC 原始伺服器狀態變更為已部署。此程序最多需要 15 分鐘的時間。
-
選擇分佈、建立分佈。
-
對於原始伺服器網域,請從下拉式清單中選取您的 VPC 原始伺服器資源。
如果您的 VPC 原始伺服器是 EC2 執行個體,請將執行個體的私有 IP DNS 名稱複製並貼到原始伺服器網域欄位中。
-
完成建立分佈。如需詳細資訊,請參閱在主控台中建立 CloudFront 分佈。
建立 VPC 原始伺服器 (現有分佈)
下列程序說明如何在 CloudFront 主控台中為現有的 CloudFront 分佈建立 VPC 原始伺服器,這有助於確保應用程式的持續可用性。或者,您可以使用 CreateVpcOrigin 和 UpdateDistributionWithStagingConfig API 操作搭配 AWS CLI 或 AWS SDK。
或者,您可以選擇將 VPC 原始伺服器新增至現有的分佈,而無需建立臨時分佈。
為現有的 CloudFront 分佈建立 VPC 原始伺服器
在 https://console.aws.amazon.com/cloudfront/v4/home
中開啟 CloudFront 主控台。 -
選擇 VPC 原始伺服器、建立 VPC 原始伺服器。
-
填妥必要的欄位。針對原始伺服器 ARN,選取 Application Load Balancer、Network Load Balancer 或 EC2 執行個體的 ARN。如果您沒有看到 ARN,您可以複製特定資源 ARN 並將其貼到這裡。
-
選擇建立 VPC 原始伺服器。
-
等待您的 VPC 原始伺服器狀態變更為已部署。此程序最多需要 15 分鐘的時間。
-
在導覽窗格中,選擇 Distributions (分佈)。
-
選擇您分佈的 ID。
-
在一般索引標籤的持續部署下,選擇建立臨時分佈。如需詳細資訊,請參閱使用 CloudFront 持續部署,安全地測試 CDN 組態變更。
-
依照建立臨時分佈精靈中的步驟來建立臨時分佈。包括下列步驟:
-
對於原始伺服器,選擇建立原始伺服器。
-
對於原始伺服器網域,請從下拉式功能表中選取您的 VPC 原始伺服器資源。
如果您的 VPC 原始伺服器是 EC2 執行個體,請將執行個體的私有 IP DNS 名稱複製並貼到原始伺服器網域欄位中。
-
選擇 Create Origin (建立原始伺服器)。
-
-
在您的臨時分佈中,測試 VPC 原始伺服器。
-
將臨時分佈組態提升為主要分佈。如需詳細資訊,請參閱提升臨時分佈組態。
-
將子網路設為私有,以移除對 VPC 原始伺服器的公開存取。執行此操作後,將無法透過網際網路探索 VPC 原始伺服器,但 CloudFront 仍然可以進行私有存取。如需詳細資訊,請參閱《Amazon VPC 使用者指南》中的將子網路與路由表建立關聯或取消關聯。
更新 VPC 原始伺服器
下列程序說明如何在 CloudFront 主控台中更新 CloudFront 分佈的 VPC 原始伺服器。或者,您可以使用 UpdateDistribution 和 UpdateVpcOrigin API 操作搭配 AWS CLI 或 AWS SDK。
更新 CloudFront 分佈的現有 VPC 原始伺服器
在 https://console.aws.amazon.com/cloudfront/v4/home
中開啟 CloudFront 主控台。 -
在導覽窗格中,選擇 Distributions (分佈)。
-
選擇您分佈的 ID。
-
選擇 Behaviors (動作) 索引標籤。
-
請確定 VPC 原始伺服器不是快取行為的預設原始伺服器。
-
選擇 Origins (原始伺服器) 索引標籤。
-
選取您要更新的 VPC 原始伺服器,然後選擇刪除。這會取消 VPC 原始伺服器與分佈的關聯。重複步驟 2 至 7,以取消 VPC 原始伺服器與任何其他分佈的關聯。
-
選擇 VPC 原始伺服器。
-
選取 VPC 原始伺服器,然後選擇編輯。
-
進行更新,然後選擇更新 VPC 原始伺服器。
-
等待您的 VPC 原始伺服器狀態變更為已部署。此程序最多需要 15 分鐘的時間。
-
在導覽窗格中,選擇 Distributions (分佈)。
-
選擇您分佈的 ID。
-
選擇 Origins (原始伺服器) 索引標籤。
-
選擇 Create Origin (建立原始伺服器)。
-
對於原始伺服器網域,請從下拉式功能表中選取您的 VPC 原始伺服器資源。
如果您的 VPC 原始伺服器是 EC2 執行個體,請將執行個體的私有 IP DNS 名稱複製並貼到原始伺服器網域欄位中。
-
選擇 Create Origin (建立原始伺服器)。這會再次將 VPC 原始伺服器與您的分佈建立關聯。重複步驟 12 至 17,將更新的 VPC 原始伺服器與任何其他分佈建立關聯。
AWS 區域 支援 VPC 原始伺服器
下列商業商品目前支援 VPC 原始伺服器 AWS 區域。會記下可用區域 (AZ) 例外狀況。
| 區域名稱 | 區域 |
|---|---|
| 美國東部 (俄亥俄) | us-east-2 |
| 美國東部 (維吉尼亞北部) | us-east-1 (except AZ
use1-az3) |
| 美國西部 (加利佛尼亞北部) | us-west-1 (except AZ
usw1-az2) |
| 美國西部 (奧勒岡) | us-west-2 |
| 非洲 (開普敦) | af-south-1 |
| 亞太區域 (香港) | ap-east-1 |
| 亞太地區 (孟買) | ap-south-1 |
| 亞太地區 (海德拉巴) | ap-south-2 |
| 亞太地區 (雅加達) | ap-southeast-3 |
| 亞太地區 (墨爾本) | ap-southeast-4 |
| 亞太地區 (大阪) | ap-northeast-3 |
| 亞太地區 (新加坡) | ap-southeast-1 |
| 亞太地區 (雪梨) | ap-southeast-2 |
| 亞太地區 (東京) | ap-northeast-1 (except AZ
apne1-az3) |
| 亞太地區 (首爾) | ap-northeast-2 (except AZ
apne2-az1) |
| 亞太區域 (泰國) | ap-southeast-7 |
| 亞太地區 (馬來西亞) | ap-southeast-5 |
| 亞太區域 (台北) | ap-east-2 |
| 加拿大 (中部) | ca-central-1 (except AZ
cac1-az3) |
| 加拿大西部 (卡加利) | ca-west-1 |
| 歐洲 (法蘭克福) | eu-central-1 |
| 歐洲 (愛爾蘭) | eu-west-1 |
| 歐洲 (倫敦) | eu-west-2 |
| 歐洲 (米蘭) | eu-south-1 |
| Europe (Paris) | eu-west-3 |
| 歐洲 (西班牙) | eu-south-2 |
| 歐洲 (斯德哥爾摩) | eu-north-1 |
| 歐洲 (蘇黎世) | eu-central-2 |
| 以色列 (特拉維夫) | il-central-1 |
| Middle East (Bahrain) | me-south-1 |
| 中東 (阿拉伯聯合大公國) | me-central-1 |
| 南美洲 (聖保羅) | sa-east-1 |
| 墨西哥 (中部) | mx-central-1 |