通过启动模板启动实例 - Amazon Elastic Compute Cloud
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

通过启动模板启动实例

您可以创建一个启动模板,其中包含用于启动实例的配置信息。您可以在启动模板中存储启动参数,而无需在每次启动实例时都指定这些参数。例如,启动模板可能包含您通常用于启动实例的 AMI ID、实例类型和网络设置。在使用 Amazon EC2 控制台、AWS 软件开发工具包或命令行工具启动实例时,您可以指定要使用的启动模板。

对于每个启动模板,您可以创建一个或多个编号的启动模板版本。每个版本可能具有不同的启动参数。在通过启动模板启动实例时,您可以使用任何版本的启动模板。如果未指定版本,则使用默认版本。您可以将任何启动模板版本设置为默认版本 — 默认情况下,这是启动模板的第一个版本。

下图显示了具有三个版本的启动模板。第一个版本指定用于启动实例的实例类型、AMI ID、子网和密钥对。第二个版本基于第一个版本,并且还为实例指定了一个安全组。第三个版本在某些参数中使用不同的值。版本 2 设置为默认版本。如果通过该启动模板启动实例,并且未指定任何其他版本,则使用版本 2 中的启动参数。


            启动模板

启动模板限制

以下规则适用于启动模板和启动模板版本:

  • 您最多可以为每个区域创建 5,000 个启动模板,并且每个启动模板最多具有 10,000 个版本。

  • 启动模板参数是可选的。不过,您必须确保启动实例的请求包含所需的所有参数。例如,如果启动模板不包含 AMI ID,您必须在启动实例时指定启动模板和 AMI ID。

  • 在创建启动模板时,不会完全验证启动模板参数。如果您为参数指定了错误的值,或者如果您未使用受支持的参数组合,则任何实例都无法通过此启动模板启动。确保您为参数指定正确的值,并使用支持的参数组合。例如,要在置放群组中启动实例,您必须指定一种支持的实例类型。

  • 您可以标记启动模板,但无法标记启动模板版本。

  • 启动模板版本是按创建顺序编号的。在创建启动模板版本时,您无法自行指定版本号。

使用启动模板控制启动参数

启动模板可以包含用于启动实例的全部或部分参数。在使用启动模板启动实例时,您可以覆盖启动模板中指定的参数。或者,也可以指定在启动模板中不包含的额外参数。

注意

您无法在启动期间删除启动模板参数 (例如,无法为参数指定空值)。要删除某个参数,请创建不包含该参数的新启动模板版本,并使用该版本启动实例。

要启动实例,IAM 用户必须有权使用 ec2:RunInstances 操作。您还必须有权创建或使用创建或与该实例关联的资源。您可以使用 ec2:RunInstances 操作的资源级权限控制用户可以指定的启动参数。或者,您可以为用户授予使用启动模板启动实例的权限。这样,您就可以在启动模板中管理启动参数,而不是在 IAM 策略中管理,并将启动模板作为授权方法以启动实例。例如,您可以指定用户只能使用启动模板启动实例,并且他们只能使用特定的启动模板。您还可以控制用户可以在启动模板中覆盖的启动参数。有关示例策略,请参阅 启动模板

控制如何使用启动模板

默认情况下,IAM 用户无权使用启动模板。您可以创建一个 IAM 用户策略,以便为用户授予创建、修改、描述和删除启动模板和启动模板版本的权限。您还可以将资源级权限应用于某些启动模板操作,以控制用户能否在这些操作中使用特定的资源。有关更多信息,请参阅以下示例策略:示例:使用启动模板

在为用户授予使用 ec2:CreateLaunchTemplateec2:CreateLaunchTemplateVersion 操作的权限时,应格外小心。您不能使用资源级权限来控制用户可以在启动模板中指定的资源。要限制用于启动实例的资源,请确保仅为相应的管理员授予创建启动模板和启动模板版本的权限。

创建启动模板

使用定义的参数创建新的启动模板,或者将现有的启动模板或实例作为基础以创建新的启动模板。

使用您定义的参数创建新启动模板

新控制台

