通过启动模板启动实例 - Amazon Elastic Compute Cloud

通过启动模板启动实例

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

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

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


            启动模板

启动模板限制

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

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

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

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

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

  • 启动模板不可改变。要修改启动模板,必须创建新版本启动模板。

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

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

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

注意

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

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

控制启动模板的使用

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

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

创建启动模板

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

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

您可以使用控制台或 AWS CLI 创建启动模板:

控制台

要创建启动模板,您必须指定启动模板名称和至少一个实例配置参数。

启动模板参数在启动模板中进行分组。以下说明将引导您完成每个参数组。

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

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

启动模板名称、描述和标签
  1. 对于设备模板名称,请为您的启动模板输入描述性名称。

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

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

    注意

    要标记启动实例时创建的资源,必须在 Resource tags(资源标签)下面指定标签。有关更多信息,请参阅资源标签

应用程序和操作系统镜像 (Amazon Machine Image)

Amazon Machine Image (AMI) 中包含了创建实例所需的信息。例如,AMI 可能包含充当 Web 服务器所需的软件,例如 Windows、Apache 和您的网站。

您可以找到适合的 AMI,如下所示。通过查找 AMI 的每个选项,您可以选择右上角的 Cancel(取消)以返回启动模板,而不选择 AMI。

搜索栏

要搜索所有可用的 AMI,请在 AMI 搜索栏中输入关键字,然后按 Enter 键。要选择 AMI,请选择 Select(选择)。

最近使用的项目

您最近使用的 AMI。

选择 Recently launched(最近启动)或 Currently in use(当前使用),然后在 Amazon Machine Image (AMI) 中,选择一个 AMI。

我的 AMI

您拥有的私有 AMI,或与您共享的私有 AMI。

选择 Owned by me(我拥有的)或 Shared with me(与我共享),然后在 Amazon Machine Image (AMI) 中选择一个 AMI。

Quick Start(快速入门)

AMI 按操作系统 (OS) 分组以助您快速入门。

首先选择所需的操作系统,然后从 Amazon Machine Image (AMI) 中选择一个 AMI。要选择符合免费套餐条件的 AMI,请确保该 AMI 已标记 Free tier eligible(符合免费套餐条件)。

浏览更多 AMI

选择 Browse more AMIs(浏览更多 AMI)以浏览完整的 AMI 目录。

  • 要搜索所有可用的 AMI,请在搜索栏中输入关键字,然后按 Enter 键。

  • 要按类别搜索,请依次选择 Quickstart AMIMy AMIs(我的 AMI)、AWS Marketplace AMI 或者 Community AMIs(社区 AMI)。

    AWS Marketplace 是一个在线商店,您可以从中购买在 AWS 上运行的软件(包括 AMI)。有关从 AWS Marketplace 启动实例的更多信息,请参阅启动 AWS Marketplace 实例。在 Community AMIs(社区 AMI)中,您可以找到 AWS 社区成员提供给其它人使用的 AMI。

  • 要筛选 AMI 列表,请在屏幕左侧的 Refine results(优化结果)下方选中一个或多个复选框。筛选条件选项会因所选搜索类别而有所不同。

  • 检查对每个 AMI 列出的 Virtualization type (虚拟化类型)。注意哪些 AMI 类型是您需要的类型:即 hvm(全虚拟化)或 paravirtual(半虚拟化)。例如,一些实例类型需要 HVM。

  • 检查对每个 AMI 列出的启动模式。请注意哪些 AMI 使用您需要的启动模式:即 legacy-biosuefi。有关更多信息,请参阅启动模式

  • 选择满足您的需求的 AMI,然后选择 Select

实例类型

实例类型定义了实例的硬件配置和大小。更大的实例类型拥有更多的 CPU 和内存。有关更多信息,请参阅实例类型

对于 Instance type(实例类型),可以选择一个实例类型或指定实例属性并让 Amazon EC2 使用这些属性识别实例类型。

注意

仅当使用 Auto Scaling 组、EC2 机群和竞价型实例集来启动实例时,才支持指定实例属性。有关更多信息,请参阅使用基于属性的实例类型选择创建 Auto Scaling 组EC2 机群的基于属性的实例类型选择竞价型实例集的基于属性的实例类型选择

