EC2Launch v2 概览 - Amazon Elastic Compute Cloud

EC2Launch v2 概览

EC2Launch v2 是一种服务,可在实例启动期间执行任务,并可在实例停止并稍后启动或重新启动时运行。

比较 Amazon EC2 启动服务

下表显示了 EC2Config、EC2Launch v1 和 EC2Launch v2 之间的主要功能差异。

功能 EC2Config EC2Launch v1 EC2Launch v2
执行方式 Windows 服务

PowerShell 脚本

Windows 服务
支持

Windows 2003

Windows 2008

Windows 2008 R2

Windows 2012

Windows 2012 R2

Windows 2016

Windows 2019(LTSC 和 SAC)

Windows 2008

Windows 2008 R2

Windows 2012

Windows 2012 R2

Windows 2016

Windows 2019(LTSC 和 SAC)

Windows 2022

配置文件

XML XML

YAML

设置管理员用户名

用户数据大小

16 KB 16 KB

60 KB(压缩)

本地用户数据录入到 AMI 上

是的,可配置
用户数据中的任务配置

可配置壁纸

自定义任务执行顺序

可配置任务

15

9

在启动时为 20

支持 Windows 事件查看器

事件查看器事件类型的数量

2

0

30

EC2Launch v2 概念

在考虑使用 EC2Launch v2 时,以下概念很有用。

任务

任务可以被调用来对实例执行操作。有关 EC2Launch v2 的可用任务的完整列表,请参阅 EC2Launch v2 任务。每个任务都包括一组在其中运行的阶段、定义的频率和输入。任务可以在 agent-config 文件中或通过 user-data 进行配置。

阶段

阶段是由服务运行的任务的逻辑分组。某些任务只能在特定阶段运行。另一些任务可以分多个阶段运行。使用本地数据时,您必须指定运行任务的阶段。使用用户数据时,阶段是隐含的。

下面的列表按运行顺序显示这些阶段:

  1. Boot

  2. Network

  3. PreReady

  4. PostReady

  5. UserData

频率

任务频率用于计划任务运行的时间,具体取决于引导上下文。

可以指定以下频率:

  • 一次 — 任务在 AMI 首次引导时(完成了 Sysprep)运行一次。

  • 始终 — 任务在每次启动代理运行时都会运行。启动代理在以下情况运行:

    • 实例启动或重新启动时

    • EC2Launch 服务运行时

    • EC2Launch.exe run 被调用

agent-config

agent-config 是位于 EC2Launch v2 的配置文件夹中的文件。它包括用于 Boot、Network、Preready 和 Postready 阶段的配置。此文件用于指定在 AMI 首次引导或以后引导时,应运行任务的实例的配置。

默认情况下,EC2Launch v2 安装会安装一个 agent-config 文件,其中包含在标准 Amazon Windows AMI 中使用的推荐配置。您可以更新配置文件以更改 EC2Launch v2 为您的 AMI 指定的默认引导体验。

用户数据

用户数据是在启动实例时可配置的数据。您可以更新用户数据以动态更改如何配置自定义 AMI 或快速启动 AMI。EC2Launch v2 支持 60 kB 用户数据输入长度。用户数据仅包括 UserData 阶段,因此在 agent-config 文件之后运行。您可以在使用启动实例向导启动实例时输入用户数据,也可以从 EC2 控制台修改用户数据。有关使用用户的更多信息,请参阅启动时在 Windows 实例上运行命令

EC2Launch v2 任务

EC2Launch v2 可以在每次引导时执行以下任务:

  • 设置新的(可选)自定义壁纸,以呈现有关实例的信息。

  • 为在本地计算机上创建的管理员账户设置属性。

  • 将 DNS 后缀添加到搜索后缀列表中。只有尚不存在的后缀才会添加到列表中。

  • 为任何附加卷设置驱动器盘符,并扩展它们以使用可用空间。

  • 将文件从 Internet 或从配置写入磁盘。如果内容在配置中,则可以对其进行 base64 解码或编码。如果内容来自 Internet,则可以解压缩。

  • 执行来自 Internet 或来自配置的脚本。如果脚本来自配置,则可以对其进行 base64 解码。如果脚本来自 Internet,则可以解压缩。

  • 使用给定参数执行程序。

  • 设置计算机名称。

  • 将实例信息发送到 Amazon EC2 控制台。

  • 向 EC2 控制台发送 RDP 证书指纹。

  • 请动态扩展操作系统分区,以包含所有未分区的空间。

  • 执行用户数据。有关指定用户数据的更多信息,请参阅EC2Launch v2 任务配置

  • 设置非持久静态路由以访问元数据服务和 AWS KMS 服务器。

  • 将非引导分区设置为 MBR 或 GPT。

  • 在 Sysprep 之后启动 Systems Manager (SSM) 服务。

  • 优化 ENA 设置。

  • 为更高版本的 Windows 启用 OpenSSH。

  • 启用巨型帧。

  • 将 Sysprep 设置为与 EC2Launch v2 一起运行。

  • 发布 Windows 事件日志。

遥测

遥测是附加信息,可帮助 AWS 更好地了解您的需求、诊断问题并提供功能,以改善 AWS 服务带给您的体验。

EC2Launch v2 版本 2.0.592 及更高版本会收集遥测,例如使用情况指标和错误。此数据是从运行 EC2Launch v2 的 Amazon EC2 实例收集的。这包括 AWS 拥有的所有 Windows AMI。

EC2Launch v2 收集以下类型的遥测:

  • 使用情况信息 — 代理命令、安装方法和计划的运行频率。

  • 错误和诊断信息 — 代理安装和运行错误代码。

收集的数据示例:

2021/07/15 21:44:12Z: EC2LaunchTelemetry: IsAgentScheduledPerBoot=true 2021/07/15 21:44:12Z: EC2LaunchTelemetry: IsUserDataScheduledPerBoot=true 2021/07/15 21:44:12Z: EC2LaunchTelemetry: AgentCommandCode=1 2021/07/15 21:44:12Z: EC2LaunchTelemetry: AgentCommandErrorCode=5 2021/07/15 21:44:12Z: EC2LaunchTelemetry: AgentInstallCode=2 2021/07/15 21:44:12Z: EC2LaunchTelemetry: AgentInstallErrorCode=0

预设情况下,遥测处于启用状态。您可以随时禁用遥测收集。如果启用了遥测,EC2Launch v2 会发送遥测数据,无需额外的客户通知。

遥测可见性

启用遥测后,它将显示在 Amazon EC2 控制台输出中,如下所示:

2021/07/15 21:44:12Z: Telemetry: <Data>

在实例上禁用遥测

要禁用单个实例的遥测,您可以设置系统环境变量,也可以使用 MSI 修改安装。

要通过设置系统环境变量来禁用遥测,请以管理员身份运行以下命令:

setx /M EC2LAUNCH_TELEMETRY 0

要使用 MSI 禁用遥测,请在下载 MSI 后运行以下命令:

msiexec /i ".\AmazonEC2Launch.msi" Remove="Telemetry" /q