通过控制台使用定义的参数创建新启动模板

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

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

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

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

  5. 要在创建时标记启动模板,请展开 Template tags (模板标签),选择 Add tag (添加标签),然后输入标签键值对。

  6. 对于 Launch template contents (启动模板内容),请提供以下信息:

    • AMI:要从中启动实例的 AMI。要搜索所有可用 AMI,请选择 Search for AMI (搜索 AMI)。要选择常用的 AMI,请选择 Quick Start (快速入门)。或者,选择 AWS MarketplaceCommunity AMIs (社区 AMI)。您可以使用自己的 AMI,也可以查找合适的 AMI

    • Instance type (实例类型):确保实例类型与指定的 AMI 兼容。有关更多信息,请参阅实例类型

    • Key pair name (密钥对名称):实例的密钥对。有关更多信息,请参阅Amazon EC2 密钥对和 Windows 实例

    • Network platform (网络平台):如果适用,选择是将实例启动到 VPC 还是 EC2-Classic。如果选择 VPC,请在 Network interfaces (网络接口) 部分中指定子网。如果选择 Classic,请确保在 EC2 Classic 中支持指定的实例类型,并为实例指定可用区。

    • Security groups (安全组):一个或多个要与实例关联的安全组。如果将网络接口添加到启动模板,请省略此设置,并将安全组指定为网络接口规范的一部分。您无法从指定安全组和网络接口的启动模板中启动实例。有关更多信息,请参阅Windows 实例的 Amazon EC2 安全组

  7. 对于 Storage (volumes) (存储 (卷)),除了 AMI 指定的卷(Volume 1 (AMI Root) (卷 1 (AMI 根)))以外,还可以指定要附加到实例的卷。要添加新卷,请选择 Add new volume (添加新卷)

    • Volume type (卷类型):与实例关联的实例存储或 Amazon EBS 卷。卷类型取决于您选择的实例类型。有关更多信息,请参阅 Amazon EC2 实例存储Amazon EBS 卷

    • Device name (设备名称):卷的设备名称。

    • Snapshot (快照):用于创建卷的快照的 ID。

    • Size (大小)(对于 Amazon EBS 卷)存储大小。

    • Volume type (卷类型):(对于 Amazon EBS 卷)卷类型。有关更多信息,请参阅Amazon EBS 卷类型

    • IOPS:(对于 预配置 IOPS SSD 卷类型)卷可支持的每秒 I/O 操作数。

    • Delete on termination (终止时删除):对于 Amazon EBS 卷,选择在终止实例时是否删除卷。有关更多信息,请参阅在实例终止时保留 Amazon EBS 卷

    • 加密:如果实例类型支持 EBS 加密,则可以为卷启用加密。如果默认情况下在此区域中启用了加密,则会为您启用加密。有关更多信息,请参阅 Amazon EBS 加密

    • Key (密钥):要用于 EBS 加密的 CMK。您可以指定您使用 AWS Key Management Service 创建的任何客户主密钥 (CMK) 的 ARN。如果指定 CMK,还必须使用加密来启用加密。

  8. 对于资源标签,请提供键值组合以指定标签。您可以为实例、卷、Spot 实例请求或这三者添加标签。

  9. 对于网络接口,您可以为实例最多指定两个网络接口

    • Device index (设备索引):网络接口的设备号;例如,eth0 表示主网络接口。如果将该字段保留空白,AWS 将创建主网络接口。

    • Network interface (网络接口):网络接口的 ID,或者保留空白以让 AWS 创建新的网络接口。

    • Description (描述):(可选)新网络接口的描述。

    • Subnet (子网):要在其中创建新网络接口的子网。对于主网络接口 (eth0),这是在其中启动实例的子网。如果为 eth0 输入了现有的网络接口,将在该网络接口所在的子网中启动实例。

    • Auto-assign public IP (自动分配公有 IP):指定是否自动为设备索引为 eth0 的网络接口分配公有 IP 地址。只能为单个新网络接口启用该设置。

    • Primary IP (主要 IP):您的子网范围内的一个私有 IPv4 地址。保留空白会让 AWS 为您选择一个私有 IPv4 地址。

    • Secondary IP (辅助 IP):您的子网范围内的一个辅助私有 IPv4 地址。保留空白会让 AWS 为您选择一个辅助私有 IPv4 地址。

    • (仅限 IPv6) IPv6 IP:子网范围内的一个 IPv6 地址。

    • 安全组:VPC 中要与网络接口关联的一个或多个安全组。

    • Delete on termination (终止时删除):选择在删除实例时是否删除网络接口。

  10. 对于Advanced details (高级详细信息),请展开该部分以查看字段并为实例指定任何其他参数。

    • Purchasing option (购买选项):购买模式。选择 Request Spot Instances (请求 Spot 实例) 可按照 Spot 价格请求 Spot 实例,以按需价格为上限;而选择 Customize (自定义) 可更改默认 Spot 实例设置。如果您未请求 Spot 实例,则默认情况下 EC2 会启动 个按需实例。有关更多信息,请参阅Spot 实例

    • IAM instance profile (IAM 实例配置文件):要与实例关联的 AWS Identity and Access Management (IAM) 实例配置文件。有关更多信息,请参阅适用于 Amazon EC2 的 IAM 角色

    • Shutdown behavior (关闭操作):选择关闭时实例应该停止还是终止。有关更多信息,请参阅更改实例启动的关闭操作

    • Stop - Hibernate behavior (停止 - 休眠操作):选择是否为实例启用休眠。此字段仅适用于满足休眠先决条件的实例。有关更多信息,请参阅使 Windows 实例休眠

    • Termination protection (终止保护):选择是否禁止意外终止。有关更多信息,请参阅启用终止保护

    • Detailed CloudWatch monitoring (详细的 CloudWatch 监控): 是否使用 Amazon CloudWatch 启用实例的详细监控。将收取额外费用。有关更多信息,请参阅使用 CloudWatch 监控实例

    • Elastic GPU (弹性 GPU):要附加到实例的 Elastic Graphics 加速器。并非所有实例类型都支持 Elastic Graphics。有关更多信息,请参阅Amazon Elastic Graphics

    • Elastic inference (弹性推理):要连接到 EC2 CPU 实例的弹性推理加速器。有关更多信息,请参阅 Amazon Elastic Inference 开发人员指南 中的使用 Amazon Elastic Inference

    • T2/T3 Unlimited (T2/T3 无限):选择是否允许应用程序突增到基准以上所需的时间。此字段仅适用于 T2、T3 和 T3a 实例。可能收取额外费用。有关更多信息,请参阅可突增性能实例

    • Placement group name (置放群组名称):指定要在其中启动实例的置放群组。并非可以在置放群组中启动所有实例类型。有关更多信息,请参阅置放群组

    • EBS-optimized instance (EBS 优化的实例):为 Amazon EBS I/O 提供额外的专用容量。并非所有实例类型都支持该功能,并且会产生额外的费用。有关更多信息,请参阅Amazon EBS 优化的实例

    • 容量预留:指定是在共享容量中、任何 open 容量预留中、特定容量预留中还是现有容量预留组中启动实例。有关更多信息,请参阅在现有容量预留中启动实例

    • Tenancy (租期):选择是在共享硬件(Shared (共享))、隔离的专用硬件(Dedicated (专用)),还是在 专用主机(Dedicated host (专用主机))上运行您的实例。如果您选择在专用主机上启动实例,则可以指定是否在主机资源组中启动实例,也可以定位特定专用主机。可能收取额外费用。有关更多信息,请参阅 专用实例专用主机

    • RAM disk ID (RAM 磁盘 ID):(仅对半虚拟 (PV) AMIs 有效)实例的 RAM 磁盘。如果您指定了一个内核,则可能需要指定带有可支持该内核的驱动程序的某个特定 RAM 磁盘。

    • Kernel ID (内核 ID):(仅对半虚拟 (PV) AMIs 有效 )实例的内核。

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

    • Metadata accessible (元数据可访问):是启用还是禁用对实例元数据的访问。有关更多信息,请参阅配置实例元数据服务

    • Metadata version (元数据版本):如果您启用对实例元数据的访问,您可以选择在请求实例元数据时要求使用 实例元数据服务版本 2。有关更多信息,请参阅为新实例配置实例元数据选项

    • 元数据响应跳数限制:如果启用实例元数据,则可以为元数据标记设置允许的网络跃点数。有关更多信息,请参阅配置实例元数据服务

    • User data:您可以指定用户数据在启动时配置实例或运行配置脚本。有关更多信息,请参阅 启动时在 Windows 实例上运行命令

  11. 选择创建启动模板