如果您计划使用启动实例向导中的启动模板,或搭配使用 RunInstances API,则必须选择实例类型。

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

  • 比较实例类型:您可以通过以下属性比较不同的实例类型:vCPU 数、架构、内存量 (GiB)、存储量 (GB)、存储类型和网络性能。

  • Advanced(高级):若要指定实例属性并让 Amazon EC2 使用这些属性识别实例类型,请选择 Advanced(高级),然后选择 Specify instance type attributes(指定实例类型属性)。

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

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

    • 展开 Optional instance type attributes(可选的实例类型属性),然后选择 Add attribute(添加属性)以更详细地表达您的计算需求。有关每个属性的信息,请参阅 Amazon EC2 API 参考中的 InstanceRequirementsRequest

    • Resulting instance types(生成的实例类型):您可以预览与指定属性匹配的实例类型。若要排除实例类型,请选择 Add attribute(添加属性),并从 Attribute(属性)列表中选择 Excluded instance types(排除的实例类型)。从 Attribute value(属性值)列表中,选择要排除的实例类型。

密钥对(登录)

实例的密钥对。

Key pair name(密钥对名称)选择一个现有密钥对,或选择 Create new key pair(创建新密钥对)来新建一个密钥对。有关更多信息,请参阅Amazon EC2 密钥对和 Windows 实例

Network settings (网络设置)

根据需要配置网络设置。

  • (仅当 EC2-Classic 在您的账户中可用时才出现)Networking platform(联网平台):是启动实例到 VPC 还是 EC2-Classic(如适用)。

    • 如果选择 Virtual Private Cloud (VPC),则指定子网。

    • 如果选择 EC2-Classic,请确保在 EC2-Classic 中支持指定的实例类型,并为实例指定可用区。请注意,我们将于 2022 年 8 月 15 日停用 EC2-Classic。

  • 子网:您可以在与可用区、本地扩展区、Wavelength 区域或 Outpost 关联的子网中启动实例。

    要在可用区中启动实例,请选择要在其中启动实例的子网。要创建新子网,请选择 Create new subnet 转到 Amazon VPC 控制台。完成此操作后,返回到向导并选择 Refresh(刷新)图标,以便将您的子网加载到列表中。

    要在本地区域中启动实例,请选择您在本地区域中创建的子网。

    要在 Outpost 中启动实例,请在 VPC 中选择与 Outpost 关联的子网。

  • Firewall (security groups)[防火墙(安全组)]:使用一个或多个安全组为实例定义防火墙规则。这些规则指定哪些传入的网络流量可传输到您的实例。所有其他的流量将被忽略。有关安全组的更多信息,请参阅 适用于 Windows 实例的 Amazon EC2 安全组

    添加网络接口时,您必须在网络接口中指定相同安全组。

    按如下所示进行选择或创建安全组:

    • 要选择现有安全组,请选择 Select an existing security group(选择现有安全组),然后从 Common security groups(通用安全组)中选择您的安全组。

    • 要创建新安全组,请选择 Create security group(创建安全组)。

      您可以根据需要添加规则。例如,如果您的实例是 Web 服务器,请打开端口 80 (HTTP) 和 443 (HTTPS) 以允许 Internet 流量。

      要添加规则,请选择 Add security group rule(添加安全组规则)。对于 Type(类型),请选择网络流量类型。将使用为网络流量打开的协议自动填充 Protocol(协议)字段。对于 Source type(源类型),请选择一种源类型。如需让启动模板添加您计算机的公有 IP 地址,请选择 My IP(我的 IP)。但是,如果您在没有静态 IP 地址的情况下通过 ISP 或从防火墙后面进行连接,则您需要了解客户端电脑使用的 IP 地址范围。

      警告

      如果您要短时启动测试实例并将很快停止或终止,那么允许所有 IP 地址 (0.0.0.0/0) 通过 SSH 或 RDP 访问您的实例的规则是可以接受的,但此规则对生产环境来说是不安全的。您应该仅授权特定 IP 地址或特定范围内的 IP 地址访问您的实例。

  • Advanced network configuration(高级网络配置)

    网络接口

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

    • Network interface(网络接口):选择 New interface(新接口)即可让 Amazon EC2 创建新的接口,或选择现有且可用的网络接口。

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

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

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

    • Auto-assign public IP(自动分配公有 IP):指定您的实例是否会收到公有 IPv4 地址。默认情况下,默认子网中的实例会收到公有 IPv4 地址,而非默认子网中的实例不会收到。可以选择 Enable (启用)Disable (禁用) 以覆盖子网的默认设置。有关更多信息,请参阅公有 IPv4 地址

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

    • Secondary IP(辅助 IP):您的子网范围内的一个或多个其它私有 IPv4 地址。选择 Manually assign(手动分配)然后输入 IP 地址。选择 Add IP(添加 IP)以添加另一个 IP 地址。或者,选择 Automatically assign(自动分配)以使 Amazon EC2 来为您选择,然后输入一个值来指明要添加的 IP 地址的数量。

    • (仅限 IPv6) IPv6 IP:子网范围内的一个 IPv6 地址。选择 Manually assign(手动分配)然后输入 IP 地址。选择 Add IP(添加 IP)以添加另一个 IP 地址。或者,选择 Automatically assign(自动分配)以使 Amazon EC2 来为您选择,然后输入一个值来指明要添加的 IP 地址的数量。

    • IPv4 前缀:网络接口的 IPv4 前缀。

    • IPv6 前缀:网络接口的 IPv6 前缀。

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

    • Elastic Fabric Adapter:指示网络接口是否为 Elastic Fabric Adapter。有关更多信息,请参阅 Elastic Fabric Adapter

    • 网卡索引 :网卡的索引。必须将主网络接口分配给网卡索引 0。有些实例类型支持多个网卡。

    选择 Add network interface(添加网络接口)以添加更多网络接口。您可以添加的网络接口数量取决于选定实例类型支持的数量。辅助网络接口可以与 VPC 位于不同的子网中,但必须位于您的实例所在的可用区内。

    有关更多信息,请参阅弹性网络接口。如果指定多个网络接口,则您的实例无法收到公有 IPv4 地址。此外,如果您为 eth0 指定某个现有网络接口,则无法使用 Auto-assign Public IP 覆盖子网的公有 IPv4 设置。有关更多信息,请参阅在实例启动期间分配公有 IPv4 地址

