在堆栈中运行堆栈 VPC - AWS OpsWorks

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

在堆栈中运行堆栈 VPC

重要

这些区域有: AWS OpsWorks Stacks 该服务已于 2024 年 5 月 26 日终止,新客户和现有客户均已禁用。我们强烈建议客户尽快将其工作负载迁移到其他解决方案。如果您对迁移有疑问,请联系 AWS Support 团队开启 AWS re: post 或通过 AWS 高级支持

您可以通过在虚拟私有云中创建堆栈实例来控制用户对堆栈实例的访问权限 (VPC)。例如,您可能不希望用户直接访问您堆栈的应用程序服务器或数据库,而要求所有公有流量通过弹性负载均衡器传送。

在 a 中运行堆栈的基本过程VPC是:

  1. 使用 Amazon VPC 控制台创建经过适当配置VPC的API,或者 AWS CloudFormation 模板。

  2. 创建堆栈时指定 VPC ID。

  3. 在适当的子网中启动堆栈的实例。

以下内容简要描述了VPCs工作原理 AWS OpsWorks 堆栈。

重要

如果您使用VPC终端节点功能,请注意堆栈中的每个实例都必须能够通过亚马逊简单存储服务 (Amazon S3) Simple Service 完成以下操作:

  • 安装实例代理。

  • 安装资产,例如 Ruby。

  • 上传 Chef 运行日志。

  • 检索堆栈命令。

要启用这些操作,您必须确保堆栈的实例有权访问与堆栈区域匹配的以下存储桶。否则,上述操作将失败。

对于 Chef 12 Linux 和 Chef 12.2 Windows,存储桶如下所示。

代理存储桶 资产存储桶 日志存储桶 DNA水桶
  • opsworks-instance-agent-sa-east-1

  • opsworks-instance-agent-ap-south-1

  • opsworks-instance-agent-ap-东北-1

  • opsworks-instance-agent-ap-东北-2

  • opsworks-instance-agent-ap-southeast-1

  • opsworks-instance-agent-ap-东南-2

  • opsworks-instance-agent-ca-central-1

  • opsworks-instance-agent-eu-central-1

  • opsworks-instance-agent-eu-west-1

  • opsworks-instance-agent-eu-west-2

  • opsworks-instance-agent-eu-west-3

  • opsworks-instance-agent-us-east-1

  • opsworks-instance-agent-us-east-2

  • opsworks-instance-agent-us-west-1

  • opsworks-instance-agent-us-west-2

  • opsworks-instance-assets-us-east-2

  • opsworks-instance-assets-us-east-1

  • opsworks-instance-assets-ap-south-1

  • opsworks-instance-assets-ap-东北-1

  • opsworks-instance-assets-ap-东北-2

  • opsworks-instance-assets-ap-southeast-1

  • opsworks-instance-assets-ap-东南-2

  • opsworks-instance-assets-ca-central-1

  • opsworks-instance-assets-eu-central-1

  • opsworks-instance-assets-eu-west-1

  • opsworks-instance-assets-eu-west-2

  • opsworks-instance-assets-eu-west-3

  • opsworks-instance-assets-sa-east-1

  • opsworks-instance-assets-us-west-1

  • opsworks-instance-assets-us-west-2

  • opsworks-us-east-2 日志

  • opsworks-us-east-1-日志

  • opsworks-ap-south-1-日志

  • opsworks-ap-northeast-1-日志

  • opsworks-ap-northeast-2 日志

  • opsworks-ap-southeast-1-日志

  • opsworks-ap-southeast-2 日志

  • opsworks-ca-central-1-日志

  • opsworks-eu-central-1-日志

  • opsworks-eu-west-1-日志

  • opsworks-eu-west-2 日志

  • opsworks-eu-west-3-log

  • opsworks-sa-east-1-日志

  • opsworks-us-west-1-日志

  • opsworks-us-west-2 日志

  • opsworks-us-east-2-dna

  • opsworks-us-east-1-dna

  • opsworks-ap-south-1-dna

  • opsworks-ap-northeast-1-dna

  • opsworks-ap-northeast-2-dna

  • opsworks-ap-southeast-1-dna

  • opsworks-ap-southeast-2-dna

  • opsworks-ca-central-1-dna

  • opsworks-eu-central-1-dna

  • opsworks-eu-west-1-dna

  • opsworks-eu-west-2-dna

  • opsworks-eu-west-3-dna

  • opsworks-sa-east-1-dna

  • opsworks-us-west-1-dna

  • opsworks-us-west-2-dna

对于 Chef 11.10 和 Linux 的早期版本,存储桶如下所示。美国东部(弗吉尼亚州北部)外的区域端点不支持 Chef 11.4 堆栈。