旧控制台

通过控制台使用定义的参数创建新启动模板

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

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

  3. 对于设备模板名称,请为您的启动模板输入描述性名称。要在创建时标记启动模板,请选择显示标签添加标签,然后输入标签键/值对。

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

  5. 对于 Launch template contents (启动模板内容),请提供以下信息:

    • AMI ID:要从中启动实例的 AMI。要搜索所有可用 AMI,请选择 Search for AMI (搜索 AMI)。要选择常用的 AMI,请选择 Quick Start (快速入门)。或者,选择 AWS MarketplaceCommunity AMIs (社区 AMI)。您可以使用自己的 AMI,也可以查找合适的 AMI

    • Instance type (实例类型):确保实例类型与指定的 AMI 兼容。有关更多信息,请参阅实例类型

    • Key pair name (密钥对名称):实例的密钥对。有关更多信息,请参阅Amazon EC2 密钥对和 Windows 实例

    • Network type (网络类型):如果适用,选择是将实例启动到 VPC 还是 EC2-Classic。如果选择 VPC,请在 Network interfaces (网络接口) 部分中指定子网。如果选择 Classic,请确保在 EC2 Classic 中支持指定的实例类型,并为实例指定可用区。

    • Security Groups (安全组):一个或多个要与实例关联的安全组。有关更多信息,请参阅Windows 实例的 Amazon EC2 安全组

  6. 对于网络接口,您可以为实例最多指定两个网络接口

    • Device (设备):网络接口的设备号;例如,eth0 表示主网络接口。如果将该字段保留空白,AWS 将创建主网络接口。

    • Network interface (网络接口):网络接口的 ID,或者保留空白以让 AWS 创建新的网络接口。

    • Description (描述):(可选)新网络接口的描述。

    • Subnet (子网):要在其中创建新网络接口的子网。对于主网络接口 (eth0),这是在其中启动实例的子网。如果为 eth0 输入了现有的网络接口,将在该网络接口所在的子网中启动实例。

    • Auto-assign public IP (自动分配公有 IP):指定是否自动为设备索引为 eth0 的网络接口分配公有 IP 地址。只能为单个新网络接口启用该设置。

    • Primary IP (主要 IP):您的子网范围内的一个私有 IPv4 地址。保留空白会让 AWS 为您选择一个私有 IPv4 地址。

    • Secondary IP (辅助 IP):您的子网范围内的一个辅助私有 IPv4 地址。保留空白会让 AWS 为您选择一个辅助私有 IPv4 地址。

    • (仅限 IPv6) IPv6 IP:子网范围内的一个 IPv6 地址。

    • Security group ID (安全组 ID):您的 VPC 中与网络接口关联的安全组的 ID。

    • Delete on termination (终止时删除):选择在删除实例时是否删除网络接口。

  7. 对于存储 (卷),除了 AMI 指定的卷以外,还可以指定要附加到实例的卷。

    • Volume type (卷类型):与实例关联的实例存储或 Amazon EBS 卷。卷类型取决于您选择的实例类型。有关更多信息,请参阅 Amazon EC2 实例存储Amazon EBS 卷

    • Device name (设备名称):卷的设备名称。

    • Snapshot (快照):用于创建卷的快照的 ID。

    • Size (大小)(对于 Amazon EBS 卷)存储大小。

    • Volume type (卷类型):(对于 Amazon EBS 卷)卷类型。有关更多信息,请参阅Amazon EBS 卷类型

    • IOPS:(对于 预配置 IOPS SSD 卷类型)卷可支持的每秒 I/O 操作数。

    • Delete on termination (终止时删除):对于 Amazon EBS 卷,选择在终止实例时是否删除卷。有关更多信息,请参阅在实例终止时保留 Amazon EBS 卷

    • 加密:如果实例类型支持 EBS 加密,则可以为卷启用加密。如果默认情况下在此区域中启用了加密,则会为您启用加密。有关更多信息,请参阅 Amazon EBS 加密

    • Key (密钥):要用于 EBS 加密的 CMK。您可以指定您使用 AWS Key Management Service 创建的任何客户主密钥 (CMK) 的 ARN。如果指定 CMK,还必须使用加密来启用加密。

  8. 对于 Instance tags (实例标签),请提供键和值组合以指定标签。您可以标记实例、卷或两者。

  9. 对于 Advanced Details (高级详细信息),请展开该部分以查看字段并为实例指定任何其他参数。

    • Purchasing option (购买选项):购买模式。选择 Request Spot instances (请求 Spot 实例) 可按照 Spot 价格请求 Spot 实例,以按需价格为上限;而选择 Customize Spot parameters (自定义 Spot 参数) 可更改默认 Spot 实例 设置。如果您未请求 Spot 实例,则默认情况下 EC2 会启动 个按需实例。有关更多信息,请参阅Spot 实例

    • IAM instance profile (IAM 实例配置文件):要与实例关联的 AWS Identity and Access Management (IAM) 实例配置文件。有关更多信息,请参阅适用于 Amazon EC2 的 IAM 角色

    • Shutdown behavior (关闭操作):选择关闭时实例应该停止还是终止。有关更多信息,请参阅更改实例启动的关闭操作

    • Stop - Hibernate behavior (停止 - 休眠操作):选择是否为实例启用休眠。此字段仅适用于满足休眠先决条件的实例。有关更多信息,请参阅使 Windows 实例休眠

    • Termination protection (终止保护):选择是否禁止意外终止。有关更多信息,请参阅启用终止保护

    • Monitoring (监控):选择是否使用 Amazon CloudWatch 启用实例详细监控。将收取额外费用。有关更多信息,请参阅使用 CloudWatch 监控实例

    • Elastic Graphics:要附加到实例的 Elastic Graphics 加速器。并非所有实例类型都支持 Elastic Graphics。有关更多信息,请参阅Amazon Elastic Graphics

    • T2/T3 Unlimited (T2/T3 无限):选择是否允许应用程序突增到基准以上所需的时间。此字段仅适用于 T2 和 T3 实例。可能收取额外费用。有关更多信息,请参阅可突增性能实例

    • Placement group name (置放群组名称):指定要在其中启动实例的置放群组。并非可以在置放群组中启动所有实例类型。有关更多信息,请参阅置放群组

    • EBS-optimized instance (EBS 优化的实例):为 Amazon EBS I/O 提供额外的专用容量。并非所有实例类型都支持该功能,并且会产生额外的费用。有关更多信息,请参阅Amazon EBS 优化的实例

    • Tenancy (租期):选择是在共享硬件(Shared (共享))、隔离的专用硬件(Dedicated (专用)),还是在 专用主机(Dedicated host (专用主机))上运行您的实例。如果您选择在专用主机上启动实例,则可以指定是否在主机资源组中启动实例,也可以定位特定专用主机。可能收取额外费用。有关更多信息,请参阅 专用实例专用主机

    • RAM 磁盘 ID:实例的 RAM 磁盘。如果您指定了一个内核,则可能需要指定带有可支持该内核的驱动程序的某个特定 RAM 磁盘。仅对半虚拟化 (PV) AMIs 有效。

    • 内核 ID:实例的内核。仅对半虚拟化 (PV) AMIs 有效。

    • User data:您可以指定用户数据在启动时配置实例或运行配置脚本。有关更多信息,请参阅 启动时在 Windows 实例上运行命令

  10. 选择创建启动模板

