为 Auto Scaling 组创建启动模板 - Amazon EC2 Auto Scaling
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

为 Auto Scaling 组创建启动模板

在可以使用启动模板创建自动扩缩组之前,您必须创建启动模板,其中包含用于启动实例的配置信息,包括Amazon Machine Images (AMI)的 ID。

要创建新的启动模板,请使用以下过程。

重要

在创建启动模板时,不会完全验证启动模板参数。如果您为参数指定了错误的值,或者如果您未使用受支持的参数组合,则任何实例都无法通过此启动模板启动。确保为参数指定的值正确,并使用支持的参数组合。例如,要使用基于 Arm 的 Amazon Graviton 或 Graviton2 AMI 启动实例,您必须指定一个与 Arm 兼容的实例类型。有关更多信息,请参阅适用于 Linux 实例的 Amazon EC2 用户指南中的启动模板限制

创建启动模板(控制台)

以下步骤说明了配置基本启动模板的过程:

  • 指定要从其启动实例的 Amazon machine image(AMI)。

  • 选择一个与您指定的 AMI 兼容的实例类型。

  • 指定连接到实例时要使用的密钥对,例如使用 SSH。

  • 添加一个或多个安全组以允许对实例的网络访问。

  • 指定是否要为每个实例挂载附加卷。

  • 将自定义标签(键值对)添加到实例和卷。

创建启动模板
  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在导航窗格中的实例下,选择启动模板

  3. 选择 Create launch template (创建启动模板)。为启动模板的初始版本输入名称并提供描述。

  4. (可选)在 Auto Scaling 指导下,选中复选框让 Amazon EC2 提供指导,以帮助创建要与 Amazon EC2 Auto Scaling 结合使用的模板。

  5. Launch template contents(启动模板内容)下,填写每个必填字段以及所有可选字段。

    1. Application and OS Images (Amazon Machine Image) [应用程序和操作系统镜像(Amazon Machine Image)]:(必填项)选择实例 AMI 的 ID。您可以搜索所有可用的 AMI,也可以从 Recents(最近)或 Quick Start(快速启动)列表中选择一个 AMI。如果您没有看到所需的 AMI,请选择 Browser more AMIs(浏览更多 AMI)以浏览完整的 AMI 目录。

      要选择自定义 AMI,您必须首先从某个自定义实例创建该 AMI。有关更多信息,请参阅适用于 Linux 实例的 Amazon EC2 用户指南中的创建 AMI

    2. 对于 Instance type(实例类型),请选择与您指定的 AMI 兼容的单个实例类型。

      或者,要使用基于属性的实例类型选择,请选择高级指定实例类型属性,然后指定以下选项:

      • Number of vCPUs(vCPU 数):输入最小和最大 vCPU 数。若要表示为无限制,请输入最小值为 0,然后将最大值留空。

      • Amount of memory (MiB) [内存大小(MiB)]:输入最小和最大内存大小(以 MiB 为单位)。若要表示为无限制,请输入最小值为 0,然后将最大值留空。

      • 展开 Optional instance type attributes(可选的实例类型属性),然后选择 Add attribute(添加属性)以进一步限制可用于满足所需容量的实例类型。有关每个属性的信息,请参阅 Amazon EC2 API 参考InstanceRequirementsRequest中的。

      • Resulting instance types(结果实例类型):您可以查看符合指定计算要求的实例类型,例如 vCPU、内存和存储。

      • 要排除实例类型,请选择 Add Attribute(添加属性)。从 Attribute(属性)列表中,选择 Excluded instance types(排除的实例类型)。从 Attribute value(属性值)列表中,选择要排除的实例类型。

    3. Key pair (login) [密钥对(登录)]:对于 Key pair name(密钥对名称),请选择一个现有密钥对,或选择 Create new key pair(创建新密钥对)以新建一个密钥对。有关更多信息,请参阅《适用于 Linux 实例的 Amazon EC2 用户指南》中的 Amazon EC2 密钥对和 Linux 实例

    4. Network settings(网络设置):对于 Firewall (security groups) [防火墙(安全组)],请使用一个或多个安全组,或将此留空并将一个或多个安全组配置为网络接口的一部分。有关更多信息,请参阅《适用于 Linux 实例Amazon EC2 用户指南》 中的适用于 Linux 实例的 Amazon EC2 安全组

      如果您未在启动模板中指定任何安全组,则 Amazon EC2 将使用您的 Auto Scaling 组将在其中启动实例的 VPC 的原定设置安全组。预设情况下,此安全组不允许来自外部网络的入站流量。有关更多信息,请参阅《Amazon VPC 用户指南》中的您的 VPC 的原定设置安全组

    5. 请执行以下操作之一:

      • 更改原定设置网络接口设置。例如,您可以启用或禁用公有 IPv4 寻址功能,该功能会覆盖子网上的自动分配公有 IPv4 地址设置。有关更多信息,请参阅 更改默认网络接口设置(控制台)

      • 跳过此步骤以保留原定设置网络接口设置。

    6. 请执行以下操作之一:

    7. 对于 Resource tags(资源标签),请提供键值组合以指定标签。如果您在启动模板中指定了实例标签,然后选择将 Auto Scaling 组的标签传播到其实例,则所有标签都会合并。如果为启动模板中的标签和 Auto Scaling 组中的标签指定了相同的标签键,则优先使用该组中的标签值。

  6. (可选)配置高级设置。例如,您可以选择一个 IAM 角色,以供您的应用程序在访问其他 Amazon 资源或指定实例启动后可用于执行常见自动配置任务的实例用户数据。有关更多信息,请参阅 使用高级设置创建启动模板

  7. 准备好创建启动模板后,请选择 Create launch template(创建启动模板)。

  8. 要创建 Auto Scaling 组,请从确认页面上选择创建 Auto Scaling 组

