托管的 AWS Windows AMI - Amazon Elastic Compute Cloud

托管的 AWS Windows AMI

AWS 提供包括 Windows Server 各种版本和配置的托管亚马逊机器映像(AMI)。一般来说,将使用 Microsoft 安装介质所用的默认设置来配置 AWS Windows AMI。不过,其中有自定义项。例如,AWS Windows AMI 随附了以下软件和驱动程序:

  • EC2Launch v2 (Windows Server 2022)

  • EC2Launch(Windows Server 2016 及 2019)

  • EC2Config 服务 (通过 Windows Server 2012 R2)

  • AWS Systems Manager

  • AWS CloudFormation

  • AWS Tools for Windows PowerShell

  • 网络驱动程序 (SRIOV,ENA,Citrix PV)

  • 存储驱动程序(NVMe、AWS PV、Citrix PV)

  • 图像驱动程序 (NVidia GPU,Elastic GPU)

  • 竞价型实例休眠

有关其他自定义项的信息,请参阅 AWSWindows AMI

关于 AWS Windows AMI 版本的详细信息

AWS 从哪里获取 Windows Server 安装介质

当新版本的 Windows Server 发布时,我们会从 Microsoft 下载 Windows ISO 并验证 Microsoft 发布的哈希值。然后根据 Windows 发行版 ISO 创建初始 AMI。除了我们的 EC2 启动代理外,还包括在 EC2 上启动所需的驱动程序。为了准备此初始 AMI 以供公开发布,我们会执行自动化流程将 ISO 转换为 AMI。此准备好的 AMI 用于每月自动更新和发布流程。

官方 AWS Windows AMI 中的预期内容

AWS 为 Microsoft 支持的 Windows Server 操作系统的流行版本提供了各种配置的 AMI。如上一节所述,我们从 Microsoft 批量许可服务中心 (VLSC) 的 Windows Server ISO 开始,验证哈希,以确保它与 Microsoft 针对新 Windows Server 操作系统的文档相匹配。

我们使用 AWS 上的自动化功能执行以下更改,以获取当前的 Windows Server AMI 并对其进行更新:

  • 安装 Microsoft 推荐的所有 Windows 安全补丁。我们会在每月 Microsoft 补丁发布后不久发布映像。

  • 安装 AWS 硬件的最新驱动程序(包括网络和磁盘驱动程序)、用于故障排除的 EC2WinUtil 以及所选 AMI 中的 GPU 驱动程序。

  • 默认情况下包括以下 AWS 启动代理软件:

  • 将 Windows 时间服务配置为使用 Amazon Time Sync Service

  • 对所有电源方案进行更改以将显示设置为永不关闭。

  • 执行次要错误修复 – 通常是一行注册表更改,以启用或禁用我们发现能够提高 AWS 性能的功能。

  • 在新的和现有 EC2 平台上测试和验证 AMI,以确保发布前的兼容性、稳定性和一致性。

  • 除了前面提到的更改之外,我们将 AMI 尽可能接近 Microsoft 默认安装的 Windows Server。例如,我们使 PowerShell 和 .NET Framework 安装保持原样,不安装其他 Windows 角色、角色服务或功能。

AWS 如何验证 AMI 上软件的安全性、完整性和真实性

我们在映像构建过程中采取了许多步骤,以维护 AWS 提供的 Windows AMI 的安全性、完整性和真实性。一些示例包括:

  • AWS 提供的 Windows AMI 是使用直接从 Microsoft 获得的源介质构建的。

  • Windows 更新由 Windows 直接从 Microsoft 的 Windows 更新服务下载,并安装在映像构建过程中用于创建 AMI 的实例上。

  • AWS 软件是从安全 S3 存储桶下载的并安装在 AMI 中。

  • 驱动程序(例如芯片组和 GPU)直接从供应商处获取,存储在安全的 S3 存储桶中,并在映像构建过程中安装在 AMI 上。

AWS 如何决定提供哪些 Windows AMI

每个 AMI 在向公众发布之前都经过了广泛的测试。我们定期简化 AMI 产品,以简化客户的选择并降低成本。

  • 为新的操作系统版本创建新的 AMI 产品。您可以看到 AWS 以英语和其他广泛使用的语言发布“Base”、“Core/Container”和“SQL Express/Standard/Web/Enterprise”产品。Base 和 Core 产品之间的主要区别在于,Base 产品具有桌面/GUI,而 Core 产品仅限 PowerShell 命令行。有关 Windows Server Core 的更多信息,请参阅 https://docs.microsoft.com/en-us/windows-server/administration/server-core/what-is-server-core

  • 创建新的 AMI 产品以支持新平台 – 例如,创建了深度学习和“NVidia”AMI 以支持客户使用基于 GPU 的实例类型(P2 和 P3 以及 G3 等)。

  • 有时会删除不太受欢迎的 AMI。如果我们看到特定 AMI 在其整个生命周期中仅启动了几次,我们将删除它以支持更广泛使用的选项。