AWS CLI

使用 AWS CLI 创建启动模板

  • 使用 create-launch-template 命令。下面的示例创建一个指定以下内容的启动模板:

    • 启动模板的标签 (purpose=production)

    • 要启动的实例类型 (r4.4xlarge) 和 AMI (ami-8c1be5f6)

    • 总共 8 个 vCPU 的内核数 (4) 和每内核线程数 (2)(4 个内核 x 2 个线程)

    • 要在其中启动实例的子网 (subnet-7b16de0c)

    该模板会向实例分配一个公有 IP 地址和一个 IPv6 地址,并为实例创建一个标签 (Name=webserver)。

    aws ec2 create-launch-template \ --launch-template-name TemplateForWebServer \ --version-description WebVersion1 \ --tag-specifications 'ResourceType=launch-template,Tags=[{Key=purpose,Value=production}]' \ --launch-template-data file://template-data.json

    下面是一个 template-data.json 示例文件。

    { "NetworkInterfaces": [{ "AssociatePublicIpAddress": true, "DeviceIndex": 0, "Ipv6AddressCount": 1, "SubnetId": "subnet-7b16de0c" }], "ImageId": "ami-8c1be5f6", "InstanceType": "r4.4xlarge", "TagSpecifications": [{ "ResourceType": "instance", "Tags": [{ "Key":"Name", "Value":"webserver" }] }], "CpuOptions": { "CoreCount":4, "ThreadsPerCore":2 } }

    下面是示例输出。

    { "LaunchTemplate": { "LatestVersionNumber": 1, "LaunchTemplateId": "lt-01238c059e3466abc", "LaunchTemplateName": "TemplateForWebServer", "DefaultVersionNumber": 1, "CreatedBy": "arn:aws:iam::123456789012:root", "CreateTime": "2017-11-27T09:13:24.000Z" } }

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

