从启动模板启动实例 - Amazon Elastic Compute Cloud

从启动模板启动实例

多项实例启动服务均支持启动模板。本主题介绍如何在使用 EC2 启动实例向导、Amazon EC2 Auto Scaling、EC2 实例集和竞价型实例集启动实例时,使用启动模板。

通过启动模板启动实例

您可以使用启动模板中包含的参数启动实例。在启动实例之前,您可以选择覆盖或添加启动参数。

将自动为使用启动模板启动的实例分配两个具有 aws:ec2launchtemplate:idaws:ec2launchtemplate:version 键的标签。您无法删除或编辑这些标签。

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

  2. 在导航窗格中,选择 Launch Templates

  3. 选择启动模板,然后依次选择操作从模板启动实例

  4. 对于 Source template version (源模板版本),选择要使用的启动模板版本。

  5. 对于 Number of instances (实例数),请指定要启动的实例数。

  6. (可选) 您可以在实例详细信息部分中更改和添加参数以覆盖或添加启动模板参数。

  7. 选择通过模板启动实例

AWS CLI
使用 AWS CLI 通过启动模板启动实例
  • 使用 run-instances 命令并指定 --launch-template 参数。可以选择指定要使用的启动模板版本。如果未指定版本,则使用默认版本。

    aws ec2 run-instances \ --launch-template LaunchTemplateId=lt-0abcd290751193123,Version=1
  • 要覆盖启动模板参数,请在 run-instances 命令中指定该参数。以下示例覆盖在启动模板 (如果有) 中指定的实例类型。

    aws ec2 run-instances \ --launch-template LaunchTemplateId=lt-0abcd290751193123 \ --instance-type t2.small
  • 如果指定复杂结构包含的嵌套参数,则使用启动模板中指定的复杂结构以及您指定的任何其他嵌套参数启动实例。

    在以下示例中,将使用标签 Owner=TeamA 以及在启动模板中指定的任何其他标签启动实例。如果启动模板包含具有 Owner 键的现有标签,该值将替换为 TeamA

    aws ec2 run-instances \ --launch-template LaunchTemplateId=lt-0abcd290751193123 \ --tag-specifications "ResourceType=instance,Tags=[{Key=Owner,Value=TeamA}]"

    在以下示例中,将使用具有设备名称 /dev/xvdb 的卷以及在启动模板中指定的任何其他块储存设备映射启动实例。如果启动模板为 /dev/xvdb 定义了一个现有的卷,它的值将替换为指定的值。

    aws ec2 run-instances \ --launch-template LaunchTemplateId=lt-0abcd290751193123 \ --block-device-mappings "DeviceName=/dev/xvdb,Ebs={VolumeSize=20,VolumeType=gp2}"

如果实例无法启动或状态立即转至 terminated 而非 running,请参阅 排查实例启动问题

