使用启动模板来启动 EC2 实例 - Amazon Elastic Compute Cloud

使用启动模板来启动 EC2 实例

Amazon EC2 启动模板可存储实例启动参数,以便无需在每次启动实例时都指定这些参数。

一些实例启动服务在启动实例时可以选择使用启动模板,而对于其他服务,如 EC2 实例集,除非使用启动模板,否则无法启动实例。本主题介绍如何在使用 EC2 启动实例向导、Amazon EC2 Auto Scaling、EC2 实例集和竞价型实例集启动实例时,使用启动模板。

有关启动模板的更多信息,包括如何创建启动模板,请参阅在 Amazon EC2 启动模板中存储实例启动参数

使用启动模板启动 Amazon EC2 实例

您可以使用启动模板中包含的参数启动 Amazon EC2 实例。选择启动模板后,但在启动实例之前,您可以修改启动参数。

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

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

  2. 使用以下选项之一选择启动模板:

    • 从 Amazon EC2 控制台的控制面板中,选择启动实例旁边的向下箭头,选择从模板启动实例,然后对源模板选择启动模板。

    • 在导航窗格中,选择启动模板,选择该启动模板,然后选择操作从模板启动实例

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

  4. (可选)您可以修改任何启动参数的值。如果您未修改值,则使用启动模板定义的值。如果启动模板中未指定任何值,则使用该参数的默认值。

  5. 摘要面板中,对于实例数,输入要启动的实例数量。

  6. 选择启动实例

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

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,请参阅 排查 Amazon EC2 实例启动问题

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 实例启动问题

使用启动模板在 Amazon EC2 Auto Scaling 组中启动实例

您可以创建一个 Auto Scaling 组,并指定一个用于该组的启动模板。在 Amazon EC2 Auto Scaling 启动 Auto Scaling 组中的实例时,它使用关联的启动模板中定义的启动参数。

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

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

有关更多信息,请参阅《Amazon EC2 Auto Scaling User Guide》中的以下主题:

使用启动模板启动 EC2 实例集

创建 EC2 实例集请求时,启动模板是必需的。在 Amazon EC2 完成 EC2 队列 请求时,它使用关联的启动模板中定义的启动参数。您可以覆盖启动模板中指定的某些参数。有关更多信息,请参阅创建 EC2 实例集

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

使用启动模板启动竞价型实例集

创建竞价型实例集请求时,启动模板是可选。如果您未使用启动模板,则可以手动指定启动参数。如果使用启动模板,则在 Amazon EC2 完成竞价型实例集请求时,它会使用关联的启动模板中定义的启动参数。您可以覆盖启动模板中指定的某些参数。有关更多信息,请参阅 创建 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(启动)。

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