如果存在一个您希望看到的 AMI 变体,请通过向云支持部门提交服务单或者通过我们建立的某个渠道提供反馈来告知我们。

补丁、安全更新和 AMI ID

AWS 在 Microsoft 的修补程序星期二(每个月的第二个星期二)后的五个工作日内提供更新的、完整修补的 Windows AMI。新的 AMI 将通过 Amazon EC2 控制台的 Images(映像)页面立即提供。在新的 AMI 发布后的几天内,即可在 AWS Marketplace 中和启动实例向导的 Quick Start 选项卡中找到这些 AMI。

注意

从 Windows Server 2019 及更高版本 AMI 启动的实例可能会显示 Windows Update 对话框消息,表明“有些设置由您的组织管理”。此消息的出现是由于 Windows Server 2019 中的一些变化导致的,并不会影响 Windows Update 的行为或您管理更新设置的能力。

要删除该警告,请参阅“某些设置由您的组织来管理”

为了确保客户默认情况下安装了最新的安全更新,AWS 保留 Windows AMI 三个月供使用。在发布新 Windows AMI 之后,AWS 在 10 天内将早于 3 个月的 Windows AMI 设置为私有。将 AMI 设为私有之后,如果您在控制台中查看从该 AMI 启动的实例,AMI ID 字段将显示“无法加载 ami-xxxxx 的详细信息。您可能无权查看它。” 您仍可以使用 AWS CLI 或 AWS 开发工具包检索 AMI ID。

各个版本的 Windows AMI 均拥有新的 AMI ID。因此,我们建议您编写脚本,以便按名称而非 ID 查找最新的 AWS Windows AMI。有关更多信息,请参阅以下示例:

AWS Windows AMI 的配置更改

以下配置更改适用于各个 AWS Windows AMI。

清除和准备
更改 适用于
检查待处理的文件重命名或重新启动,并根据需要重新启动 所有 AMI

删除 .dmp 文件

所有 AMI
删除日志(事件日志、Systems Manager、EC2Config) 所有 AMI
删除 Sysprep 的临时文件夹和文件 所有 AMI
执行病毒扫描 所有 AMI
预先编译排队的 .NET 程序集(在 Sysprep 之前) 所有 AMI
恢复 Internet Explorer 的默认值 所有 AMI
重置 Windows 墙纸 所有 AMI
运行 Sysprep 所有 AMI
设置 EC2Launch 在下次启动时运行 Windows Server 2016 和 2019
运行 Windows 维护工具 Windows Server 2012 R2 及更高版本
清除最近的历史记录(启动菜单,Windows 资源管理器等) Windows Server 2012 R2 和早期版本
恢复 EC2Config 的默认值 Windows Server 2012 R2 和早期版本
安装和配置
更改 适用于
禁用安全时间做种 所有 AMI
添加指向 Amazon EC2 Windows 指南的链接 所有 AMI
将实例存储卷附加到扩展装载点 所有 AMI
安装最新的 AWS Tools for Windows PowerShell 所有 AMI
安装最新的 AWS CloudFormation 帮助程序脚本 所有 AMI

禁用 Internet Explorer 的 RunOnce

所有 AMI

启用远程 PowerShell

所有 AMI
禁用休眠并删除休眠文件 所有 AMI
禁用互连用户体验和遥测服务 所有 AMI
设置性能选项以获得最佳性能 所有 AMI
将电源设置设为高性能 所有 AMI
禁用屏幕保护程序密码 所有 AMI

设置 RealTimeIsUniversal 注册表项

所有 AMI

将时区设置为 UTC

所有 AMI

禁用 Windows 更新和通知

所有 AMI

运行 Windows Update 并重新启动,直至没有待处理的更新

所有 AMI

将所有电源方案中的显示设置为永不关闭

所有 AMI

将 PowerShell 执行策略设置为“不受限制”

所有 AMI

如果已安装 Microsoft SQL Server:

  • 安装 Service Pack

  • 配置以自动启动

  • 将 BUILTIN\Administrators 添加到 SysAdmin 角色

  • 打开 TCP 端口 1433 和 UDP 端口 1434

所有 AMI

按如下方式在系统卷上配置分页文件:

  • Windows Server 2016 及更高版本 - 由系统管理

  • Windows Server 2012 R2 – 初始大小和最大大小均为 8 GB

  • Windows Server 2012 及以下版本 – 初始大小为 512 MB,最大大小为 8 GB

所有 AMI
安装最新的 EC2Launch v2 和 SSM Agent Windows Server 2022 及更高版本
安装最新的 EC2Launch 和 SSM Agent Windows Server 2016 和 2019
安装最新的 SRIOV 驱动程序 Windows Server 2012 R2 及更高版本

安装最新的 EC2WinUtil 驱动程序

Windows Server 2008 R2 及更高版本

