为 Auto Scaling 组创建启动模板 - Amazon EC2 Auto Scaling

为 Auto Scaling 组创建启动模板

您必须首先使用启动 EC2 实例所需的参数创建一个启动模板,然后才能使用启动模板创建 Auto Scaling 组。这些参数包括 Amazon Machine Image(AMI)的 ID 和实例类型。

启动模板提供了 Amazon EC2 Auto Scaling 的全部功能以及 Amazon EC2 的较新功能,例如当前一代 Amazon EBS 预置 IOPS 卷(io2)、EBS 卷标记、T2 无限实例、Elastic Inference 和专属主机。

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

重要

在创建启动模板时,不会完全验证启动模板参数。如果您为参数指定了错误的值,或者如果您未使用受支持的参数组合,则任何实例都无法通过此启动模板启动。确保为参数指定的值正确,并使用支持的参数组合。例如,要使用基于 Arm 的 AWS Graviton 或 Graviton2 AMI 启动实例,您必须指定一个与 Arm 兼容的实例类型。

创建启动模板(控制台)

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

  • 指定要从其启动实例的 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 兼容的单个实例类型。

      如要启动包括多种实例类型的 Auto Scaling 组,请选择 Advanced(高级)、Specify instance type attributes(指定实例类型属性),然后指定以下选项:

      • 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(属性值)列表中,选择要排除的实例类型。

      有关更多信息,请参阅示例:使用基于属性的实例类型选择创建 Auto Scaling 组

    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. (可选)配置高级设置。有关更多信息,请参阅配置启动模板的高级设置

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

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

更改原定设置网络接口设置

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

注意事项和限制

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

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

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

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

  • 如果您指定多个网络接口,则不能自动分配公有 IPv4 地址。也无法跨网络接口指定重复的设备索引。主网络接口和辅助网络接口都驻留在同一子网中。有关更多信息,请参阅使用 Amazon VPC 为 Auto Scaling 实例提供网络连接

  • 实例启动时,系统会自动为每个网络接口分配一个私有地址。该地址来自启动实例的子网的 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:要支持高性能计算(HPC)使用案例,请将网络接口更改为某个 Elastic Fabric Adapter 网络接口。有关更多信息,请参阅适用于 Linux 实例的 Amazon EC2 用户指南中的 Elastic Fabric Adapter

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

  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 加密原定设置加密

      设置此参数的默认效果会随所选卷源而异,如下表所述。在所有情况下,您都必须拥有使用指定 AWS 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(是),则必须选择一个客户管理的密钥来加密该卷。如果默认情况下在此区域中启用了加密,则将为您选择默认的客户托管密钥。您可以选择其他密钥,或指定您之前使用 AWS Key Management Service 创建的任何客户管理的密钥的 ARN。

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

配置启动模板的高级设置

您可以定义 Auto Scaling 实例所需的任何其他功能。例如,您可以选择一个 IAM 角色,以供您的应用程序在访问其他 AWS 资源或指定实例启动后可用于执行常见自动配置任务的实例用户数据。

以下步骤讨论了需要注意的最有用的设置。有关任何设置的更多信息,请参阅高级详细信息适用于 Linux 实例的 Amazon EC2 用户指南中的创建启动模板