更改默认网络接口设置(控制台)

网络接口提供与您的 VPC 中其他资源和互联网的连接。有关更多信息,请参阅 使用 Amazon VPC 为 Auto Scaling 实例提供网络连接

这一部分说明了如何更改原定设置网络接口设置。例如,您可以定义是否要为每个实例分配一个公有 IPv4 地址,而不是默认为子网上的自动分配公有 IPv4 地址设置。

注意事项和限制

更改原定设置网络接口设置时,请记住以下注意事项和限制:

  • 您必须将安全组配置为该网络接口的一部分,而不是在模板的 Security groups(安全组)部分中配置。您不能在这两处指定安全组。

  • 您不能为网络接口分配其他私有 IP 地址,即所谓的 secondary IP addresses(辅助私有 IP 地址)。

  • 如果指定现有的网络接口 ID,则只能启动一个实例。为此,您必须使用 Amazon CLI 或 SDK 创建 Auto Scaling 组。创建组时,必须指定可用区,但不指定子网 ID。此外,仅当现有网络接口的设备索引为 0 时才可指定该接口。

  • 如果您指定多个网络接口,则不能自动分配公有 IPv4 地址。也无法跨网络接口指定重复的设备索引。主网络接口和辅助网络接口都驻留在同一子网中。

  • 实例启动时,系统会自动为每个网络接口分配一个私有地址。该地址来自启动实例的子网的 CIDR 范围。有关为 VPC 或子网指定 CIDR 范围(或 IP 地址范围)的信息,请参阅 Amazon VPC 用户指南