配置存储

如果您为启动模板指定了 AMI,则 AMI 会包含一个或多个存储卷,包括根卷 Volume 1 (AMI Root) [卷 1(AMI 根目录)]。您可以指定要附加到实例的其它卷。

您可以使用 Simple(简单)或 Advanced(高级)视图。在 Simple(简单)视图中,您可以指定卷的大小和类型。若要指定所有卷参数,请选择位于卡片的右上角的 Advanced(高级)视图。

要添加新卷,请选择 Add new volume(添加新卷)。

Advanced(高级)视图中,您可以按如下方式配置每个卷:

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

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

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

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

  • 卷类型:对于 EBS 卷,请选择卷类型。有关更多信息,请参阅Amazon EBS 卷类型

  • IOPS:如果您已选择预置 IOPS SSD(io1io2)以及通用型 SSD(gp3)卷类型,则您可以输入卷可支持的每秒输入/输出操作数(IOPS)。这对于 io1、io2 和 gp3 卷是必需的。gp2、st1、sc1 或标准卷不支持。如果您省略了启动模板中的此参数,必须在从启动模板启动实例时指定其值。

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

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

  • KMS key(KMS 密钥):如果您将 Encrypted(加密)选择为 Yes(是),则您必须选择一个客户托管式密钥来加密卷。如果默认情况下在此区域中启用了加密,则将为您选择默认的客户托管密钥。您可以选择不同的密钥或指定由您创建的任何客户托管密钥的 ARN。

资源标签

标记启动实例时创建的资源,在 Resource tags(资源标签)下,选择 Add tag(添加标签),然后输入标签键值对。对于 Resource types(资源类型),指定创建时要标记的资源。您可以为所有资源指定相同的标签,也可以为不同的资源指定不同的标签。为每个要添加的其它标签选择 Add tag(添加标签)。

您可以为使用启动模板时创建的以下资源指定标签:

  • 实例

  • Elastic Graphics

  • 竞价型实例请求

  • 网络接口

注意

要为启动模板本身添加标签,您必须在 Template tags(模板标签)下指定标签。有关更多信息,请参阅启动模板名称、描述和标签