代理存储桶 资产存储桶 日志存储桶 DNA水桶
  • opsworks-instance-agent-us-east-2

  • opsworks-instance-agent-us-east-1

  • opsworks-instance-agent-ap-south-1

  • opsworks-instance-agent-ap-东北-1

  • opsworks-instance-agent-ap-东北-2

  • opsworks-instance-agent-ap-southeast-1

  • opsworks-instance-agent-ap-东南-2

  • opsworks-instance-agent-ca-central-1

  • opsworks-instance-agent-eu-central-1

  • opsworks-instance-agent-eu-west-1

  • opsworks-instance-agent-eu-west-2

  • opsworks-instance-agent-eu-west-3

  • opsworks-instance-agent-us-east-1

  • opsworks-instance-agent-us-west-1

  • opsworks-instance-agent-us-west-2

  • opsworks-instance-assets-us-east-2

  • opsworks-instance-assets-us-east-1

  • opsworks-instance-assets-ap-south-1

  • opsworks-instance-assets-ap-东北-1

  • opsworks-instance-assets-ap-东北-2

  • opsworks-instance-assets-ap-southeast-1

  • opsworks-instance-assets-ap-东南-2

  • opsworks-instance-assets-ca-central-1

  • opsworks-instance-assets-eu-central-1

  • opsworks-instance-assets-eu-west-1

  • opsworks-instance-assets-eu-west-2

  • opsworks-instance-assets-eu-west-3

  • opsworks-instance-assets-sa-east-1

  • opsworks-instance-assets-us-west-1

  • opsworks-instance-assets-us-west-2

  • prod_stage-log

  • prod_stage-dna

有关更多信息,请参阅 VPC 终端节点

注意

对于 AWS OpsWorks 堆栈要连接到您启用的VPC端点,还必须为您的NAT或公有 IP 配置路由,因为 AWS OpsWorks Stacks 代理仍然需要访问公共端点。

VPC基础知识

有关详细讨论,请参阅亚马逊 Virtual Private Cloud。VPCs简而言之,由一个或多个子网VPC组成,每个子网都包含一个或多个实例。每个子网有一个关联的路由表,可根据其目标 IP 地址定向出站流量。

  • 默认情况下,中的实例VPC可以相互通信,无论其子网如何。但是,更改网络访问控制列表 (ACLs)、安全组策略或使用静态 IP 地址可能会中断这种通信。

  • 其实例可以与 Internet 通信的子网称为公有子网

  • 其实例只能与中的其他实例通信VPC且无法直接与 Internet 通信的子网称为私有子网。

AWS OpsWorks 堆栈需要进行配置,以便堆栈中的每个实例(包括私有子网中的实例)都能访问以下终端节点:VPC

  • 其中之一 AWS OpsWorks 堆叠的 “Region Support” 部分中列出的服务端点。AWS OpsWorks 堆栈入门

  • 以下实例服务终端节点之一,由 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.amazows.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.amazows.com

    • opsworks-instance-service.eu-ctral-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以提供这种连接。以下是如何VPC为配置的简单示例 AWS OpsWorks 堆叠应用程序服务器堆栈。

VPC diagram showing public and private subnets, NAT, load balancing, and connections to external services.

它VPC有几个组成部分:

子网

VPC有两个子网,一个是公有子网,一个是私有子网。

  • 公有子网包含一个负载均衡器和一个网络地址转换 (NAT) 设备,它们可以与外部地址和私有子网中的实例通信。

  • 私有子网包含应用程序服务器,这些服务器可以与公有子网中的NAT和负载均衡器通信,但不能直接与外部地址通信。

Internet 网关

Internet 网关允许具有公有 IP 地址的实例(例如负载均衡器)与外部的地址通信VPC。

负载均衡器

Elastic Load Balancing 负载均衡器接收用户的传入流量、将其分配到私有子网中的应用程序服务器,然后向用户返回响应。

NAT

(NAT) 设备为应用程序服务器提供有限的 Internet 访问权限,通常用于从外部存储库下载软件更新等目的。全部 AWS OpsWorks 堆栈实例必须能够与之通信 AWS OpsWorks 堆叠并使用相应的 Linux 存储库。处理此问题的一种方法是将具有相关弹性 IP 地址的NAT设备放在公有子网中。然后,您可以通过路由来自私有子网中实例的出站流量NAT。

注意

单个NAT实例会在您的私有子网的出站流量中造成单点故障。您可以通过配置一对实例来提高可靠性,如果其中一个NAT实例出现故障,这些实例会相互接管。VPC有关更多信息,请参阅 Amazon VPC NAT 实例的高可用性。您也可以使用NAT网关。有关更多信息,请参阅NATAmazon VPC 用户指南》

最佳VPC配置取决于您的 AWS OpsWorks 堆叠堆栈。以下是您何时可能使用某些VPC配置的几个示例。有关其他VPC场景的示例,请参阅使用 Amazon 的场景VPC

处理公有子网中的一个实例