新控制台

使用控制台从现有启动模板创建启动模板

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

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

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

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

  5. 要在创建时标记启动模板,请展开 Template tags (模板标签),选择 Add tag (添加标签),然后输入标签键值对。

  6. 展开源模板,对于启动模板名称,选择要作为新启动模板基础的启动模板。

  7. 对于源模板版本,请选择新启动模板版本所基于的启动模板版本。

  8. 根据需要,调整任何启动参数,然后选择Create launch template (创建启动模板)

旧控制台

使用控制台从现有启动模板创建启动模板

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

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

  3. 选择创建启动模板。提供启动模板的名称、描述和标签。

  4. 对于源模板,请选择新启动模板所基于的启动模板。

  5. 对于源模板版本,请选择新启动模板版本所基于的启动模板版本。

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

从实例创建启动模板

新控制台

使用控制台通过实例创建启动模板

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

  2. 在导航窗格中,选择 Instances (实例)

  3. 选择所需实例,然后依次选择操作从实例创建模板

  4. 提供名称、描述和标签,然后根据需要调整启动参数。

    注意

    通过实例创建启动模板时,该实例的网络接口 ID 和 IP 地址将不包含在模板中。

  5. 选择创建启动模板

旧控制台

使用控制台通过实例创建启动模板

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

  2. 在导航窗格中,选择 Instances (实例)

  3. 选择所需实例,然后依次选择 Actions (操作)Create Template From Instance (从实例创建模板)

  4. 提供名称、描述和标签,然后根据需要调整启动参数。

    注意

    通过实例创建启动模板时,该实例的网络接口 ID 和 IP 地址将不包含在模板中。

  5. 选择 Create Template From Instance (从实例创建模板)