高级详细信息

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

  • Purchasing option(购买选项):选择 Request Spot Instances(请求竞价型实例)即可按照 Spot 价格请求竞价型实例,以按需价格为上限,而选择 Customize(自定义)即可更改默认的竞价型实例设置。您可以设置最高价(不建议),并更改请求类型、请求时长和中断行为。如果您未请求竞价型实例,则预设情况下 EC2 会启动按需型实例。有关更多信息,请参阅Spot Instances

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

  • Hostname type(主机名类型):选择实例的来宾操作系统主机名将包括资源名称还是 IP 名称。有关更多信息,请参阅Amazon EC2 实例主机名类型

  • DNS Hostname(DNS 主机名):确定对资源名称或 IP 名称的 DNS 查询(根据您对 Hostname type(主机名类型)的选择)是否将以 IPv4 地址(A 记录)、IPv6 地址(AAAA 记录)响应,还是同时以两者响应。有关更多信息,请参阅Amazon EC2 实例主机名类型

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

  • Stop - Hibernate behavior(停止 – 休眠行为):要启用休眠,请选择 Enable(启用)。此字段仅适用于满足休眠先决条件的实例。有关更多信息,请参阅休眠 Windows 按需型实例

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

  • Stop protection(停止保护):为防止意外停止,请选择 Enable(启用)。有关更多信息,请参阅启用停止保护

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

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

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

  • Credit specification(积分规范):选择 Unlimited(无限)以允许应用程序只要有需要即突增到基准以上。此字段仅适用于 T 实例。可能收取额外费用。有关更多信息,请参阅可突增性能实例

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

  • EBS-optimized instance(EBS 优化的实例):选择 Enable(启用)为 Amazon EBS 输入/输出提供额外的专用容量。并非所有实例类型都支持此功能。将收取额外费用。有关更多信息,请参阅Amazon EBS 优化的实例

  • Capacity Reservation(容量预留):指定是在任何开放容量预留 [Open(开放)]、特定容量预留 [Target by ID(按 ID 定位)],还是容量预留组 [Target by group(按组定位)] 中启动实例。要指定不使用容量预留,请选择 None(无)。有关更多信息,请参阅在现有 容量预留 中启动实例

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

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

  • Kernel ID(内核 ID):[仅对半虚拟 (PV) AMI 有效] 为实例选择一个内核。

  • Nitro Enclave:允许您从 Amazon EC2 实例创建隔离的执行环境,称为 Enclave。选择 Enable(启用)以启用 AWS Nitro Enclaves 的实例。有关更多信息,请参阅 AWS Nitro Enclaves 用户指南中的什么是 AWS Nitro Enclaves?

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

  • Specify CPU options(指定 CPU 选项):选择 Specify CPU options(指定 CPU 选项)可在启动期间指定自定义 vCPU 数。设置 CPU 内核数和每内核线程数。有关更多信息,请参阅优化 CPU 选项

  • 元数据传输:您可以根据实例的 IP 地址类型(IPv4、IPv6 或 IPv4 和 IPv6)启用或禁用对此 EC2 实例可用的实例元数据服务的访问方法。有关更多信息,请参阅检索实例元数据

  • Metadata accessible (元数据可访问):您可以启用或禁用对实例元数据的访问。有关更多信息,请参阅为新实例配置实例元数据选项

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

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

  • Allow tags in metadata(允许元数据中的标签):如果选择 Enable(启用),该实例将允许从其元数据访问其所有标签。如果不在模板中包含此设置,则默认情况下,将不允许对实例元数据中的标签的访问。有关更多信息,请参阅允许访问实例元数据中的标签

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

摘要

使用 Summary(摘要)面板来查看启动模板配置并创建启动模板。

  • 查看启动模板的详细信息并进行任何必要的更改。您可以在 Summary(摘要)面板选择某部分的链接以直接导航到该部分。

  • 当您准备好创建启动模板时,请选择 Create launch template(创建启动模板)。

AWS CLI

要创建启动模板,您必须指定启动模板名称和至少一个实例配置参数。

使用 AWS CLI 创建启动模板

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

    • 启动模板的名称(TemplateForWebServer

    • 启动模板的描述(WebVersion1

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

    • 在 JSON 文件中指定的实例配置数据:

      • 要启动的实例类型 (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

    以下是一个示例 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" } }

从现有启动模板创建启动模板

您可以克隆现有的启动模板,然后调整参数以创建新的启动模板。但是,您只能在使用 Amazon EC2 控制台时执行此操作;AWS CLI 不支持克隆模板。

Console

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

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

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

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

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

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

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

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

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

从实例创建启动模板

Console

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

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

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

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

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

    注意

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

  5. 选择创建启动模板

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 创建启动模板的更多信息,请参阅使用您定义的参数创建新启动模板

修改启动模板(管理启动模板版本)

启动模板是不可变的;在创建启动模板之后,您无法修改它。相反,您可以创建包含所需更改的新版本启动模板。

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

创建启动模板版本

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

Console

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

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

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

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

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

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

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

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"

设置默认启动模板版本

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

Console

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

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

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

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

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

AWS CLI

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

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

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

描述启动模板版本

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

Console

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

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

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

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

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

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

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

AWS CLI

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

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

    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"

删除启动模板版本

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

Console

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

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

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

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

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

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 键的标签。您无法删除或编辑这些标签。

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

将启动模板与 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.aws.amazon.com/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 参数指定启动模板,并为启动模板指定任何覆盖值。

删除启动模板

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

Console

删除启动模板(控制台)

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

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

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

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

AWS CLI

删除启动模板 (AWS CLI)

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

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