配置 Windows AMI 以实现快速启动
必须对每个 EC2 Windows 实例执行标准的 Windows 操作系统(OS)启动步骤,其中包括多次重启,通常需要 15 分钟或更长时间才能完成。为更快启动而优化的 Windows AMI 可以完成其中一些步骤并提前重启,方法是在后台启动一组实例,然后在完成初始启动步骤后创建快照。在更快启动过程中使用这些快照可以显著减少在需要实例时启动实例所需的时间。
当您配置 Windows AMI 以加快启动速度时,Amazon EC2 会根据您的设置自动为您创建快照,您只需为该流程消耗的资源付费。该过程与 EBS 快速快照还原不同。EBS 快速快照还原必须逐个启用,并且会产生相关的成本。
任何有权访问启用了更快启动的 AMI 的账户都可以从缩短的启动时间中受益。但是,提供用于启动的快照的是 AMI 拥有者的账户。
关键术语
-
预置的快照 – 满足以下条件的实例的快照:已从启用更快启动的 Windows AMI 启动,完成了下列 Windows 启动步骤并根据需要重启。Amazon EC2 会根据您的配置自动创建这些快照。
-
Sysprep 专门化
-
Windows 全新体验(OOBE)
完成这些步骤后,Amazon EC2 会停止实例并创建一个快照,这样即可缩短以后从 AMI 启动的时间。
-
-
启动频率 – 控制 Amazon EC2 可在指定时间范围内启动的预置快照的数量。为 AMI 启用更快启动时,Amazon EC2 会在后台创建一组初始的预置快照。例如,如果启动频率设置为每小时启动五次(默认值),则 Amazon EC2 会创建一组初始的预置快照(共五张)。
当 Amazon EC2 从启用了更快启动的 AMI 启动实例时,它使用其中一个预置快照来缩短启动时间。使用快照时,它们会自动补充,最多不超过启动频率指定的数量。
如果您预计从 AMI 启动的实例数量会飙升(例如,在特殊活动期间),则可以提前提高启动频率以覆盖所需的其他实例。当启动速率恢复正常时,您可以重新调低频率。
当您遇到的启动次数超过预期时,您可能会耗尽可用的更快启动快照。这不会导致任何启动失败。但是,它可能会导致某些实例经历标准启动过程,直到可以补充快照为止。
-
目标资源计数 – 为启用了更快启动的 AMI 预留的预置快照数量。
-
最大并行启动数 – 控制一次可以启动多少个实例以创建预置快照。如果您的目标资源数高于您配置的最大并行启动数,Amazon EC2 将首先启动最大并行启动数设置中为创建快照指定的实例数量。在这些实例完成流程的过程中,Amazon EC2 会创建快照并停止实例,更多实例会启动,直至可用快照总数达到目标资源计数。此值必须等于或大于 6。
资源成本
配置 Windows AMI 以实现更快启动时,无需支付服务费。但是,准备和存储预置快照的底层 Amazon 资源会以标准定价收费。以下示例展示了如何分配相关成本。
示例场景:AtoZ Example 公司有一个具有 50 GiB EBS 根卷的 Windows AMI。它们可以帮助更快地启动 AMI,并将目标资源计数设置为五。在一个月的期限内,使用 Windows 更快启动 AMI 的成本约为 5.00 美元,成本细目如下:
-
当 AtoZ Example 启用更快启动时,Amazon EC2 会启动五个小型实例。每个实例都会完成 Sysprep 和 OOBE Windows 启动步骤,并根据需要重启。每个实例需要几分钟时间(时长可能有所不同,具体取决于该区域或可用区(AZ)的忙闲状况以及 AMI 的大小)。
成本
-
实例运行时成本(或最小运行时 [如适用]):五个实例
-
卷成本:五个 EBS 根卷
-
-
预置过程完成后,Amazon EC2 会创建实例的快照并将其存储在 Simple Storage Service(Amazon S3)中。快照通常会存储 4-8 小时,然后才会被启动消耗。在这种情况下,每张快照的成本大约为 0.02 至 0.05 美元。
成本
-
快照存储 [Simple Storage Service(Amazon S3)]:五张快照
-
-
Amazon EC2 创建快照后,会停止实例。此时,实例不再累积成本。但是,EBS 卷的成本会继续累积。
成本
-
EBS 卷:关联的 EBS 根卷的成本会继续增加。
-
此处显示的成本仅用于演示目的。成本可能有所不同,具体取决于您的 AMI 配置和定价套餐。
在账单上追踪快速启动的成本
成本分配标签可以帮助您整理 Amazon 账单以反映与 EC2 Windows 实例的快速启动相关的成本。Amazon EC2 在准备和存储预置的快照以加快启动速度时,会将以下标签添加到创建的资源中,您可以使用该标签:
标签键:CreatedBy,值:EC2 Fast Launch
在 Billing and Cost Management 控制台中激活这些标签并设置详细账单报告后,报告中会显示 user:CreatedBy 列。该列包含来自所有服务的值。但是,如果您下载了 CSV 文件,则可以将数据导入电子表格,然后在值中筛选 EC2 Fast Launch。标签激活后,此信息也会显示在 Amazon Cost and Usage Report 中。
步骤 1:激活用户定义的成本分配标签
要在成本报告中包含资源标签,您必须先在 Billing and Cost Management 控制台中激活这些标签。有关更多信息,请参阅《Amazon Billing and Cost Management 用户指南》中的激活用户定义的成本分配标签。
激活时间可能长达 24 小时。
步骤 2:设置成本报告
如果您已经设置了成本报告,则在激活完成后,下次运行报告时会显示您的标签列。若是首次设置成本报告,请选择以下选项之一。
-
请参阅《Amazon Billing and Cost Management 用户指南》中的设置月度成本分配报告。
-
请参阅 Amazon Cost and Usage Report User Guide(《Amazon Cost and Usage Report 用户指南》)中的 Creating Cost and Usage Reports(创建成本和使用率报告)。
Amazon 最多可能需要 24 小时才能开始将报告传输到 Amazon S3 存储桶。
您可以使用 Amazon EC2 控制台、API、开发工具包或 Amazon CLI 中的 ec2 命令配置您拥有的 Windows AMI 以加快启动速度。以下部分介绍了 Amazon EC2 控制台和 Amazon CLI 的配置步骤。
目录
先决条件
在为 EC2 Windows 实例设置更快的启动之前,请验证是否满足以下先决条件:
-
如果您不使用启动模板配置设置,确保为 EC2 Windows 实例使用更快启动的区域配置了默认 VPC。即使您配置了默认 VPC,也无法在该区域启用 EC2 Classic。要了解有关 EC2 Classic 的更多信息,请参阅 EC2-Classic 联网正在停用 - 下面介绍如何准备
。 注意 如果您在计划为 EC2 Windows 实例配置更快启动的区域中意外删除了默认 VPC,则可以在该区域创建新的默认 VPC。要了解更多信息,请参阅 Amazon VPC 用户指南中的创建默认 VPC。
-
要指定非默认 VPC,您必须在配置 Windows 加快启动时使用启动模板。有关更多信息,请参阅在设置更快启动时使用启动模板。
-
如果账户包含对 Amazon EC2 实例强制实施 IMDSv2 的策略,您必须创建一个启动模板来指定元数据配置以强制实施 IMDSv2。
-
要更改启用了更快启动的 EC2 Windows 实例的设置,您的 Amazon 账户必须拥有 Windows AMI。
-
您用于为 EC2 Windows 实例配置更快启动的 Windows AMI 必须使用 Sysprep 与关闭选项创建。在未运行 Sysprep 的情况下从实例创建的 AMI 目前不受支持。要使用 Sysprep 创建 AMI,请参阅 创建自定义 Windows AMI。
在设置更快启动时使用启动模板
您可以使用启动模板配置一组启动参数,Amazon EC2 每次从该模板启动实例时都会使用这些参数。您可以指定用于基础映像的 AMI、实例类型、存储、网络设置等内容。启动模板是可选的,但以下特定情况除外:在配置更快启动时,必须为 Windows AMI 使用启动模板:
-
您必须使用启动模板为 Windows AMI 指定非默认 VPC。
-
如果账户包含对 Amazon EC2 实例强制实施 IMDSv2 的策略,您必须创建一个启动模板来指定元数据配置以强制实施 IMDSv2。
使用包含 EC2 控制台的元数据配置的启动模板,或在 Amazon CLI 中运行 enable-fast-launch 命令,或调用 EnableFastLaunch API 操作。
指定非默认 VPC
步骤 1:创建启动模板
从 Amazon Web Services Management Console 或 Amazon CLI 创建一个启动模板,并在其中为 Windows 实例指定 VPC。有关更多信息,请参阅创建启动模板。
步骤 2:为更快启动 AMI 指定启动模板
-
要为 EC2 Windows 实例指定启动模板以加快启动速度,请遵照以下步骤:
通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/
。 -
在导航窗格中,在映像下选择 AMI。
-
通过选择 Name(名称)旁边的复选框来选择要更新的 AMI。
-
从 AMI 列表上方的 Actions(操作)菜单中,选择 Manage image optimization(管理镜像优化)。这将打开 Manage image optimizations(管理镜像优化)页面,您可以在其中配置设置以加快启动速度。
-
Launch template(启动模板)框执行筛选搜索,在当前区域的账户中查找与您输入的文本相匹配的启动模板。在框中输入完整的启动模板名称或 ID 或其一部分,以显示匹配的启动模板列表。例如,如果您在框中输入
fast,Amazon EC2 会在当前区域中查找您的账户中名称包含“fast”的所有启动模板。要创建启动模板,请选择 Create launch template(创建启动模板)。
-
当您选择某个启动模板时,Amazon EC2 会在 Source template version(源模板版本)框中显示该模板的默认版本。要指定其他版本,请突出显示要替换的默认版本,然后在框中输入所需的版本号。
-
完成更改后,选择 Save changes(保存更改)。
-
当您在 Amazon CLI 中运行 enable-fast-restores 命令时,在
--launch-template参数中指定启动模板名称或 ID。 -
当您调用 EnableFastLaunch API 操作时,在
LaunchTemplate参数中指定启动模板名称或 ID。
有关 EC2 启动模板的更多信息,请参阅通过启动模板启动实例。
为 Windows AMI 开启更快启动
要为 EC2 Windows 实例开启更快启动,请选择与您的环境匹配的选项卡,然后按照步骤操作。
要更改这些设置,请确保您的 AMI 和运行所在的区域满足所有 先决条件。
为 Windows AMI 停止更快启动
要为 EC2 Windows 实例停止更快启动,请选择与您的环境匹配的选项卡,然后按照步骤操作。
要更改这些设置,请确保您的 AMI 和运行所在的区域满足所有 先决条件。
查看启用了更快启动的 Windows AMI(Amazon CLI)
您可以在 Amazon CLI 中使用 describe-fast-launch-images 命令,或者适用于 Windows PowerShell cmdlet 的 Get-EC2FastLaunchImage 工具,获取启用了更快启动的 Windows AMI 的详细信息。
Amazon EC2 会提供结果中返回的每个 Windows AMI 的以下详细信息:
-
标识已启用快速启动的 Windows 映像的映像 ID。
-
用于预置 Windows AMI 的资源类型。支持的值为:
snapshot。 -
快照配置,它是一组参数,用于使用快照预置关联的 Windows AMI。
-
启动模板信息,包括 AMI 从预置快照启动 Windows 实例时使用的启动模板的 ID、名称和版本。
-
为创建资源启动的并行实例的最大数量。
-
启用快速启动的 Windows AMI 的所有者 ID。
-
指定 Windows AMI 的更快启动的当前状态。支持的值包括:
enabling | enabling-failed | enabled | enabled-failed | disabling | disabling-failed。注意 您还可在 EC2 控制台中的 Manage image optimization(管理映像优化)页面上看到,当前的状态为 Image optimization state(映像优化状态)。
-
Windows AMI 启动速度加快的原因已更改为当前状态。
-
Windows AMI 启动速度加快的时间已更改为当前状态。
选择与命令行环境匹配的选项卡:
用于更快启动 EC2 Windows 实例的服务相关角色
Amazon EC2 使用服务相关角色获取代表您调用其他Amazon服务所需的权限。服务相关角色是一种独特类型的 IAM 角色,它与Amazon服务直接相关。服务相关角色提供了一种将权限委托给 Amazon 服务的安全方式,因为只有相关服务才能担任服务相关角色。有关 Amazon EC2 如何使用 IAM 角色的更多信息,请参阅 适用于 Amazon EC2 的 IAM 角色。
Amazon EC2 使用名为 AWSServiceRoleForEC2FastLaunch 的服务相关角色创建和管理一组预置快照,从而减少从 Windows AMI 启动实例所需的时间。
您无需手动创建该服务相关角色。当您开始为 AMI 使用更快的 EC2 Windows 实例启动时,如果服务相关角色尚不存在,Amazon EC2 将为您创建一个。
如果从您的账户中删除了服务相关角色,则可以为另一个 Windows AMI 开始更快地启动 EC2 Windows 实例,从而在您的账户中重新创建此角色。或者,您可以停止更快地启动当前 AMI 的 EC2 Windows 实例,然后再次启动它。但是,停止该功能会导致您的 AMI 对所有新实例使用标准启动流程,而 Amazon EC2 会删除所有预配置快照。在所有预配置的快照都消失之后,您可以再次为 AMI 使用 EC2 Windows 实例的更快启动。
Amazon EC2 不允许您编辑 AWSServiceRoleForEC2FastLaunch 服务相关角色。创建服务相关角色后,将无法更改角色名称,因为可能有多个实体引用该角色。但是可以使用 IAM 编辑角色说明。有关更多信息,请参见 IAM 用户指南中的编辑服务相关角色。
只有在先删除所有相关资源后,才能删除服务相关角色。这将保护与启用了更快启动的 AMI 相关的 Amazon EC2 资源,因为您不会无意中删除对资源的访问权限。
Amazon EC2 支持在 Amazon EC2 服务可用的所有区域中更快启动 EC2 Windows 实例服务相关角色。有关更多信息,请参阅区域。
AWSServiceRoleForEC2FastLaunch 授予的权限
Amazon EC2 使用 EC2FastLaunchServiceRolePolicy 托管策略完成以下操作:
-
cloudwatch:PutMetricData– 将与 EC2 Windows 实例更快启动相关的指标数据发布到 Amazon EC2 命名空间。 -
ec2:CreateLaunchTemplate– 为启用了更快启动的 AMI 创建启动模板。 -
ec2:CreateSnapshot– 为启用了更快启动的 AMI 创建预置快照。 -
ec2:CreateTags– 为与启动和预置 Windows 实例相关联的资源创建标签,以实现启用快速启动的 AMI。 -
ec2:DeleteSnapshots– 如果先前启用的 AMI 关闭了 EC2 Windows 实例的快速启动,则删除所有关联的预置快照。 -
ec2:DescribeImages– 描述所有资源的映像。 -
ec2:DescribeInstanceAttribute– 描述所有资源的实例属性。 -
ec2:DescribeInstanceStatus– 描述所有资源的实例状态。 -
ec2:DescribeInstances– 描述所有资源的实例。 -
ec2:DescribeInstanceTypeOfferings– 描述所有资源的实例类型产品。 -
ec2:DescribeLaunchTemplates– 描述所有资源的启动模板。 -
ec2:DescribeLaunchTemplateVersions– 描述所有资源的启动模板版本。 -
ec2:DescribeSnapshots– 描述所有资源的快照资源。 -
ec2:DescribeSubnets– 描述所有资源的子网。 -
ec2:RunInstances– 从启用了更快启动的 AMI 启动实例,以执行预置步骤。 -
ec2:StopInstances– 停止从启用了更快启动的 AMI 启动的实例,以创建预置快照。 -
ec2:TerminateInstances– 在从启用了更快启动的 AMI 启动实例并创建该实例的预置快照后,终止该实例。 -
iam:PassRole– 允许AWSServiceRoleForEC2FastLaunch服务相关角色使用启动模板中的实例配置文件代表您启动实例。
有关 Amazon EC2 使用托管式策略的更多信息,请参阅 Amazon Amazon Elastic Compute Cloud 托管策略。
对用于加密的 AMI 和 EBS 快照的客户托管密钥的访问权限
先决条件
-
要让 Amazon EC2 能够代表您访问加密 AMI,您必须具有客户管理密钥中的
createGrant操作的权限。
当您为加密 AMI 启用 EC2 Windows 实例的更快启动时,Amazon EC2 会确保授予 AWSServiceRoleForEC2FastLaunch 角色使用客户托管密钥访问 AMI 的权限。需要此权限才能启动实例并代表您创建预配置快照。