安装最新的 EC2Config 和 SSM Agent Windows Server 2012 R2 和早期版本
安装最新的 AWS PV、ENA 和 NVMe 驱动程序 Windows Server 2008 R2 及更高版本

允许 ICMP 流量通过防火墙

Windows Server 2012 R2 和早期版本

Z: (如果有) 上配置由系统管理的其他分页文件。

Windows Server 2012 R2 和早期版本

启用文件和打印机共享

Windows Server 2012 R2 和早期版本

安装最新的 Citrix PV 驱动程序

Windows Server 2008 SP2 和早期版本

安装 PowerShell 2.0 和 3.0

Windows Server 2008 SP2 和 R2

应用以下修补程序:

Windows Server 2008 SP2 和 R2

更新您的 Windows 实例

启动 Windows 实例后,您需要在上面安装更新。有关更多信息,请参阅 Amazon EC2 中的更新管理

您可以仅手动安装您感兴趣的更新,也可以从当前的 AWS Windows AMI 启动并构建一个新的 Windows 实例。有关查找当前 AWS Windows AMI,以及确保您的 AMI 保持更新的信息,请参阅 查找 Windows AMI确保 AMI 保持更新

注意

更新时,实例应该无状态。有关更多信息,请参阅大规模管理 AWS 基础设施

对于 Windows 实例,您可以将更新安装到以下服务或应用程序:

我们建议您在安装更新之后重启 Windows 实例。有关更多信息,请参阅 重启实例

升级或迁移到较新版本的 Windows 服务器

有关如何将 Windows 实例升级或迁移到 Windows Server 新版本的信息,请参阅将 Amazon EC2 Windows 实例升级到更高版本的 Windows Server

订阅 Windows AMI 通知

要在新 AMI 发布时或在以前发布的 AMI 设为私有时接收相关通知,请使用 Amazon SNS 订阅通知。

订阅 Windows AMI 通知
  1. 通过以下网址打开 Amazon SNS 控制台:https://console.aws.amazon.com/sns/v3/home

  2. 如果需要,可在导航栏中将区域更改为美国东部(弗吉尼亚北部)。您必须使用此区域,因为您订阅的 SNS 通知是在此区域中创建的。

  3. 在导航窗格中,选择 Subscriptions

  4. 选择 Create subscription

  5. 对于 Create subscription 对话框,执行以下操作:

    1. 对于 Topic ARN,复制并粘贴以下任意一个 Amazon Resource Name (ARN):

      • arn:aws:sns:us-east-1:801119661308:ec2-windows-ami-update

      • arn:aws:sns:us-east-1:801119661308:ec2-windows-ami-private

      对于 AWS GovCloud(US)

      arn:aws-us-gov:sns:us-gov-west-1:077303321853:ec2-windows-ami-update

    2. 对于协议,选择电子邮件

    3. 对于 Endpoint,键入可用于接收通知的电子邮件地址。

    4. 选择 Create subscription

  6. 您将收到一封包含主题行 AWS Notification - Subscription Confirmation 的确认电子邮件。打开电子邮件,然后选择 Confirm subscription 以完成订阅。

每当发布 Windows AMI 时,我们都会向订阅 ec2-windows-ami-update 主题的用户发送通知。每当已发布 Windows AMI 被设为私有时,我们都会向订阅 ec2-windows-ami-private 主题的用户发送通知。如果您不希望再收到这些通知,请通过以下步骤取消订阅。

取消订阅 Windows AMI 通知
  1. 通过以下网址打开 Amazon SNS 控制台:https://console.aws.amazon.com/sns/v3/home

  2. 如果需要,可在导航栏中将区域更改为美国东部(弗吉尼亚北部)。您必须使用此区域,因为 SNS 通知是在此区域中创建的。

  3. 在导航窗格中,选择 Subscriptions

  4. 请选择订阅,然后选择 Delete(删除)。当系统提示进行确认时,选择 Delete(删除)

Windows Server 2016 及更高版本 AMI 中的更改

AWS 为 Windows Server 2016 及更高版本提供了 AMI。与以前版本的 Windows AMI 相比,这些 AMI 包含以下高级更改:

其他区别

请注意从 Windows Server 2016 及更高版本 AMI 创建的实例的以下额外重要区别。

  • 默认情况下,EC2Launch 不初始化辅助 EBS 卷。您可以配置 EC2Launch 以便通过排定脚本运行或通过在用户数据中调用 EC2Launch 来自动初始化磁盘。有关使用 EC2Launch 初始化磁盘的步骤,请参阅配置 EC2Launch中的“初始化驱动器和盘符映射”。

  • 如果您以前已使用本地配置文件 (AWS.EC2.Windows.CloudWatch.json) 在您的实例上启用 CloudWatch 集成,则可以在从 Windows Server 2016 及更高版本的 AMI 创建的实例上配置文件以使用 SSM Agent。

有关更多信息,请参阅 Microsoft.com 上的 Windows Server