PowerShell
使用 AWS Tools for PowerShell 通过启动模板启动实例
  • 使用 New-EC2Instance 命令并指定 -LaunchTemplate 参数。可以选择指定要使用的启动模板版本。如果未指定版本,则使用默认版本。

    Import-Module AWS.Tools.EC2 New-EC2Instance ` -LaunchTemplate ( New-Object -TypeName Amazon.EC2.Model.LaunchTemplateSpecification -Property @{ LaunchTemplateId = 'lt-0abcd290751193123'; Version = '4' } )
  • 要覆盖启动模板参数,请在 New-EC2Instance 命令中指定该参数。以下示例覆盖在启动模板 (如果有) 中指定的实例类型。

    Import-Module AWS.Tools.EC2 New-EC2Instance ` -InstanceType t4g.small ` -LaunchTemplate ( New-Object -TypeName Amazon.EC2.Model.LaunchTemplateSpecification -Property @{ LaunchTemplateId = 'lt-0abcd290751193123'; Version = '4' } )
  • 如果指定复杂结构包含的嵌套参数,则使用启动模板中指定的复杂结构以及您指定的任何其他嵌套参数启动实例。

    在以下示例中,将使用标签 Owner=TeamA 以及在启动模板中指定的任何其他标签启动实例。如果启动模板包含具有 Owner 键的现有标签,该值将替换为 TeamA

    Import-Module AWS.Tools.EC2 New-EC2Instance ` -InstanceType t4g.small ` -LaunchTemplate ( New-Object -TypeName Amazon.EC2.Model.LaunchTemplateSpecification -Property @{ LaunchTemplateId = 'lt-0abcd290751193123'; Version = '4' } ) ` -TagSpecification ( New-Object -TypeName Amazon.EC2.Model.TagSpecification -Property @{ ResourceType = 'instance'; Tags = @( @{key = "Owner"; value = "TeamA" }, @{key = "Department"; value = "Operations" } ) } )

    在以下示例中,将使用具有设备名称 /dev/xvdb 的卷以及在启动模板中指定的任何其他块储存设备映射启动实例。如果启动模板为 /dev/xvdb 定义了一个现有的卷,它的值将替换为指定的值。

    Import-Module AWS.Tools.EC2 New-EC2Instance ` -InstanceType t4g.small ` -LaunchTemplate ( New-Object -TypeName Amazon.EC2.Model.LaunchTemplateSpecification -Property @{ LaunchTemplateId = 'lt-0abcd290751193123'; Version = '4' } ) ` -BlockDeviceMapping ( New-Object -TypeName Amazon.EC2.Model.BlockDeviceMapping -Property @{ DeviceName = '/dev/xvdb'; EBS = ( New-Object -TypeName Amazon.EC2.Model.EbsBlockDevice -Property @{ VolumeSize = 25; VolumeType = 'gp3' } ) } )

如果实例无法启动或状态立即转至 terminated 而非 running,请参阅 排查实例启动问题

将启动模板与 Amazon EC2 Auto Scaling 结合使用

您可以创建一个 Auto Scaling 组,并指定一个用于该组的启动模板。在 Amazon EC2 Auto Scaling 启动 Auto Scaling 组中的实例时,它使用关联的启动模板中定义的启动参数。有关更多信息,请参阅《Amazon EC2 Auto Scaling 用户指南》中的为自动扩缩组创建启动模板

在可以使用启动模板创建 Auto Scaling 组之前,您必须创建启动模板,其中包括启动 Auto Scaling 组中的实例所需的参数,例如 AMI 的 ID。控制台提供指导,以帮助您创建可与 Amazon EC2 Auto Scaling 结合使用的模板。

使用控制台创建要与 Auto Scaling 结合使用的启动模板
  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在导航窗格中,选择启动模板,然后选择创建启动模板

  3. 对于设备模板名称,请为您的启动模板输入描述性名称。

  4. 对于模板版本说明,提供此版本的启动模板的简短说明。

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

  6. 根据需要修改启动参数。由于您选择了 Auto Scaling 指导,因此某些字段是必填字段,某些字段不可用。有关为 Amazon EC2 Auto Scaling 配置启动参数的信息,请参阅《Amazon EC2 Auto Scaling 用户指南》中的为自动扩缩组创建启动模板

  7. 选择Create launch template(创建启动模板)。

  8. (可选)要使用此启动模板创建自动扩缩组,请在 Next steps(后续步骤)页面中选择 Create Auto Scaling group(创建自动扩缩组)。

有关展示如何使用 AWS CLI 创建具有各种参数组合的启动模板的示例,请参阅《Amazon EC2 Auto Scaling 用户指南》中的使用 AWS Command Line Interface(AWS CLI)创建和管理启动模板的示例

使用 AWS CLI 通过启动模板创建或更新自动扩缩组

有关使用启动模板创建或更新自动扩缩组更多信息,请参阅《Amazon EC2 Auto Scaling 用户指南》中的以下主题。

将启动模板与 EC2 队列 结合使用

您可以创建一个 EC2 队列请求,并在实例配置中指定一个启动模板。在 Amazon EC2 完成 EC2 队列 请求时,它使用关联的启动模板中定义的启动参数。您可以覆盖启动模板中指定的某些参数。

有关更多信息,请参阅创建 EC2 队列

使用 AWS CLI 通过启动模板创建 EC2 实例集
  • 使用 create-fleet 命令。请使用 --launch-template-configs 参数指定启动模板,并为启动模板指定任何覆盖值。

将启动模板与 Spot 实例集结合使用

您可以创建一个 Spot 实例集请求,并在实例配置中指定一个启动模板。在 Amazon EC2 完成 Spot 实例集请求时,它使用关联的启动模板中定义的启动参数。您可以覆盖启动模板中指定的某些参数。

有关更多信息,请参阅创建 Spot 队列请求

使用控制台通过启动模板创建竞价型实例集请求
  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在导航窗格中,请选择 Spot Requests

  3. 选择请求 Spot 实例

  4. Launch parameters(启动参数)下,选择 Use a launch template(使用启动模板)。

  5. 对于 Launch template(启动模板),选择一个启动模板,然后从右侧字段中选择启动模板版本。

  6. 在此屏幕上选择不同的选项来配置竞价型实例集。有关选项的更多信息,请参阅使用已定义的参数创建 Spot 队列请求(控制台)

  7. 准备好创建竞价型实例集后,请选择 Launch(启动)。

使用 AWS CLI 通过启动模板创建 Spot 实例集请求
  • 使用 request-spot-fleet 命令。请使用 LaunchTemplateConfigs 参数指定启动模板,并为启动模板指定任何覆盖值。