本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在 VPC 中執行堆疊
重要
AWS OpsWorks Stacks 服務已於 2024 年 5 月 26 日終止,並已針對新客戶和現有客戶停用。我們強烈建議客戶盡快將其工作負載遷移至其他解決方案。如果您對遷移有任何疑問,請透過 AWS re:Post
您可以在 virtual private cloud (VPC) 中建立堆疊的執行個體,以控制使用者對其的存取權。例如,您可能不想讓使用者直接存取您堆疊的應用程式伺服器或資料庫,而要求所有公有流量都經由 Elastic Load Balancer 導引。
在 VPC 中執行堆疊的基本步驟如下:
-
使用 Amazon VPC 主控台或 API 或 AWS CloudFormation 範本建立適當設定的 VPC。
-
在建立堆疊時指定 VPC ID。
-
在適當子網路中,啟動堆疊的執行個體。
下列簡要說明 VPC 在 AWS OpsWorks Stacks 中的運作方式。
重要
如果您使用 VPC 端點功能,請注意堆疊中的每個執行個體都必須能夠從 Amazon Simple Storage Service (Amazon S3) 完成下列動作:
-
安裝執行個體代理程式。
-
安裝 Ruby 這類資產。
-
上傳 Chef 執行日誌。
-
擷取堆疊命令。
若要啟用這些動作,您必須確保堆疊的執行個體可以存取下列符合堆疊區域的儲存貯體。否則,上述動作將會失敗。
對於 Chef 12 Linux 和 Chef 12.2 Windows,儲存貯體如下所示。
代理程式儲存貯體 | 資產儲存貯體 | 日誌儲存貯體 | DNA 儲存貯體 |
---|---|---|---|
|
|
|
|
若是 Linux 的 Chef 11.10 和更早版本,儲存貯體如下所示。美國東部 (維吉尼亞北部) 區域以外的區域端點不支援 Chef 11.4 堆疊。
代理程式儲存貯體 | 資產儲存貯體 | 日誌儲存貯體 | DNA 儲存貯體 |
---|---|---|---|
|
|
|
|
如需詳細資訊,請參閱 VPC 端點。
注意
若要讓 AWS OpsWorks Stacks 連線到您啟用的 VPC 端點,您也必須設定 NAT 或公有 IP 的路由,因為 AWS OpsWorks Stacks 代理程式仍需要存取公有端點。
VPC 基本概念
如需 VPC 的詳細討論,請參閱 Amazon Virtual Private Cloud。簡短來說,VPC 包含一或多個「子網路」,而其中每個都包含一或多個執行個體。每個子網路都有一個相關聯的路由表,以根據其目標 IP 地址指示傳出流量。
-
VPC 中的執行個體預設為可互相通訊,而不管它們的子網路為何。不過,變更網路存取控制清單 (ACL)、安全群組政策,或使用靜態 IP 地址的話,可能會切斷此通訊。
-
如果子網路的執行個體可以與網際網路通訊,則這種子網路稱為「公有子網路」。
-
如果子網路的執行個體只能與 VPC 中的其他執行個體通訊,而無法直接與網際網路通訊,則這種子網路稱為「私有子網路」。
AWS OpsWorks Stacks 需要設定 VPC,以便堆疊中的每個執行個體,包括私有子網路中的執行個體,都能存取下列端點:
-
列於「區域支援」一節的其中一個 AWS OpsWorks Stacks 服務端點Stacks AWS OpsWorks 入門。
-
下列其中一個執行個體服務端點,由 Stacks AWS OpsWorks 代理程式使用。受管的客戶執行個體上執行的代理程式會與服務交換資料。
-
opsworks-instance-service.us-east-2.amazonaws.com
-
opsworks-instance-service.us-east-1.amazonaws.com
-
opsworks-instance-service.us-west-1.amazonaws.com
-
opsworks-instance-service.us-west-2.amazonaws.com
-
opsworks-instance-service.ap-south-1.amazonaws.com
-
opsworks-instance-service.ap-northeast-1.amazonaws.com
-
opsworks-instance-service.ap-northeast-2.amazonaws.com
-
opsworks-instance-service.ap-southeast-1.amazonaws.com
-
opsworks-instance-service.ap-southeast-2.amazonaws.com
-
opsworks-instance-service.ca-central-1.amazonaws.com
-
opsworks-instance-service.eu-central-1.amazonaws.com
-
opsworks-instance-service.eu-west-1.amazonaws.com
-
opsworks-instance-service.eu-west-2.amazonaws.com
-
opsworks-instance-service.eu-west-3.amazonaws.com
-
-
Amazon S3
-
作業系統仰賴的任何套件儲存庫,例如 Amazon Linux 或 Ubuntu Linux 儲存庫。
-
您的應用程式和自訂技術指南儲存庫。
有多種方法可以將 VPC 設定為提供此連線能力。以下是如何為 Stacks 應用程式伺服器堆疊設定 VPC AWS OpsWorks 的簡單範例。

