创建新堆栈 - AWS OpsWorks

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

创建新堆栈

要创建新的堆栈,请在 AWS OpsWorks Stacks 控制面板上,单击 Add stack (添加堆栈)。然后,您可以使用 Add Stack 页来配置堆栈。完成后,单击 Add Stack

选择要创建的堆栈类型

创建堆栈前,您必须决定要创建的堆栈的类型。有关帮助,请参阅下表。

如果需要创建... 在以下情况下,创建此类型的堆栈 要了解如何操作,请遵循以下说明:
示例堆栈 利用基于 Linux 的 Chef 12 堆栈和示例 Node.js 应用程序来探索 AWS OpsWorks 的基础知识。

入门:示例

基于 Linux 的 Chef 12 堆栈 创建基于 Linux 的堆栈,该堆栈使用 AWS OpsWorks 支持的最新版本的 Chef。如果您是高级 Chef 用户,并且您想从大量可选的社区说明书中获益,或编写您自己的自定义说明书,请选择此选项。有关更多信息,请参阅 Chef 12 Linux

入门:Linux

基于 Windows 的 Chef 12.2 堆栈 创建基于 Windows 的堆栈。

入门:Windows

基于 Linux 的 Chef 11.10 堆栈 如果您的组织需要将 Chef 11.10 与 Linux 结合使用以实现向后兼容性,请创建此堆栈。

Chef 11 Linux 堆栈入门

基本选项

Add Stack 页包含以下基本选项。

堆栈名称

(必需) 用于标识 AWS OpsWorks Stacks 控制台中的堆栈的名称。该名称无需是唯一的。AWS OpsWorks Stacks 还生成一个堆栈 ID,它是用于唯一标识堆栈的 GUID。例如,对于 AWS CLI 命令(如 update-stack),您使用堆栈 ID 标识特殊堆栈。创建堆栈后,您可以通过在导航窗格中选择 Stack,然后选择 Stack Settings 来查找堆栈 ID。此 ID 标有 OpsWorks ID

区域

(必需) 将从中启动实例的 AWS 区域。

VPC

(可选) 堆栈将启动到的 VPC 的 ID。所有实例都将启动到此 VPC 中,并且您稍后无法更改 ID。

  • 如果您的账户支持 EC2 Classic,则当您不需要使用 VPC 时,可指定 No VPC (默认值)。

    有关 EC2 Classic 的更多信息,请参阅支持的平台

  • 如果您的账户不支持 EC2 Classic,则必须指定 VPC。

    默认设置为 Default VPC,它将 EC2 Classic 的易用性与 VPC 联网功能的好处集于一身。如果您需要在常规 VPC 中运行堆栈,则必须使用 VPC 控制台APICLI 来创建堆栈。有关如何为 AWS OpsWorks Stacks 堆栈创建 VPC 的更多信息,请参阅在 VPC 中运行堆栈。有关一般信息,请参阅 Amazon Virtual Private Cloud

默认可用区/默认子网

(可选) 此设置依赖于您是否在 VPC 中创建堆栈:

  • 如果您的账户支持 EC2 Classic,并且您将 VPC 设置为 No VPC,则此设置将标有 Default Availability Zone,这会指定将从中启动实例的默认 AWS 可用区。

  • 如果您的账户不支持 EC2 Classic 或者您选择指定 VPC,则此字段将标有 Default subnet,这会指定将从中启动实例的默认子网。您可以通过在创建实例时覆盖此值来在其他子网中启动实例。每个子网均与一个可用区关联。

您可以让 AWS OpsWorks Stacks 在其他可用区或子网中启动实例,方式是在创建实例时覆盖此设置。

有关如何在 VPC 中运行堆栈的更多信息,请参阅在 VPC 中运行堆栈

默认操作系统

(可选) 默认情况下安装在每个实例上的操作系统。您有以下选项:

  • 内置 Linux 操作系统之一。

  • Microsoft Windows Server 2012 R2.

  • 基于某个支持的操作系统的自定义 AMI。

    如果您选择 Use custom AMI,则操作系统由创建实例时指定的自定义 AMI 决定。有关更多信息,请参阅 使用自定义 AMI

有关可用操作系统的更多信息,请参阅AWS OpsWorks Stacks 操作系统

注意

您可以在创建实例时覆盖默认操作系统。不过,您无法覆盖 Linux 操作系统来指定 Windows,也无法覆盖 Windows 来指定 Linux 操作系统。

默认 SSH 密钥

(可选) 来自堆栈的区域的 Amazon EC2 密钥对。默认值为 none。如果您指定密钥对,则 AWS OpsWorks Stacks 将在实例上安装公有密钥。

  • 对于 Linux 实例,您可以将私有密钥用于 SSH 客户端来登录堆栈的实例。

    有关更多信息,请参阅 使用 SSH 登录

  • 对于 Windows 实例,您可以将私有密钥用于 Amazon EC2 控制台或 CLI 来检索实例的管理员密码。

    随后,您可以将密码用于 RDP 客户端来以管理员身份登录到实例。有关更多信息,请参阅使用 RDP 登录