更改原定设置网络接口设置
  1. Network settings(网络设置)下,展开 Advanced network configuration(高级网络配置)。

  2. 选择 Add network interface(添加网络接口)以配置主网络接口,同时应注意以下字段:

    1. Device index(设备索引):保留原定设置值 0 以将您的更改应用于主网络接口(eth0)。

    2. Network interface(网络接口):保留原定设置值 New interface(新接口),以让 Amazon EC2 Auto Scaling 在启动实例时自动创建一个新的网络接口。您也可以选择一个设备索引为 0 的现有可用网络接口,但这将您的 Auto Scaling 组限定为单个实例。

    3. Description(描述):(可选)请输入一个描述性的名称。

    4. Subnet(子网):保留原定设置 Don't include in launch template(不包括在启动模板中)。

      如果 AMI 指定了子网的网络接口,则会导致错误。我们建议关闭 Auto Scaling guidance(Auto Scaling 指南)以解决此问题。进行此更改后,您将不会收到错误消息。但无论指定的子网来自何处,Auto Scaling 组的子网设置将会优先,且不能被覆盖。

    5. Auto-assign public IP(自动分配公有 IP):更改设备索引为 0 的网络接口是否会收到公有 IPv4 地址。预设情况下,原定设置子网中的实例会收到一个公有 IPv4 地址,而非原定设置子网中的实例不会收到。选择启用禁用可以覆盖子网的默认设置。

    6. Security groups(安全组):为网络接口选择一个或多个安全组。对于 Auto Scaling 组会将实例启动到其中的 VPC,必须为其配置各个安全组。有关更多信息,请参阅《适用于 Linux 实例Amazon EC2 用户指南》 中的适用于 Linux 实例的 Amazon EC2 安全组

    7. Delete on termination(终止时删除):选择 Yes(是)以在实例终止时删除网络接口,或选择 No(否)以保留网络接口。

    8. Elastic Fabric Adapter:要支持高性能计算和机器学习使用案例,请将网络接口更改为某个 Elastic Fabric Adapter 网络接口。有关更多信息,请参阅《适用于 Linux 实例的 Amazon EC2 用户指南》中的 Elastic Fabric Adapter

    9. Network card index(网卡索引):选择 0 以将主要网络接口挂载到设备索引为 0 的网卡。如果此选项不可用,则保留原定设置 Don't include in launch template(不包括在启动模板中)。将网络接口挂载到特定网卡的功能仅适用于支持的实例类型。有关更多信息,请参阅适用于 Linux 实例的 Amazon EC2 用户指南中的网卡

    10. ENA Express:对于支持 ENA Express 的实例类型,请选择启用以启用 ENA Express,或者选择禁用以将其禁用。有关更多信息,请参阅适用于 Linux 实例的 Amazon EC2 用户指南中的在 Linux 实例上使用 ENA Express 提高网络性能

    11. ENA Express UDP:如果您启用 ENA Express,则可以选择将其用于 UDP 流量。选择 “启用” 启用 ENA Express UDP,或者选择 “禁用” 将其禁用。

  3. 要添加辅助网络接口,请选择添加网络接口

修改存储配置(控制台)

您可以修改从由 Amazon EBS-backed AMI 或实例存储支持的 AMI 启动的实例的存储配置。您还可以指定要挂载到实例的附加 EBS 卷。AMI 会包含一个或多个存储卷,包括根卷 [Volume 1 (AMI Root)] [卷 1(AMI 根)]。