此 VPC 有多個元件:
- 子網路
-
VPC 有兩個子網路:一個公有子網路和一個私有子網路。
-
公有子網路包含一個負載平衡器和網路地址轉譯 (NAT) 裝置,其可與外部地址和私有子網路中的執行個體通訊。
-
私有子網路包含應用程式伺服器,其可與公有子網路中的 NAT 和負載平衡器通訊,但無法直接與外部地址通訊。
-
- 網際網路閘道
-
網際網路閘道允許含公有 IP 地址的執行個體 (例如負載平衡器) 與 VPC 外部地址通訊。
- 負載平衡器
-
Elastic Load Balancing 負載平衡器會接收來自使用者的傳入流量,將它分發至私有子網路中的應用程式伺服器,並將回應傳回給使用者。
- NAT
-
(NAT) 裝置提供的應用程式伺服器只能對網際網路進行有限的存取;通常是用來從外部儲存庫下載軟體更新。所有 AWS OpsWorks Stacks 執行個體都必須能夠與 AWS OpsWorks Stacks 和適當的 Linux 儲存庫進行通訊。其中一種處理此問題的方法是,將含相關聯彈性 IP 地址的 NAT 裝置放在公有子網路中。然後,您就可以將來自私有子網路執行個體的傳出流量透過 NAT 進行路由。
注意
單一 NAT 執行個體會在私有子網路的傳出流量中建立單一故障點。您可以使用一對 NAT 執行個體來設定 VPC,以在其中一個執行個體發生故障時由另一個接替,藉此提升可靠性。如需詳細資訊,請參閱 Amazon VPC NAT 執行個體的高可用性
。您也可以使用 NAT 閘道。如需詳細資訊,請參閱《Amazon VPC 使用者指南》中的 NAT。
最佳 VPC 組態取決於您的 Stacks AWS OpsWorks 堆疊。下列的一些範例說明您可能會使用特定 VPC 組態的時機。如需其他 VPC 案例的範例,請參閱 Amazon VPC 使用情境。
- 使用公有子網路中的一個執行個體
-
如果您有沒有相關聯私有資源的單一執行個體堆疊,例如不應公開存取的 Amazon RDS 執行個體,您可以建立一個具有一個公有子網路的 VPC,並將執行個體放在該子網路中。如果您不是使用預設 VPC,則必須讓執行個體 layer 指派彈性 IP 地址給該執行個體。如需詳細資訊,請參閱OpsWorks Layer 基本概念。
- 使用私有資源
-
如果您的資源不應公開存取,您可以建立一個 VPC,其中含有一個公有子網路和一個私有子網路。例如,在負載平衡的自動擴展環境中,您可以將所有 Amazon EC2 執行個體放在私有子網路中,並將負載平衡器放在公有子網路中。如此一來,Amazon EC2 執行個體就無法直接從網際網路存取;所有傳入流量都必須透過負載平衡器路由。
私有子網路會將執行個體與 Amazon EC2 直接使用者存取隔離,但仍然必須將傳出請求傳送至 AWS 和適當的 Linux 套件儲存庫。若要允許這類請求,您可以使用自帶彈性 IP 地址的網路地址轉譯 (NAT) 裝置,然後透過 NAT 路由該執行個體的傳出流量。您可以將 NAT 放在負載平衡器的相同公有子網路中,如上述範例所示。
-
如果您使用的是後端資料庫,例如 Amazon RDS 執行個體,您可以將這些執行個體放在私有子網路中。對於 Amazon RDS 執行個體,您必須在不同的可用區域中指定至少兩個不同的子網路。
-
如果您需要直接存取私有子網路中的執行個體,例如,您想要使用 SSH 登入執行個體,您可以將堡壘主機放在代理網際網路請求的公有子網路中。
-
- 將自己的網路擴展至 AWS
-
若您想要將自己的網路擴展至雲端,並直接從 VPC 存取網際網路,您可以建立 VPN 閘道。如需詳細資訊,請參閱案例 3:具有公有子網路和私有子網路以及硬體 VPN 存取的 VPC。
為 AWS OpsWorks Stacks Stack 建立 VPC
本節說明如何使用範例 AWS CloudFormation 範本建立 AWS OpsWorks Stacks 堆疊的 VPC。您可以在 OpsWorksVPCtemplates.zip 檔案中下載範本。如需如何手動建立一個本主題所述 VPC 的詳細資訊,請參閱案例 2:具有公有子網路和私有子網路的 VPC。如需如何設定路由表、安全群組等,請參閱範本範例。
注意
根據預設, AWS OpsWorks Stacks 會透過串連其 CIDR 範圍和可用區域來顯示子網路名稱,例如 10.0.0.1/24 - us-east-1b
。若要讓名稱更易讀,請為每個子網路建立標籤,並將金鑰設為 Name
,並將值設為子網路名稱。然後, AWS OpsWorks Stacks 會將子網路名稱附加到預設名稱。例如,下列範例中的私有子網路,其標籤的 Name (名稱) 設定為 Private
,因此 OpsWorks 會顯示為 10.0.0.1/24
us-east - 1b - Private
。
您可以使用 AWS CloudFormation 主控台啟動 VPC 範本,只需幾個步驟。下列程序使用範例範本在美國東部 (維吉尼亞北部) 區域建立 VPC。如需如何使用範本在其他區域中建立 VPC 的指示說明,請參閱程序之後的備註。
若要建立 VPC
-
開啟 AWS CloudFormation 主控台
,選取 US East (N. Virginia) (美國東部 (維吉尼亞北部)) 區域,然後選擇 Create Stack (建立堆疊)。 -
在 Select Template (選取範本) 頁面上,選取 Upload a template (上傳範本)。瀏覽您在 OpsWorksVPCtemplates.zip
OpsWorksinVPC.template
檔案中下載的檔案。選擇繼續。 OpsWorksVPCtemplates.zip您也可以開啟 AWS CloudFormation 範本
、尋找 AWS OpsWorks Stacks VPC 範本,然後選擇啟動 Stack 來啟動此堆疊。 -
接受 Specify Parameters (指定參數) 頁面中的預設值,然後選擇 Continue (繼續)。
-
在 Add Tags (新增標籤) 頁面中,將 Key (索引鍵) 設定為
Name
,將 Value (值) 設定為 VPC 名稱,以建立標籤。此標籤可讓您在建立 Stacks AWS OpsWorks 堆疊時更輕鬆地識別 VPC。 -
選擇 Continue (繼續),然後選擇 Close (關閉) 以啟動堆疊。
備註:您可以使用下列任一種方法,在其他區域中建立 VPC。
-
前往在不同區域中使用範本
,選擇適當的區域,找到 AWS OpsWorks Stacks VPC 範本,然後選擇啟動 Stack。 -
將範本檔案複製到您的系統中,並在 AWS CloudFormation 主控台
中選取適當的區域,然後使用 Create Stack (建立堆疊) 精靈的 Upload a template to Amazon S3 (上傳範本到 Amazon S3) 選項,從您的系統上傳範本。
範例範本包含輸出,可提供建立 Stacks AWS OpsWorks 堆疊所需的 VPC、子網路和負載平衡器 IDs。您可以透過選擇 AWS CloudFormation 主控台視窗底部的輸出索引標籤來查看它們。