有关如何管理 SSH 密钥的更多信息,请参阅管理 SSH 访问

注意

您可以通过在创建实例时指定其他密钥对来覆盖此设置或不指定任何密钥对。

Chef 版本

这将显示您选定的 Chef 版本。

有关 Chef 版本的更多信息,请参阅Chef 版本

使用自定义 Chef 说明书

是否在堆栈的实例上安装自定义 Chef 说明书。

对于 Chef 12,默认设置为 Yes。对于 Chef 11,默认设置为 NoYes (是) 选项将显示额外几个选项,这些选项向 AWS OpsWorks Stacks 提供将自定义说明书从其存储库部署到堆栈的实例所需的信息(如存储库 URL)。详细信息取决于您对说明书使用的存储库。有关更多信息,请参阅 安装自定义说明书

堆栈颜色

(可选) 用于表示 AWS OpsWorks Stacks 控制台上的堆栈的色调。您可以对不同的堆栈使用不同的颜色来帮助在开发期间区分临时和生产堆栈。

堆栈标签

您可以在堆栈和层级别应用标签。当您创建一个标签后,您将对标记的结构范围内的每个资源应用该标签。例如,如果您向堆栈应用一个标签,则将向每个层应用该标签,而在每个层中,将向层中的每个实例、Amazon EBS 卷或 Elastic Load Balancing 负载均衡器应用该标签。有关如何激活标签以及用其跟踪和管理 AWS OpsWorks Stacks 资源成本的更多信息,请参阅 Billing and Cost Management 用户指南 中的使用成本分配标签激活用户定义的成本分配标签。有关在 AWS OpsWorks Stacks 中添加标签的更多信息,请参阅标签

高级选项

对于高级设置,单击 Advanced >> 可显示 Advanced optionsSecurity 部分。

Advanced options 部分具有以下选项:

默认根设备类型

确定要用于实例的根卷的存储类型。有关更多信息,请参阅存储

  • 默认情况下,Linux 堆栈使用由 Amazon EBS 提供支持的根卷,但您也可以指定由实例存储提供支持的根卷。

  • Windows 堆栈必须使用由 Amazon EBS 提供支持的根卷。

IAM 角色

(可选) 堆栈的 AWS Identity and Access Management (IAM) 角色,AWS OpsWorks Stacks 使用该角色代表您与 AWS 进行交互。您应使用由 AWS OpsWorks Stacks 创建的角色以确保它具有所有必需权限。如果您当前没有 AWS OpsWorks Stacks 角色,请选择 New IAM Role (新建 IAM 角色) 以让 AWS OpsWorks Stacks 为您创建新的 IAM 角色。有关更多信息,请参阅允许 AWS OpsWorks Stacks 代表您执行操作

默认 IAM 实例配置文件

(可选)要与堆栈的 Amazon EC2 实例关联的默认 IAM 角色。此角色向正在堆栈的实例上运行的应用程序授予对 AWS 资源 (如 S3 存储桶) 的访问权。

  • 要向应用程序授予特定权限,请选择具有适当策略的现有实例配置文件 (角色)。

  • 否则,请选择 New IAM Instance Profile (新建 IAM 实例配置文件),AWS OpsWorks Stacks 将为您创建新的实例配置文件。

  • 最初,配置文件的角色不授予任何权限,但您可以使用 IAM 控制台、API 或 CLI 来附加适当的策略。有关更多信息,请参阅 为在 EC2 实例上运行的应用程序指定权限

API 终端节点区域

此设置采用您在堆栈的基本设置中选择的区域中的值。您可以从以下区域终端节点中选择。

  • 美国东部(弗吉尼亚北部)地区

  • 美国东部(俄亥俄)区域

  • 美国西部(俄勒冈)区域

  • 美国西部(加利福利亚北部)区域

  • 加拿大 (中部) 区域(仅限 API;不适用于在 AWS 管理控制台中创建的堆栈)

  • 亚太地区(孟买)区域

  • 亚太区域(新加坡)

  • 亚太区域(悉尼)

  • 亚太区域(东京)

  • 亚太区域(首尔)

  • 欧洲(法兰克福)区域

  • 欧洲(爱尔兰)区域

  • 欧洲(伦敦)区域

  • 欧洲(巴黎)区域

  • 南美洲(圣保罗)区域

在一个 API 终端节点中创建的堆栈不适用于另一个 API 终端节点。由于 AWS OpsWorks Stacks 用户也是区域特定的,因此,如果您希望其中某个终端节点区域中的 AWS OpsWorks Stacks 用户管理另一个终端节点区域中的堆栈,则必须将这些用户导入将与堆栈关联的终端节点。有关导入用户的更多信息,请参阅将用户导入 AWS OpsWorks Stacks