AWS CLI

您可以使用 AWS CLI 从现有实例创建启动模板,方法是先从实例获取启动模板数据,然后使用启动模板数据创建启动模板。

使用 AWS CLI 从实例获取启动模板数据

  • 使用 get-launch-template-data 命令,并指定实例 ID。您可以将输出作为基础以创建新的启动模板或启动模板版本。默认情况下,输出包含一个顶级 LaunchTemplateData 对象,无法在启动模板数据中指定该对象。请使用 --query 选项排除该对象。

    aws ec2 get-launch-template-data \ --instance-id i-0123d646e8048babc \ --query "LaunchTemplateData"

    下面是示例输出。

    { "Monitoring": {}, "ImageId": "ami-8c1be5f6", "BlockDeviceMappings": [ { "DeviceName": "/dev/xvda", "Ebs": { "DeleteOnTermination": true } } ], "EbsOptimized": false, "Placement": { "Tenancy": "default", "GroupName": "", "AvailabilityZone": "us-east-1a" }, "InstanceType": "t2.micro", "NetworkInterfaces": [ { "Description": "", "NetworkInterfaceId": "eni-35306abc", "PrivateIpAddresses": [ { "Primary": true, "PrivateIpAddress": "10.0.0.72" } ], "SubnetId": "subnet-7b16de0c", "Groups": [ "sg-7c227019" ], "Ipv6Addresses": [ { "Ipv6Address": "2001:db8:1234:1a00::123" } ], "PrivateIpAddress": "10.0.0.72" } ] }

    您可以将输出直接写入到一个文件中,例如:

    aws ec2 get-launch-template-data \ --instance-id i-0123d646e8048babc \ --query "LaunchTemplateData" >> instance-data.json

