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

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

为 Windows 工作负载选择正确的实例类型

概述

与本地环境相比,在云端运行的工作负载有一个显著的区别,那就是过度配置的做法。在购买供本地使用的物理硬件时,您需要的资本支出预计将持续预先确定的期限,通常为 3-5 年。为了适应硬件生命周期内的预期增长,购买硬件时使用的资源超过了工作负载当前所需的资源。因此,物理硬件的过度配置往往远远超出了实际工作负载的需求。

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

Amazon Elastic Compute Cloud (AmazonEC2) 避免在底层硬件VMs上进行过度配置,因为这是不必要的。云计算是一种运营费用,而不是资本支出,您只需为实际使用的资源付费。如果您的工作负载将来需要更多资源,请在实际需要时进行配置,而不是先发制人地进行配置。

有数百种选项可供选择正确的 Amazon EC2 实例类型。如果您计划将 Windows 工作负载迁移到云中,请 AWS 提供一个AWS OLA来帮助您更好地了解当前的工作负载并举例说明其运行性能 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地区运行的基于英特尔的 4 v CPU 实例的每小时定价。

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

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

可突发实例

虽然关闭未使用的计算资源以避免产生费用是云计算中的最佳实践,但并非所有工作负载都可以在每次需要时关闭和打开。有些工作负载会长时间处于闲置状态,但必须全天 24 小时可以访问。

Burstable 实例 (T3) 提供了一种在保持低计算成本的同时,将尖峰或低利用率的工作负载全天保持在线。Burstable EC2 实例的最大数量为 v CPU 资源,该实例可以在短时间内使用该资源。这些实例采用基于可突发CPU积分的系统。这些积分是在全天闲置期间累积的。Burstable 实例提供不同的 vCPU-to-RAM比率,这使得它们在某些情况下是计算优化实例的替代方案,而在另一些情况下则是其他通用实例的替代方案。

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

实例 vCPUs 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”,表示使用英特尔处理器。

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

英特尔实例 每小时价格 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处理器不仅比英特尔处理器便宜20%,而且性能也提高了20%或更高。预计下一代Graviton处理器将进一步扩大这种性能差异,测试显示性能将再提高25%。

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

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

英特尔实例 每小时价格 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 (AmazonEBS) 吞吐量增加,新一代产品仍具有卓越的性价比IOPS。

最显著的性价比改进之一是 X2i 实例的增强。与上一代实例相比,这一代实例的性价比最高可提高 55%。如下表所示,x2iedn 在各个性能方面都得到了改进(价格均与上一代产品相同)。

实例 每小时价格 vCPUs RAM 处理器速度 实例存储 网络连接 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 SSD 25 Gbps 2500 Mb/s 65000
注意

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

应用场景示例

以一家分析公司为例,该公司跟踪送货车辆并希望提高其SQL服务器性能。在MACOSME审查了该公司的性能瓶颈之后,该公司从 x1e.2xlarge 实例过渡到 x2iedn.xlarge 实例。新的实例大小较小,但是 x2 实例的增强功能可通过使用缓冲池扩展来提高SQL服务器性能和优化。这使公司能够从 SQL Server Enterprise 版降级到SQL服务器标准版。它还使该公司能够将其SQL服务器许可从 8 减少 vCPUs 到 4 vCPUs。

优化前:

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

优化后:

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

总而言之,从 x1e.2xlarge 实例更改为 x2iedn.xlarge 实例使公司在生产数据库服务器上每月可节省 5,407 美元。这使工作负载的总成本降低了 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 服务器的最低规格要求为 2 GB RAM。避免在 Windows Server 上使用 t3.micro 或 t3.nano 实例,因为它们缺少最少数量的。RAM

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

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

后续步骤

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

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

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

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

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

工作负载 典型的 可选
Active Directory T3、m6i R6i
文件服务器 T3、m6i C6i
Web 服务器 T3、c6i m6i、R6i
SQL 服务器 R6i x2iedn、x2iezn

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

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

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

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

  • 如果在实例上启用了休眠功能,则无法更改实例类型。

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

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

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

其他资源