修改存储配置
  1. Configure storage(配置存储)中,修改卷的大小或类型。

    如果指定的卷大小值超出相应卷类型的限制,或者小于快照大小,则会显示错误消息。此消息会提供有关该字段可以接受的最小值或最大值信息,以帮助您解决此问题。

    这时仅会显示与由 Amazon EBS-backed AMI 关联的卷。要显示从实例存储支持的 AMI 启动的实例的存储配置信息,请选择 Instance store volumes(实例存储卷)部分的 Show details(显示详细信息)。

    要指定所有 EBS 卷参数,请切换到右上角的 Advanced(高级)视图。

  2. 对于高级选项,请展开要修改的卷并按如下方式配置该卷:

    1. Storage type(存储类型):要与实例关联的卷类型(EBS 或临时卷)。仅当您选择支持实例存储(临时)卷类型的实例类型时,该卷类型才可用。有关更多信息,请参阅适用于 Linux 实例的 Amazon EC2 用户指南中的 Amazon EC2 实例存储Amazon EBS 卷

    2. Device name(设备名称):从卷的可用设备名称列表中进行选择。

    3. Snapshot(快照):选择要从其中创建卷的快照。您可以通过在 Snapshot(快照)字段中输入文本来搜索可用的共享快照和公有快照。

    4. Size (GiB)(大小 (GiB)):对于 EBS 卷,您可以指定存储大小。如果您选择了有资格享用免费套餐的 AMI 和实例,请记住,若要享用免费套餐,您必须将总存储大小保持为 30GiB 以下。有关更多信息,请参阅《适用于 Linux 实例的 Amazon EC2 用户指南》中的针对 EBS 卷的大小和配置的限制

    5. Volume type(卷类型):对于 EBS 卷,请选择该卷类型。有关更多信息,请参阅 Amazon EC2 用户指南(适用于 Linux 实例)中的 Amazon EBS 卷类型

    6. IOPS:如果您已选择预置 IOPS SSD(io1io2)以及通用型 SSD(gp3)卷类型,则您可以输入卷可支持的每秒输入/输出操作数(IOPS)。这对于 io1、io2 和 gp3 卷是必需的。gp2、st1、sc1 或标准卷不支持。

    7. Delete on termination(终止时删除):对于 EBS 卷,选择 Yes(是)以在终止实例时删除此卷或选择 No(否)以保留此卷。

    8. Encrypted(加密):如果实例类型支持 EBS 加密,则可以选择 Yes(是)以为此卷启用加密。如果默认情况下在此区域中启用了加密,则会为您启用加密。有关更多信息,请参阅《适用于 Linux 实例的 Amazon EC2 用户指南》中的 Amazon EBS 加密原定设置加密

      设置此参数的默认效果会随所选卷源而异,如下表所述。在所有情况下,您都必须拥有使用指定内容的权限 Amazon KMS key。

      加密结果
      如果 Encrypted 参数设置为... 如果卷源... 则默认加密状态为... 注意事项
      不支持 新(空)卷 未加密* 不适用
      您拥有的未加密快照 未加密*
      您拥有的加密快照 按相同密钥加密
      与您共享的未加密快照 未加密*
      与您共享的加密快照 由默认 KMS 密钥加密
      支持 新卷 由默认 KMS 密钥加密 要使用非原定设置 CMK 密钥,请为 KMS key(KMS 密钥)参数指定一个值。
      您拥有的未加密快照 由默认 KMS 密钥加密
      您拥有的加密快照 按相同密钥加密
      与您共享的未加密快照 由默认 KMS 密钥加密
      与您共享的加密快照 由默认 KMS 密钥加密

      * 如果启用了原定设置加密,则所有新创建的卷 [不论是否将 Encrypted(加密)参数设置为 Yes(是)] 都将使用原定设置 KMS 密钥。如果您同时设置了 Encrypted(加密)和 KMS key(KMS 密钥)参数,则可指定非原定设置 KMS 密钥。

    9. KMS key(KMS 密钥):如果您为 Encrypted(加密)选择的是 Yes(是),则必须选择一个客户管理的密钥来加密该卷。如果默认情况下在此区域中启用了加密,则将为您选择默认的客户托管密钥。您可以选择其他密钥,或指定您之前使用 Amazon Key Management Service创建的任何客户管理的密钥的 ARN。

  3. 要指定附加卷以挂载到此启动模板启动的实例,请选择 Add new volume(添加新卷)。

从现有实例创建启动模板(控制台)

通过现有实例创建启动模板
  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在导航窗格上的 Instances(实例)下,选择 Instances(实例)。

  3. 选择实例,然后依次选择操作图像和模板从实例创建模板

  4. 提供名称和说明。

  5. Auto Scaling 指导下,选中复选框。

  6. 根据需要调整任何参数,然后选择创建启动模板

  7. 要创建 Auto Scaling 组,请从确认页面上选择创建 Auto Scaling 组

我们提供了几个 JSON 和 YAML 模板片段,您可以使用它们来了解如何在 Amazon CloudFormation 堆栈模板中声明启动模板。有关更多信息,请参阅《用户指南》AWS::EC2::LaunchTemplate和《使用Amazon CloudFormation 用户指南》中的创建启动模板 Amazon CloudFormation部分。

有关启动模板的更多信息,请参阅适用于 Linux 实例的 Amazon EC2 用户指南中的从启动模板启动实例

限制

  • 虽然可以在启动模板中指定子网,但如果您仅使用启动模板创建自动扩缩组,则无需这样做。您无法通过在启动模板中指定子网来为自动扩缩组指定子网。自动扩缩组的子网取自自动扩缩组自己的资源定义。

  • 有关用户定义网络接口的其他限制,请参阅 更改默认网络接口设置(控制台)