使用启动模板数据创建启动模板

使用 create-launch-template 命令可以使用上一步骤的输出创建启动模板。有关使用 AWS CLI 创建启动模板的更多信息,请参阅使用您定义的参数创建新启动模板

管理启动模板版本

您可以为特定启动模板创建启动模板版本,设置默认版本,描述启动模板版本以及删除不再需要的版本。

创建启动模板版本

在创建启动模板版本时,您可以指定新的启动参数,或者将现有版本作为基础以创建新的版本。有关启动参数的更多信息,请参阅创建启动模板

新控制台

使用控制台创建启动模板版本

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

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

  3. 选择启动模板,然后依次选择 Actions 操作Modify template (Create new version) (修改模板(创建新版本))

  4. 对于 Template version description (模板版本说明),输入启动模板版本的说明。

  5. (可选)展开 Source template (源模板) ,然后选择要用作新启动模板版本基础的启动模板版本。新启动模板版本从此启动模板版本继承启动参数。

  6. 根据需要修改启动参数,然后选择创建启动模板

旧控制台

使用控制台创建启动模板版本

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

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

  3. 选择创建启动模板

  4. 对于您要做什么,选择创建新模板版本

  5. 对于启动模板名称,从列表中选择现有启动模板的名称。

  6. 对于 Template version description (模板版本说明),输入启动模板版本的说明。

  7. (可选)选择启动模板的版本或其他启动模板的版本,以用作新启动模板版本的基础。新启动模板版本从此启动模板版本继承启动参数。

  8. 根据需要修改启动参数,然后选择创建启动模板

AWS CLI

使用 AWS CLI 创建启动模板版本

  • 使用 create-launch-template-version 命令。您可以指定新版本所基于的源版本。新版本从此版本继承启动参数,您可以使用 --launch-template-data 覆盖参数。以下示例根据启动模板的版本 1 创建新的版本并指定不同的 AMI ID。

    aws ec2 create-launch-template-version \ --launch-template-id lt-0abcd290751193123 \ --version-description WebVersion2 \ --source-version 1 \ --launch-template-data "ImageId=ami-c998b6b2"

设置默认启动模板版本

您可以设置启动模板的默认版本。如果通过启动模板启动实例并且未指定版本,将使用默认版本的参数启动实例。

新控制台

使用控制台设置默认启动模板版本

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

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

  3. 选择启动模板,然后依次选择操作设置默认版本

  4. 对于 Template version (模板版本),选择要设置为默认版本的版本号,然后选择 Set as default version (设置为默认版本)

旧控制台

使用控制台设置默认启动模板版本

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

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

  3. 选择启动模板,然后依次选择操作设置默认版本

  4. 对于默认版本,请选择版本号,然后选择设置为默认版本

AWS CLI

使用 AWS CLI 设置默认启动模板版本

  • 使用 modify-launch-template 命令,并指定要设置为默认版本的版本。

    aws ec2 modify-launch-template \ --launch-template-id lt-0abcd290751193123 \ --default-version 2

描述启动模板版本