如果您的单实例堆栈没有关联的私有资源,例如不应公开访问的 Amazon RDS 实例,则可以创建一个VPC具有一个公有子网的堆栈,然后将该实例放在该子网中。如果您未使用默认地址VPC,则必须让实例的层为该实例分配弹性 IP 地址。有关更多信息,请参阅 OpsWorks 图层基础知识

处理私有资源

如果您有不应公开访问的资源,则可以创建一个VPC具有一个公有子网和一个私有子网的。例如,在负载平衡的自动扩展环境中,您可以将所有 Amazon EC2 实例放在私有子网中,将负载均衡器放在公有子网中。这样,就无法从 Internet 直接访问 Amazon EC2 实例;所有传入流量都必须通过负载均衡器进行路由。

私有子网将实例与 Amazon 的EC2直接用户访问隔离开来,但它们仍必须向AWS相应的 Linux 软件包存储库发送出站请求。例如,要允许此类请求,您可以使用具有自己的弹性 IP 地址的网络地址转换 (NAT) 设备,然后通过路由实例的出站流量。NAT您可以将与负载均衡器放在同一个公有子网中,如前面的示例所示。NAT

  • 如果您使用的是后端数据库,RDS例如 Amazon 实例,则可以将这些实例放在私有子网中。对于 Amazon RDS 实例,您必须在不同的可用区域中指定至少两个不同的子网。

  • 如果您需要直接访问私有子网中的实例(例如,您想使用SSH来登录实例),则可以在公有子网中放置堡垒主机来代理来自 Internet 的请求。

将您自己的网络扩展到 AWS

如果您想将自己的网络扩展到云端,并直接从您的网络访问互联网VPC,则可以创建VPN网关。有关更多信息,请参阅场景 3:VPC使用公有和私有子网以及硬件VPN访问权限

为 a VPC 创建 AWS OpsWorks 堆栈堆栈

本节介绍如何VPC为创建 AWS OpsWorks 使用示例AWS CloudFormation模板堆栈。您可以下载 OpsWorksVPCtemplates.zip 文件中的模板。有关如何手动创建VPC类似本主题中讨论的内容的更多信息,请参阅场景 2:VPC使用公有子网和私有子网。有关如何配置路由表、安全组等信息,请参阅示例模板。

注意

默认情况下, AWS OpsWorks 堆栈通过连接子网的CIDR范围和可用区来显示子网名称,例如。10.0.0.1/24 - us-east-1b为了使名称更便于阅读,请为每个子网创建一个标签,将 Key (键) 设置为 Name,将 Value (值) 设置为子网名称。 AWS OpsWorks Stacks 然后会将子网名称追加到默认名称后。例如,以下示例中的私有子网有一个标记,名称设置为Private, OpsWorks 显示为10.0.0.1/24 us-east - 1b - Private

您可以使用启动VPC模板 AWS CloudFormation 只需几个步骤即可控制台。以下过程使用示例模板VPC在美国东部(弗吉尼亚北部)创建区域。有关如何使用该模板VPC在其他区域创建的说明,请参阅步骤之后的注释。

要创建 VPC
  1. 打开 AWS CloudFormation 控制台,选择美国东部(弗吉尼亚北部)区域,然后选择创建堆栈

  2. Select Template (选择模板) 页面上,选择 Upload a template (上传模板)浏览您在 OpsWorksVPCtemplates.zip OpsWorksinVPC.template 文件中下载的文件。选择 “继续”。

    CloudFormation 选择模板页面

    您也可以通过打开AWS CloudFormation 示例模板来启动此堆栈,找到 AWS OpsWorks 堆栈VPC模板,然后选择 “启动堆栈”。

  3. Specify Parameters (指定参数) 页面上,接受默认值并选择 Continue (继续)

  4. 添加标签页面上,创建一个标签,将密钥设置为Name设置为VPC名称。这个标签可以让你在创建VPC时更容易识别你的身份 AWS OpsWorks 堆叠堆栈。

  5. 选择 Continue (继续),然后选择 Close (关闭) 以启动堆栈。

注意:您可以使用以下任一方法VPC在其他区域创建。

  • 前往在不同区域使用模板,选择相应的区域,找到 AWS OpsWorks 堆栈VPC模板,然后选择 “启动堆栈”。

  • 将模板文件复制到您的系统,然后在中选择相应的区域 AWS CloudFormation 控制台,然后使用创建堆栈向导的 “将模板上传到 Amazon S3” 选项从您的系统上传模板。

示例模板包括输出,这些输出提供了创建VPC、子网和负载均衡器IDs所需的子网和负载均衡器 AWS OpsWorks 堆叠堆栈。您可以通过选择底部的 “输出” 选项卡来查看它们 AWS CloudFormation 控制台窗口。

Stack outputs table showing VPC, subnet, and load balancer IDs for an OpsWorks-in-VPC stack.