主机名主题

(可选) 一个用于为每个实例生成默认主机名的字符串。默认值为 Layer Dependent,它使用实例层的短名称并向每个实例附加一个唯一的编号。例如,依赖角色的负载均衡器 主题根为“lb”。您添加到层的第一个实例名为“lb1”,您添加到层的第二个实例名为“lb2”,以此类推。

OpsWorks 代理版本

(可选) 是在新版本可用时自动更新 AWS OpsWorks Stacks 代理,还是使用指定的代理版本并手动更新它。此功能适用于 Chef 11.10 和 Chef 12 堆栈。默认设置为 Manual update,这将设置为最新代理版本。

AWS OpsWorks Stacks 在每个实例上安装一个代理,此代理将与服务进行通信并处理任务(例如,初始化 Chef 运行以响应生命周期事件)。此代理将定期更新。对于为堆栈指定代理版本,您有两个选项。

  • Auto-update (自动更新) – 当有更新可用时,AWS OpsWorks Stacks 会自动在堆栈的实例上安装每个新的代理版本。

  • Manual update (手动更新) – AWS OpsWorks Stacks 在堆栈的实例上安装指定的代理版本。

    在有新的代理版本可用时,AWS OpsWorks Stacks 会在堆栈页上发布消息,但不会更新堆栈的实例。要更新代理,您必须手动更新堆栈设置以指定新的代理版本,AWS OpsWorks Stacks 随后将更新堆栈的实例。

可以通过更新特定实例的配置来覆盖该实例的默认 OpsWorks Agent Version 设置。在此情况下,实例的设置优先。例如,假定默认设置为 Auto-update,而您为特定实例指定 Manual update。当 AWS OpsWorks Stacks 发布新的代理版本时,它将自动更新堆栈的所有实例,但设置为 Manual update (手动更新) 的实例除外。要在该实例上安装新的代理版本,您必须手动更新其配置并指定新版本。

注意

控制台将显示缩写的代理版本号。要查看完整版本号,请调用 AWS CLI describe-agent-versions 命令或等效的 API 或开发工具包方法。它们将返回可用代理版本的完整版本号。

自定义 JSON

(可选) 一个或多个格式化为 JSON 结构的属性。这些属性将合并为堆栈配置和部署属性,它们将安装到每个实例上并且可由配方使用。您可以使用自定义 JSON 来自定义配置设置,方式是覆盖指定默认设置的内置属性。有关更多信息,请参阅使用自定义 JSON

Security (安全性) 包含一个 Use OpsWorks security groups (使用 OpsWorks 安全组) 选项,您可使用此选项指定是否将 AWS OpsWorks Stacks 内置安全组与堆栈的层关联。

AWS OpsWorks Stacks 提供一套标准的内置安全组(一层一个),在默认情况下,每层关联一个安全组。Use OpsWorks security groups 可让您改为提供您自己的自定义安全组。有关更多信息,请参阅使用安全组

Use OpsWorks security groups 具有以下设置:

  • Yes (是) - AWS OpsWorks Stacks 自动将适当的内置安全组与每个层关联(默认设置)。

    您可以在创建一个层后将该层与额外的安全组关联,但无法删除内置安全组。

  • No (否) - AWS OpsWorks Stacks 不会将内置安全组与层关联。

    您必须创建适当的 EC2 安全组并将一个安全组与创建的每个层关联。但是,您仍然可以在创建时手动关联内置的安全组和层;只有需要自定义设置的层才必须要自定义安全组。

请注意以下几点:

  • 如果 Use OpsWorks security groups 设置为 Yes,则无法通过向层添加更严格的安全组来限制默认安全组的端口访问设置。对于多个安全组,Amazon EC2 会使用最宽松的设置。此外,您无法通过修改内置安全组配置来创建更严格的设置。当您创建堆栈时,AWS OpsWorks Stacks 会用标准设置覆盖内置安全组的配置,因此,您所做的任何更改都将在您下次创建堆栈时丢失。如果层需要比内置安全组更严格的安全组设置,请将 Use OpsWorks security groups 设置为 No,使用首选设置创建自定义安全组,并在创建时将它们分配给层。

  • 如果您意外删除 AWS OpsWorks Stacks 安全组并需要重新创建此安全组,则它必须是原始安全组的准确副本,包括组名称的大写形式。建议您让 AWS OpsWorks Stacks 为您重新创建组,而不是手动执行此任务。直接在同一个 AWS 区域(以及 VPC,如果有)中创建新的堆栈,AWS OpsWorks Stacks 将自动重新创建所有内置安全组,包括您删除的那个安全组。如果您不再需要该堆栈,则随后您可以删除它;安全组将保留。