为 Windows 工作负载选择合适的实例类型 - AWS 规范性指导

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

为 Windows 工作负载选择合适的实例类型

概述

云环境中运行的工作负载与本地环境中的工作负载之间的一个重要区别在于过度预调配的做法。在购置用于本地的物理硬件时,您会进行一笔资本支出,这笔支出预计将持续一定期限,通常为 3 至 5 年。为了适应硬件在其使用寿命期间的预期增长需求,所购置的硬件所配备的资源比当前的工作负载所需资源要多。因此,物理硬件的配置往往会超出实际工作负载的需求,存在过度预调配的情况。

虚拟机(VM)技术已成为有效利用过剩硬件资源的一种手段。管理员过度配置了 VMs v CPUs 和 RAM,这使虚拟机管理程序能够通过向每台虚拟机分配未使用的资源来管理繁忙和空闲服务器之间的物理资源使用情况。在管理时 VMs,分配给每个虚拟机的 vCPU 和 RAM 资源更多地起到资源调控器的作用,而不是实际使用情况的指标。VM 资源过度分配可能会轻易超出可用计算资源的三倍之多。

Amazon Elastic Compute Cloud (Amazon EC2) 避免在底层硬件 VMs 上进行过度配置,因为这是不必要的。云计算是一项运营费用,而不是资本支出,您只需为所使用的资源付费。如果未来您的工作负载需要更多的资源,请在实际需要时再预调配这些资源,而不是提前一次性全部准备好。

有数百种选项可供选择正确的 Amazon EC2 实例类型。如果您计划将 Windows 工作负载迁移到云端,请 AWS 提供 O AWS L A,以帮助您更好地了解当前的工作负载并举例说明其运行性能 AWS。 AWS OLA 分析旨在将合适的 EC2 实例类型和大小与您的实际本地使用情况相匹配。

如果您已经有工作负载在 Amazon 上运行, EC2 并且正在寻求成本优化策略,那么本指南的这一部分可帮助您确定 Amazon EC2 实例之间的差异及其对典型 Windows 工作负载的适用性。

成本优化建议

要优化您的 EC2 实例类型的成本,我们建议您执行以下操作:

  • 为工作负载选择合适的实例系列

  • 了解处理器架构之间的价格差异

  • 了解各 EC2 代人之间的性价比差异

  • 迁移到较新的实例

  • 使用可爆发实例

为工作负载选择合适的实例系列

为工作负载选择适合的实例系列很重要。

Amazon EC2 实例分为以下几组:

  • 通用型

  • 计算优化型

  • 内存优化型

  • 加速计算型

  • 存储优化

  • HPC 优化型

大多数 Windows 工作负载属于以下类别:

  • 通用型

  • 计算优化型

  • 内存优化型

为了进一步简化这一点,请考虑每个类别中的一个基准 EC2 实例:

  • 计算优化型:C6i

  • 通用型:M6i

  • 内存优化型:R6i

上一代 EC2 实例在处理器类型上表现出微小的差异。例如,C5 计算优化型实例的处理器比 M5 通用实例或 R5 内存优化型实例更快。最新一代的 EC2 实例(C6i、m6i、R6i、C6a、m6a 和 R6a)在不同的实例系列中都使用相同的处理器。由于在最新一代实例中均使用一致的处理器,因此实例系列之间的价格差异现在更多地取决于 RAM 的量。实例拥有的 RAM 越多,其成本就越高。

以下示例说明了在 us-east-1 区域运行的基于 Intel 的 4 vCPU 实例的每小时定价。

实例 v CPUs RAM 每小时价格
c6i.xlarge 4 8 0.17 美元
m6i.xlarge 4 16 0.19 美元
r6i.xlarge 4 32 0.25 美元
注意

定价基于 us-east-1 区域的每小时按需定价。

可爆发实例

在云计算中,通常会将未使用的计算资源关闭以避免产生费用,但并非所有工作负载都能在每次需要时随时开启或关闭。有些工作负载会长时间处于闲置状态,但必须能够全天 24 小时随时访问。

