

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

# 为 Windows 工作负载选择合适的实例类型
<a name="right-size-selection"></a>

## 概述
<a name="right-size-selection-overview"></a>

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

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

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

在选择正确的 [Amazon EC2 实例类型](https://aws.amazon.com/ec2/instance-types/)方面，有数百种选项可用。如果您计划将 Windows 工作负载迁移到云端，请 AWS 提供 O [AWS L](https://aws.amazon.com/optimization-and-licensing-assessment/) A，以帮助您更好地了解当前的工作负载并举例说明其运行性能 AWS。 AWS OLA 分析旨在将合适的 EC2 实例类型和大小与您的实际本地使用量相匹配。

如果您已经在 Amazon EC2 上运行工作负载，并且希望寻找成本优化策略，则本指南的这一部分将帮助您了解 Amazon EC2 实例之间的差异以及它们对典型 Windows 工作负载的适用性。

## 成本优化建议
<a name="right-size-selection-recommendations"></a>

要优化 EC2 实例类型的成本，我们建议您执行以下操作：
+ 为工作负载选择合适的实例系列
+ 了解处理器架构之间的价格差异
+ 了解各代 EC2 实例的性价比差异
+ 迁移到较新的实例
+ 使用可爆发实例

### 为工作负载选择合适的实例系列
<a name="right-size-selection-family"></a>

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

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` 区域的每小时按需定价。

#### 可爆发实例
<a name="right-size-selection-burstable"></a>

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

可爆发实例（T3）提供了一种解决方案，可使具有波动性或低利用率的工作负载全天保持在线运行，同时还能将计算成本控制在较低水平。可爆发 EC2 实例具有在短时间内可使用的最大 vCPU 资源量。这些实例使用基于[可爆发 CPU 服务抵扣金](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-credits-baseline-concepts.html#earning-CPU-credits)的系统。这些服务抵扣金是在一天中的闲置时间段内逐步累积起来的。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` 区域的每小时按需定价。

### 了解处理器架构之间的价格差异
<a name="right-size-selection-variations-arch"></a>

自 EC2 实例问世以来，[Intel](https://aws.amazon.com/intel/) 处理器一直是其标准配置。前几代 EC2 实例（例如 C5、M5 和 R5）并未将 Intel 指定为处理器架构（因为它是默认架构）。新一代的 EC2 实例（例如 C6i、M6i 和 R6i）都包含一个“i”，用于表示使用 Intel 处理器。

处理器架构注释的变化是由于引入了其他处理器选项。与 Intel 最具可比性的处理器是 [AMD](https://aws.amazon.com/ec2/amd/)（用“a”表示）。AMD EPYC 处理器使用相同的 x86 架构，其性能与 Intel 处理器相似，但价格更低。如以下定价示例所示，AMD 的 EC2 实例在计算成本方面相较于 Intel 同类产品大约可节省 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` 区域的每小时按需定价。

第三个主要的处理器架构选项是 EC2 实例上的 [AWS Graviton 处理器](https://aws.amazon.com/ec2/graviton/)（用“g”表示）。Graviton 处理器由设计 AWS，在 Amazon EC2 上具有最佳的性价比。当前的 Graviton 处理器不仅比 Intel 同类产品便宜 20%，而且性能提升幅度也达到了 20% 或更高。下一代 Graviton 处理器预计将进一步扩大这种性能差异，测试结果表明其性能将再提高 25%。

Windows Server 无法在基于 ARM 架构的 Graviton 处理器上运行。实际上，Windows Server 只能在 x86 处理器上运行。虽然使用基于 Graviton 架构的 Windows Server 实例无法实现 40% 的性价比提升，但您仍可以将 Graviton 处理器用于特定的 Microsoft 工作负载。例如，[较新版本的 .NET 可以在 Linux 上运行](net-refactor-linux.md)。这意味着这些工作负载可以使用 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 系列价格对比](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/optimize-costs-microsoft-workloads/images/m6_price.png)


### 了解各代 EC2 实例的性价比差异
<a name="right-size-selection-variations-ec2"></a>

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 系列价格对比](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/optimize-costs-microsoft-workloads/images/ec2_compute_opt_price.png)


但是，第 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 实例](https://aws.amazon.com/ec2/instance-types/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` 区域的每小时按需定价。

### 应用场景示例
<a name="right-size-selection-examples"></a>

以一家负责追踪运输车辆并希望提升其 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` 区域的每小时按需定价。

### 迁移到较新的实例
<a name="right-size-selection-newer-instances"></a>

Amazon EC2 的早期版本在 Xen 虚拟机监控程序上运行，而新一代则在 [AWS Nitro System](https://aws.amazon.com/ec2/nitro/) 上运行。Nitro System 将主机硬件的几乎所有计算和内存资源都提供给您的实例。这会提高整体性能。[从 Xen 迁移到基于 Nitro 的实例时](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/migrate-to-xen.html)，需要考虑一些特殊因素。例如，[AWS Window AMIs s](https://docs.aws.amazon.com/ec2/latest/windows-ami-reference/windows-amis.html) 使用微软安装媒体使用的默认设置和自定义项进行配置。定制包括支持最新一代实例类型（[在 Nitro System 上构建的实例](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/instance-types.html#ec2-nitro-instances)）的驱动程序和配置。

如果您要从自定义 Windows AMIs 或亚马逊 AMIs提供的 Windows 启动在 2018 年 8 月之前创建的实例，我们建议您完成 Amazon EC2 文档中从[迁移到最新一代实例类型的](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/migrating-latest-types.html)步骤。

### 使用可爆发实例
<a name="right-size-selection-use-burstable"></a>

虽然可爆发实例是节省计算成本的好方法，但我们建议您在以下情况下避免使用这些实例：
+ 具有桌面体验的 [Windows Server 的最低规格](https://learn.microsoft.com/en-us/windows-server/get-started/hardware-requirements#ram)要求有 2GB 的 RAM。避免将 t3.micro 或 t3.nano 实例与 Windows Server 结合使用，因为它们缺少最低的 RAM 量。
+ 如果您的工作负载波动较大，但又无法长时间保持闲置状态以积累突增积分，则使用普通 EC2 实例要比使用可爆发实例更高效。我们建议[监控您的 CPU 积分](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances-monitoring-cpu-credits.html)以验证这一点。
+ 在大多数情况下，我们建议您避免在 SQL Server 中使用可爆发实例。SQL Server 的许可基于CPUs 分配给实例的 v 数。如果 SQL Server 一天中大部分时间处于闲置状态，则您需要为未充分利用的 SQL 许可证支付费用。在这些情况下，我们建议您将多个 SQL Server 实例整合到一个更大的服务器上。

## 后续步骤
<a name="right-size-selection-next-steps"></a>

我们建议您采取以下后续步骤来优化 Amazon EC2 Windows 实例的成本：
+ 使用最新一代的 EC2 实例以获得最佳性价比。
+ 使用搭载 AMD 处理器的 EC2 实例将计算成本降低 10%。
+ 通过选择与您的工作负载相匹配的 EC2 实例类型，最大限度地提高资源利用率。

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


****  

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

如果您必须更改 EC2 实例类型，通常只需对服务器进行一次重启即可完成这一操作。有关更多信息，请参阅 Amazon EC2 文档中的[更改实例类型](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-resize.html)。

在更改您的实例类型之前，我们建议您考虑以下内容：
+ 您必须先停止由 Amazon EBS 支持的实例，然后才能更改其实例类型。当实例停止时，请务必计划停机时间。停止实例并更改其实例类型可能需要几分钟时间，重新启动实例所用的时间则由应用程序的启动脚本决定。有关更多信息，请参阅 Amazon EC2 文档中的[停止和启动您的实例](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Stop_Start.html)。
+ 当您停止并启动实例时， AWS 会将该实例移至新硬件。如果您的实例有公有 IPv4 地址，则 AWS 释放该地址并为您的实例提供新的公有 IPv4 地址。如果您需要一个不变的公共 IPv4 地址，请使用[弹性 IP 地址](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html)。
+ 您不能更改已启用了[休眠](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html)的实例的实例类型。
+ 您无法更改[竞价型实例](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-requests.html#stopping-a-spot-instance)的实例类型。
+ 如果您的实例处于自动扩缩组中，则 Amazon EC2 Auto Scaling 会将已停止的实例标记为运行状况不佳，可能会终止它并启动替换实例。为防止出现此情况，您可以在更改实例类型时，为组暂停扩展流程。有关更多信息，请参阅 Amazon EC2 Auto Scaling 文档中的[暂停和恢复自动扩缩组的进程](https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-suspend-resume-processes.html)。
+ 当您更改带有 NVMe 实例存储卷的实例的实例类型时，更新的实例可能会有额外的实例存储卷，因为即使未在 Amazon 系统映像 (AMI) 或 NVMe 实例块储存设备映射中指定，所有实例存储卷都可用。否则，已更新的实例通常具有您在启动原始实例时指定的相同实例存储卷数。

## 其他资源
<a name="right-size-selection-resources"></a>
+ [亚马逊 EC2 实例类型](https://aws.amazon.com/ec2/instance-types/)（AWS 文档）
+ [AWS 优化与许可评测](https://aws.amazon.com/optimization-and-licensing-assessment/)（AWS 文档）