使用控制台,您可以查看所选启动模板的所有版本,或获取其最新版本或默认版本与特定版本号匹配的启动模板列表。使用 AWS CLI,您可以描述指定启动模板的所有版本、单个版本或一系列版本。您还可以描述账户中所有启动模板的所有最新版本或所有默认版本。

新控制台

使用控制台描述启动模板版本

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

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

  3. 您可以查看特定启动模板的某个版本,或获取其最新版本或默认版本与特定版本号匹配的启动模板列表。

    • 要查看启动模板的版本,请执行以下操作:选择该启动模板。在版本选项卡上,从版本中选择一个版本以查看其详细信息。

    • 要获取最新版本与特定版本号匹配的所有启动模板的列表,请执行以下操作:从搜索栏中选择最新版本,然后选择版本号。

    • 要获取其默认版本与特定版本号匹配的所有启动模板的列表,请执行以下操作:从搜索栏中选择默认版本,然后选择版本号。

AWS CLI

使用 AWS CLI 描述启动模板版本

  • 使用 describe-launch-template-versions 命令,并指定版本号。在以下示例中,指定了版本 1 和版本 3。

    aws ec2 describe-launch-template-versions \ --launch-template-id lt-0abcd290751193123 \ --versions 1 3

使用 AWS CLI 描述您账户中的所有最新的和默认的启动模板版本

  • 使用 describe-launch-template-versions 命令并指定 $Latest 和/或 $Default。您必须在调用中省略启动模板 ID 和名称。您不能指定版本号。

    aws ec2 describe-launch-template-versions \ --versions "$Latest,$Default"

删除启动模板版本

如果不再需要某个启动模板版本,您可以将其删除。在删除该版本后,无法替换版本号。您无法删除启动模板的默认版本;您必须先分配一个不同的版本以作为默认版本。

新控制台

使用控制台删除启动模板版本

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

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

  3. 选择启动模板,然后依次选择操作删除模板版本

  4. 选择要删除的版本,然后选择 Delete (删除)

旧控制台

使用控制台删除启动模板版本

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

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

  3. 选择启动模板,然后依次选择操作删除模板版本

  4. 选择要删除的版本,然后选择删除启动模板版本

AWS CLI

使用 AWS CLI 删除启动模板版本

  • 使用 delete-launch-template-versions 命令,并指定要删除的版本号。

    aws ec2 delete-launch-template-versions \ --launch-template-id lt-0abcd290751193123 \ --versions 1

通过启动模板启动实例

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

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

新控制台

使用控制台通过启动模板启动实例

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

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

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

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

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

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

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

旧控制台

使用控制台通过启动模板启动实例

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

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

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

  4. 选择要使用的启动模板版本。

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

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

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

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

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

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

使用控制台创建要与 Auto Scaling 结合使用的启动模板

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

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

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

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

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

  6. 根据需要修改启动参数。由于您选择了 Auto Scaling 指导,因此某些字段是必填字段,某些字段不可用。有关创建启动模板时要记住的注意事项以及有关如何为 Auto Scaling 配置启动参数的信息,请参阅 Amazon EC2 Auto Scaling 用户指南 中的 为 Auto Scaling 组创建启动模板

  7. 选择创建启动模板

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

使用 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 队列 请求

使用 AWS CLI 通过启动模板创建 Spot 队列请求

  • 使用 request-spot-fleet 命令。请使用 LaunchTemplateConfigs 参数指定启动模板,并为启动模板指定任何覆盖值。

删除启动模板

如果不再需要某个启动模板,您可以将其删除。如果删除启动模板,则会删除该模板的所有版本。

新控制台

删除启动模板(控制台)

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

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

  3. 选择启动模板,然后依次选择操作删除模板

  4. 输入 Delete 以确认删除,然后选择删除

旧控制台

删除启动模板(控制台)

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

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

  3. 选择启动模板,然后依次选择操作删除模板

  4. 选择删除启动模板

AWS CLI

删除启动模板 (AWS CLI)

  • 使用 delete-launch-template (AWS CLI) 命令,并指定启动模板。

    aws ec2 delete-launch-template --launch-template-id lt-01238c059e3466abc