可爆发实例(T3)提供了一种解决方案,可使具有波动性或低利用率的工作负载全天保持在线运行,同时还能将计算成本控制在较低水平。突发性能 EC2 实例具有该实例在短时间内可以使用的最大 vCPU 资源量。这些实例使用基于可爆发 CPU 服务抵扣金的系统。这些服务抵扣金是在一天中的闲置时间段内逐步累积起来的。Burstable 实例提供不同的 vCPU-to-RAM比率,这使得它们在某些情况下是计算优化型实例的替代方案,而在另一些情况下则是其他通用实例的替代方案。

以下示例说明了在 us-east-1 区域运行的 T3 实例(即可爆发实例)的每小时定价。

实例 v CPUs RAM(GB) 每小时价格
t3.nano 2 0.5 0.0052
t3.micro 2 1 0.0104
t3.small 2 2 0.0208
t3.medium 2 4 0.0416
t3.large 2 8 0.0832
t3.xlarge 4 16 0.1664 美元
t3.2xlarge 8 32 0.3328 美元
注意

定价基于 us-east-1 区域的每小时按需定价。

了解处理器架构之间的价格差异

英特尔处理器自问世以来一直是 EC2 实例的标准。前几代 EC2实例,例如 C5、M5 和 R5,并未将英特尔指定为处理器架构(因为它是默认架构)。新一代的 EC2 实例,比如 C6i、M6i 和 R6i,都包含 “i”,表示使用英特尔处理器。

处理器架构注释的变化是由于引入了其他处理器选项。与 Intel 最具可比性的处理器是 AMD(用“a”表示)。AMD EPYC 处理器使用相同的 x86 架构,其性能与 Intel 处理器相似,但价格更低。如以下定价示例所示,与英特尔同类 EC2 实例相比,AMD 实例的计算成本折扣约为 10%。

Intel 实例 每小时价格 AMD 实例 Price 差异 %
c6i.xlarge 0.17 美元 c6a.xlarge 0.153 美元 10%
m6i.xlarge 0.192 m6a.xlarge 0.1728 美元 10%
r6i.xlarge 0.252 美元 r6a.xlarge 0.2268 美元 10%
注意

定价基于 us-east-1 区域的每小时按需定价。

第三个主要的处理器架构选项是实例AWS 上的 Graviton 处理器(用 “g” 表示)。 EC2 由Graviton处理器设计 AWS,在亚马逊上提供最佳的性价比。 EC2当前的 Graviton 处理器不仅比 Intel 同类产品便宜 20%,而且性能提升幅度也达到了 20% 或更高。下一代 Graviton 处理器预计将进一步扩大这种性能差异,测试结果表明其性能将再提高 25%。

Windows Server 无法在基于 ARM 架构的 Graviton 处理器上运行。实际上,Windows Server 只能在 x86 处理器上运行。虽然使用基于 Graviton 架构的 Windows Server 实例无法实现 40% 的性价比提升,但您仍可以将 Graviton 处理器用于特定的 Microsoft 工作负载。例如,较新版本的 .NET 可以在 Linux 上运行。这意味着这些工作负载可以使用 ARM 处理器,并受益于更快、更实惠的 Graviton EC2 实例。

以下示例说明了在 us-east-1 区域运行的 Graviton 实例的每小时定价。

Intel 实例 每小时价格 Graviton 实例 每小时价格 差异 %
c6i.xlarge 0.17 美元 c6g.xlarge 0.136 美元 20%
m6i.xlarge 0.192 m6g.xlarge 0.154 20%
r6i.xlarge 0.252 美元 r6g.xlarge 0.2016 20%
注意

定价基于 us-east-1 区域的每小时按需定价。

下图比较了 M 系列实例的价格。

M 系列价格对比

了解各 EC2 代人之间的性价比差异