配置高级设置

  1. 对于高级详细信息,展开该节以查看字段。

  2. 对于购买选项,您可以选择选择请求竞价型实例可按照 Spot 价格请求 Spot 实例,以按需价格为上限;而选择自定义可更改默认竞价型实例设置。对于 Auto Scaling 组,必须指定不带结束日期的一次性请求(原定设置)。有关更多信息,请参阅为容错和灵活的应用程序请求竞价型实例

    注意

    Amazon EC2 Auto Scaling 使您能够覆盖启动模板中的实例类型,以创建使用多种实例类型并启动竞价型实例和按需型实例的 Auto Scaling 组。为此,您必须使启动模板中的 Purchasing option(购买选项)保持未指定状态。

    如果您尝试在已指定 Purchasing option(购买选项)的情况下使用启动模板创建混合实例组,您将收到以下错误。

    Incompatible launch template: You cannot use a launch template that is set to request Spot Instances (InstanceMarketOptions) when you configure an Auto Scaling group with a mixed instances policy. Add a different launch template to the group and try again.

    有关创建混合实例组的信息,请参阅 Auto Scaling 组具有多个实例类型和购买选项

  3. 对于 IAM 实例配置文件,您可以指定 AWS Identity and Access Management (IAM) 实例配置文件以与实例关联。当您选择实例配置文件时,会将对应的 IAM 角色与 EC2 实例关联。有关更多信息,请参阅 在 Amazon EC2 实例上运行的应用程序的 IAM 角色

  4. 对于终止保护,选择是否防止实例意外终止。当您启用终止保护时,它会提供额外的终止保护,但不会防止 Amazon EC2 Auto Scaling 启动终止。要控制 Auto Scaling 组是否可以终止特定实例,请使用 实例横向缩减保护

  5. 对于详细的 CloudWatch 监控,选择是否启用实例,以 1 分钟的间隔向 Amazon CloudWatch 发布指标数据。将收取额外费用。有关更多信息,请参阅配置 Auto Scaling 实例的监控

  6. 对于 Elastic inference(弹性推理):请选择要附加到 EC2 CPU 实例的弹性推理加速器。将收取额外费用。有关更多信息,请参阅 Amazon Elastic Inference 开发人员指南 中的使用 Amazon Elastic Inference

  7. 对于 T2/T3 无限,选择是否允许应用程序突增到基准以上所需的时间。此字段仅适用于 T2、T3 和 T3a 实例。可能收取额外费用。有关更多信息,请参阅适用于 Linux 实例的 Amazon EC2 用户指南中的使用 Auto Scaling 组以“无限”模式启动可突增性能实例

  8. 对于置放群组名称,指定在其中启动实例的置放群组。并非可以在置放群组中启动所有实例类型。如果使用某个指定其他置放群组的 CLI 命令配置 Auto Scaling 组,则 Auto Scaling 组的置放群组将会优先。

  9. 对于容量预留,您可以指定是在共享容量中、任何 open 容量预留中、特定容量预留中还是容量预留组中启动实例。有关更多信息,请参阅适用于 Linux 实例的 Amazon EC2 用户指南中的在现有容量预留中启动实例

  10. 对于租赁,您可以选择在共享硬件(共享)、专用硬件(专用)上运行您的实例,或者当使用主机资源组时,也可以在专用主机(专用主机)上运行您的实例。可能收取额外费用。

    如果您选择了专用主机,请填写以下信息:

    1. 对于租赁主机资源组,您可以为 BYOL AMI 指定要在专用主机上使用的主机资源组。在使用此功能之前,您不必先在您的账户中分配专用主机。无论何种情况,您的实例都会在专用主机上自动启动。请注意,基于许可证配置关联的 AMI 一次只能映射到一个主机资源组。有关更多信息,请参阅 AWS License Manager 用户指南中的主机资源组

  11. 对于许可证配置,您可以指定要使用的许可证配置。您可以根据指定的许可证配置启动实例,以跟踪您的许可证使用情况。有关更多信息,请参阅 License Manager 用户指南中的创建许可证配置

  12. 要为与此版本的启动模板关联的所有实例配置实例元数据选项,请执行以下操作:

    1. 对于元数据可访问,选择是启用还是禁用对实例元数据服务的 HTTP 终端节点的访问。预设情况下,将启用 HTTP 终端节点。如果您选择禁用终端节点,则会关闭对实例元数据的访问。只有在启用 HTTP 终端节点时,才可以指定要求 IMDSv2 的条件。

    2. 对于元数据版本,您可以选择在请求实例元数据时要求使用实例元数据服务版本 2 (IMDSv2)。如果您不指定值,原定设置为同时支持 IMDSv1 和 IMDSv2。

    3. 对于元数据标记响应跃点限制,您可以为元数据标记设置允许的网络跃点数。如果您未指定值,则原定设置为 1。

    有关更多信息,请参阅适用于 Linux 实例的 Amazon EC2 用户指南中的配置实例元数据服务

  13. 对于 User data(用户数据),您可以添加 shell 脚本和 cloud-init 指令,以在启动时自定义实例。有关更多信息,请参阅适用于 Linux 实例的 Amazon EC2 用户指南中的 启动时对 Linux 实例运行命令

    注意

    在启动时运行脚本会增加使实例做好准备以供使用所需的时间量。但是,您可以通过向 Auto Scaling 组添加生命周期钩子,在实例进入 InService 状态之前为脚本完成留出额外的时间。有关更多信息,请参阅Amazon EC2 Auto Scaling 生命周期钩子

  14. 选择创建启动模板

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

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

通过现有实例创建启动模板

  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

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

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

  4. 提供名称和说明。

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

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

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

其他信息

有关创建启动模板的附加信息,请参阅:

有关创建具有启动模板的 Auto Scaling 组的过程,请参阅以下主题:

限制

  • Amazon EC2 允许您在启动模板中配置子网。然而,该 Auto Scaling 组的子网设置将会优先于启动模板的子网设置。

  • 由于将忽略启动模板中的子网设置以支持在 Auto Scaling 组中指定的设置,因此为给定实例创建的所有网络接口都将连接到与实例相同的子网。有关用户定义网络接口的其他限制,请参阅 更改原定设置网络接口设置

  • 启动模板允许您在 Auto Scaling 组中配置其他设置以启动多个实例类型并组合按需型和竞价型购买选项,如 Auto Scaling 组具有多个实例类型和购买选项 中所述。如果在启动模板中指定竞价型实例请求,则不支持具有这种组合的实例启动。

  • 只有在指定主机资源组时,才可支持专用主机(主机租赁)。您不能定位特定主机 ID 或使用主机放置关联。