本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 VPC 原始伺服器限制存取
您可以使用 CloudFront 從虛擬私有雲端 (VPC) 私有子網路中託管的應用程式交付內容。您可以使用 Application Load Balancer (ALBs)、Network Load Balancer (NLBs) 和私有子網路中的 EC2 執行個體做為 VPC 原始伺服器。
以下是您可能想要使用 VPC 原始伺服器的一些原因:
-
安全 – VPC 原始伺服器旨在透過將負載平衡器和 EC2 執行個體放置在私有子網路中,使 CloudFront 成為單一進入點,來增強應用程式的安全狀態。使用者請求會透過私有、安全的連線從 CloudFront 前往 VPC 原始伺服器,為您的應用程式提供額外的安全性。
-
管理 – VPC 原始伺服器可減少 CloudFront 與原始伺服器之間安全連線所需的營運開銷。您可以將原始伺服器移至沒有公有存取權的私有子網路,而且您不需要實作存取控制清單 (ACLs) 或其他機制來限制對原始伺服器的存取。如此一來,您就不必投資未差異化的開發工作,即可使用 CloudFront 保護您的 Web 應用程式。
-
可擴展性和效能 – VPC 原始伺服器可協助您保護 Web 應用程式,騰出時間專注於擴展關鍵業務應用程式,同時透過 CloudFront 提高安全性和維護高效能和全球可擴展性。VPC 原始伺服器可簡化安全管理並降低操作複雜性,讓您可以使用 CloudFront 做為應用程式的單一進入點。
先決條件
為 CloudFront 分佈建立 VPC 原始伺服器之前,您必須完成下列操作:
-
在 Amazon VPC 上建立虛擬私有雲端 (VPC)。
-
您的 VPC 必須與 AWS 帳戶 CloudFront 分佈位於相同的 中。
-
您的 VPC 必須位於 VPC 原始伺服器 AWS 區域 支援的其中一個 中。如需詳細資訊,請參閱AWS 區域 支援 VPC 原始伺服器。
在 VPC 原始伺服器上啟用用戶端 IP 地址保留時,與您的 VPC 子網路相關聯的網路 ACLs 會套用至輸出 (傳出) 流量。不過,若要讓流量透過 VPC 原始伺服器結束,您必須將 ACL 設定為傳入和傳出規則。
例如,若要允許使用暫時性來源連接埠的 TCP 和 UDP 用戶端透過 VPC 原始伺服器連線至您的端點,請將端點子網路與網路 ACL 建立關聯,以允許目的地為暫時性 TCP 或 UDP 連接埠的傳出流量 (連接埠範圍 1024-65535,目的地 0.0.0.0/0)。此外,建立相符的傳入規則 (連接埠範圍 1024-65535,來源 0.0.0.0/0)。
如需建立 VPC 的資訊,請參閱《Amazon VPC 使用者指南》中的建立 VPC 和其他 VPC 資源。
-
-
在您的 VPC 中包含下列項目:
-
網際網路閘道 – 您需要將網際網路閘道新增至具有 VPC 原始資源的 VPC。需要網際網路閘道才能表示 VPC 可以從網際網路接收流量。網際網路閘道不會用於將流量路由到子網路內的原始伺服器,而且您不需要更新路由政策。
-
具有至少一個可用 IPv4 地址的私有子網路 – CloudFront 會使用 CloudFront 在您使用 CloudFront 定義 VPC 原始伺服器資源後建立的服務受管彈性網路界面 (ENI) CloudFront 路由到您的子網路。您的私有子網路中必須至少有一個可用的 IPv4 地址,以便 ENI 建立程序成功。IPv4 地址可以是私有的,而且無需額外費用。
注意
不支援IPv6-only的子網路。
-
-
在私有子網路中,啟動 Application Load Balancer、Network Load Balancer 或 EC2 執行個體以做為原始伺服器。
-
您啟動的資源必須完全部署且處於作用中狀態,才能將其用於 VPC 原始伺服器。
-
Gateway Load Balancer、雙堆疊 Network Load Balancer 和具有 TLS 接聽程式的 Network Load Balancer 無法新增為原始伺服器。
-
若要用作 VPC 原始伺服器,Network Load Balancer 必須連接安全群組。
更新 VPC 私有原始伺服器的安全群組,以明確允許 CloudFront 受管字首清單。如需詳細資訊,請參閱使用 CloudFront 受管字首清單。
-
建立 VPC 原始伺服器之後,安全群組可以進一步限制為僅允許來自 VPC 原始伺服器的流量。若要這樣做,請將允許流量來源從受管字首清單更新為 CloudFront 安全群組。
注意
VPC 原始伺服器不支援在 CloudFront 中使用 Lambda@Edge 進行 WebSockets、gRPC 流量和原始伺服器重寫。如需詳細資訊,請參閱 Lambda@Edge 文件使用請求和回應中的 。
-
-
建立 VPC 原始伺服器 (新分佈)
下列程序說明如何在 CloudFront 主控台中為新的 CloudFront 分佈建立 VPC CloudFront 原始伺服器。或者,您可以使用 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 CloudFront 原始伺服器。或者,您可以使用 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 |
Asia Pacific (Mumbai) | 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) |
加拿大 (中部) | 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 |