Amazon最稳定的特征之一 EC2 是,每款新一代产品都比其前代产品具有更好的性价比。如下表所示,新一代 EC2 实例的价格会随着后续版本的增加而降低。

计算优化型实例 每小时价格 通用实例 每小时价格 内存优化型实例 每小时价格
C1.xlarge 0.52 美元 M1.xlarge 0.35 美元 r1.xlarge 不适用
C3.xlarge 0.21 美元 M3.xlarge 0.266 美元 r3.xlarge 0.333 美元
C5.xlarge 0.17 美元 M5.xlarge 0.192 r5.xlarge 0.252 美元
注意

定价基于 us-east-1 区域的每小时按需定价。

下图比较了不同代 C 系列实例的成本情况。

C 系列价格对比

但是,第 6 代实例的价格与第 5 代实例的价格相同,如下表所示。

计算优化型实例 每小时价格 通用实例 每小时价格 内存优化型实例 每小时价格
C5.xlarge 0.17 美元 M5.xlarge 0.192 r5.xlarge 0.252 美元
C6i.xlarge 0.17 美元 M6i.xlarge 0.192 r6i.xlarge 0.252 美元
注意

定价基于 us-east-1 区域的每小时按需定价。

尽管成本相同,但新一代产品凭借更快的处理器、更高的网络吞吐量以及更大的 Amazon Elastic Block Store(Amazon EBS)吞吐量和 IOPS,提供更出色的性价比。

最显著的性价比改进之一是 X2i 实例的增强。与上一代实例相比,这一代实例的性价比最高可提高 55%。如下表所示,x2iedn 在各项性能指标上均有所提升(且价格与前一代产品相同)。

实例 每小时价格 v CPUs RAM 处理器速度 实例存储 Networking Amazon EBS 吞吐量 EBS IOPS
x1e.2xlarge 1.66 美元 8 244 2.3 GHz 237GB SSD 10 Gbps 125 MB/s 7400
x1iedn.2xlarge 1.66 美元 8 256 3.5 GHz 240GB 固态硬盘 NVMe 25 Gbps 2500 MB/s 65000
注意

定价基于 us-east-1 区域的每小时按需定价。

应用场景示例

以一家负责追踪运输车辆并希望提升其 SQL Server 性能的分析公司为例。在 MACO SME 审查了该公司的性能瓶颈后,该公司从 x1e.2xlarge 实例转换到 x2iedn.xlarge 实例。新实例大小较小,但对 x2 实例所做的改进通过使用缓冲池扩展,提高了 SQL Server 的性能和优化效果。这使该公司能够从 SQL Server 企业版降级到 SQL Server 标准版。它还使该公司能够将其 SQL Server 许可从 8 v 减少CPUs 到 4 v CPUs。

优化前:

服务器 EC2 实例 SQL Server 版本 月度成本
Prod DB1 x1e.2xlarge Enterprise 3,918.64 美元
Prod DB2 x1e.2xlarge Enterprise 3,918.64 美元
总计     7,837.28 美元

优化后:

服务器 EC2 实例 SQL Server 版本 月度成本
Prod DB1 x2iedn.xlarge 标准 1,215.00 美元
Prod DB2 x2iedn.xlarge 标准 1,215.00 美元
总计     2,430.00 美元

总而言之,从 x1e.2xlarge 实例到 x2iedn.xlarge 实例的这一更改使示例场景中的公司每月在其生产数据库服务器上节省了 5407 美元的费用。这使工作负载的总成本降低了 69%。

注意

定价基于 us-east-1 区域的每小时按需定价。

迁移到较新的实例

较老一代的Amazon在Xen虚拟机管理程序上 EC2 运行,而新一代的Amazon在Nitro系统上AWS 运行。Nitro System 将主机硬件的几乎所有计算和内存资源都提供给您的实例。这会提高整体性能。从 Xen 迁移到基于 Nitro 的实例时,需要考虑一些特殊因素。例如,AWS Window AMIs s 使用微软安装媒体使用的默认设置和自定义项进行配置。定制包括支持最新一代实例类型(在 Nitro System 上构建的实例)的驱动程序和配置。

如果您要从自定义 Windows AMIs 或亚马逊 AMIs提供的 Windows 启动在 2018 年 8 月之前创建的实例,我们建议您完成亚马逊 EC2 文档中从迁移到最新一代实例类型的步骤。

使用可爆发实例

虽然可爆发实例是节省计算成本的好方法,但我们建议您在以下情况下避免使用这些实例:

  • 具有桌面体验的 Windows Server 的最低规格要求有 2GB 的 RAM。避免将 t3.micro 或 t3.nano 实例与 Windows Server 结合使用,因为它们缺少最低的 RAM 量。

  • 如果您的工作负载很大,但闲置时间不足以积累突发积分,则使用普通 EC2 实例比使用可突发实例更有效。我们建议监控您的 CPU 积分以验证这一点。

  • 在大多数情况下,我们建议您避免在 SQL Server 中使用可爆发实例。SQL Server 的许可基于CPUs 分配给实例的 v 数。如果 SQL Server 一天中大部分时间处于闲置状态,则您需要为未充分利用的 SQL 许可证支付费用。在这些情况下,我们建议您将多个 SQL Server 实例整合到一个更大的服务器上。

后续步骤

我们建议您采取以下后续步骤来优化亚马逊 EC2 Windows 实例的成本:

  • 使用最新一代的 EC2 实例以获得最佳性价比。

  • 使用配 EC2 备 AMD 处理器的实例可将计算成本降低百分之十。

  • 选择与您的工作负载相匹配的 EC2 实例类型,从而最大限度地提高资源利用率。

下表列出了适用于 Windows 工作负载的典型起始点示例。还有其他选项可供选择,例如用于增强 SQL Server 工作负载的 EC2 实例存储卷或具有更大 vCPU-to-RAM比率的实例。我们建议您对工作负载进行全面测试,并使用 AWS Compute Optimizer 之类的监控工具来帮助进行必要的调整。

工作负载 典型 可选
Active Directory T3、M6i R6i
文件服务器 T3、M6i C6i
Web 服务器 T3、C6i M6i、R6i
SQL Server R6i x2iedn、X2iezn

如果您必须更改 EC2 实例类型,则该过程通常只需要简单的服务器重启即可。有关更多信息,请参阅 Amazon EC2 文档中的更改实例类型

在更改您的实例类型之前,我们建议您考虑以下内容:

  • 您必须先停止由 Amazon EBS 支持的实例,然后才能更改其实例类型。当实例停止时,请务必计划停机时间。停止实例并更改其实例类型可能需要几分钟时间,重新启动实例所用的时间则由应用程序的启动脚本决定。有关更多信息,请参阅 Amazon EC2 文档中的停止和启动您的实例

  • 当您停止并启动实例时, AWS 会将该实例移至新硬件。如果您的实例有公有 IPv4 地址,则 AWS 释放该地址并为您的实例提供新的公有 IPv4 地址。如果您需要一个不变的公共 IPv4 地址,请使用弹性 IP 地址

  • 您不能更改已启用了休眠的实例的实例类型。

  • 您无法更改竞价型实例的实例类型。

  • 如果您的实例位于 Auto Scaling 组中,Amazon A EC2 uto Scaling 会将已停止的实例标记为运行状况不佳,并且可能会将其终止并启动替代实例。为防止出现此情况,您可以在更改实例类型时,为组暂停扩展流程。有关更多信息,请参阅 Amazon Auto Scaling 文档中的暂停和恢复 Aut EC2 o Scaling 组的流程

  • 当您更改带有 NVMe 实例存储卷的实例的实例类型时,更新的实例可能会有额外的实例存储卷,因为即使未在 Amazon 系统映像 (AMI) 或 NVMe 实例块储存设备映射中指定,所有实例存储卷都可用。否则,已更新的实例通常具有您在启动原始实例时指定的相同实例存储卷数。

其他资源