

# 关于合理调整大小的提示
<a name="tips-for-right-sizing-your-workloads"></a>

本部分提供了一些提示，可帮助您合理调整 EC2 实例和 RDS 数据库实例的大小。

## 使用性能数据合理调整大小
<a name="right-size-using-performance-data"></a>

 分析性能数据以合理调整 EC2 实例的大小。确定闲置的实例和未充分利用的实例。要查找的关键指标是 CPU 利用率和内存利用率。确定四周期间内最高 CPU 利用率和内存利用率低于 40% 的实例。您需要合理调整这些实例的大小，以降低成本。 

 对于计算优化型实例，请记住以下几点： 
+  关注最近的实例数据（旧数据可能不起作用）。 
+  重点关注运行时间已至少达到您的一半观察时间的实例。 
+  忽略可突增实例系列（T2 实例类型），因为这些系列通常在很长一段时间内以较低的 CPU 百分比运行。 

 对于存储优化型实例（I2 和 D2 实例类型），其关键特点是数据 IOPS 较高，请重点关注 IOPS 以查看实例是否过度预置。对于存储优化型实例，请记住以下几点： 
+  不同大小的实例具有不同的 IOPS 评级，因此请根据每种实例类型定制报告。从最常用的存储优化型实例类型开始。 
+  峰值 NetworkIn 和 NetworkOut 值以每分钟字节数为单位进行衡量。使用以下公式将这些指标转换为以每秒兆位数 (Mbps) 为单位： 

   最大 NetworkIn（或 NetworkOut）x 8（字节转换为位）/1024/1024/ 60 = Mbps 的数量 
+  注意当天输入/输出和 CPU 百分比指标如何变化，以及是否有需要满足的峰值。 

 如果您发现四周期间内的最大内存利用率低于 40%，则合理调整内存的大小。AWS 提供了[示例脚本](https://aws.amazon.com/code/amazon-cloudwatch-monitoring-scripts-for-linux/)，用于监控运行 Linux 的 EC2 实例上的内存和磁盘空间利用率。您可以配置这些脚本以向 Amazon CloudWatch 报告指标。 

 分析 Amazon RDS 数据库实例的性能数据时，请重点关注以下指标，以确定实际使用情况是否低于实例容量： 
+  平均 CPU 利用率 
+  最大 CPU 利用率 
+  最小可用 RAM 
+  每秒从磁盘读取的平均字节数 
+  每秒写入磁盘的平均字节数 

## 根据使用需求合理调整大小
<a name="right-size-based-on-usage-needs"></a>

 在监控当前性能时，请确定以下使用需求和模式，以便您可以利用潜在的合理调整大小选项： 
+  **稳定状态** – 负载在一段时间内保持相对恒定的水平，您可以准确地预测可能的计算负载。对于这种使用模式，您可以考虑预留实例，这可以节省大量成本。 
+  **可变，但可预测** – 负载发生变化，但按可预测的计划进行。[AWS Auto Scaling](https://aws.amazon.com/autoscaling/) 非常适合需求模式稳定且使用量每小时、每天、每周不停波动的应用程序。当您遇到高峰流量或可预测的流量波动时，您可以使用此功能纵向扩展或缩减 Amazon EC2 容量。 
+  **开发/测试/生产** – 开发、测试和生产环境通常仅在工作时间使用，而在晚上、周末和节假日可以关闭。（您需要依靠标记来确定开发/测试/生产实例。） 
+  **临时** – 对于启动时间灵活且可以中断的临时工作负载，您可以考虑出价购买 Amazon EC2 竞价型实例，而不使用按需型实例。 

## 通过关闭空闲实例合理调整大小
<a name="right-size-by-turning-off-idle-instances"></a>

 降低运营成本的最简单方法是关闭不再使用的实例。如果您发现实例闲置了两周以上，则可以安全地停止甚至终止它们。在终止空闲两周或更短时间的实例之前，请考虑： 
+  谁拥有实例？ 
+  终止实例的潜在影响是什么？ 
+  如果需要还原实例，重新创建实例有多难？ 

 停止 EC2 实例可使所有连接的 EBS 卷保持运行。这些卷将继续产生费用，直至您将其删除。如果您再次需要此实例，可以轻松地将其重新打开。但是，终止实例会自动删除连接的 EBS 卷，如果再次需要该实例，则需要重新预置。如果您决定删除 EBS 卷，请考虑存储该卷的快照，以便在稍后需要时可以还原该卷。 

 另一种降低成本的简单方法是，在开发和生产中使用的实例未处于使用状态的小时数内停止这些实例，然后在需要其容量时重新启动它们。假设每周工作 50 个小时，通过在非工作时间自动停止开发/测试/生产实例，您可以节省 70% 的费用。许多工具可用于自动执行计划，包括 [Amazon EC2 Scheduler](https://aws.amazon.com/answers/infrastructure-management/ec2-scheduler/)、[AWS Lambda](https://aws.amazon.com/lambda/) 和 [AWS Data Pipeline](https://aws.amazon.com/datapipeline/) 以及第三方工具（如 CloudHealth 和 Skeddly）。 

## 通过选择合适的实例系列合理调整大小
<a name="right-size-by-selecting-the-right-instance-family"></a>

 您可以通过迁移到同一实例系列中的其他模型或迁移到另一个实例系列来合理调整实例大小。在同一个实例系列中进行迁移时，只需考虑 vCPU、内存、网络吞吐量和短暂存储。对于 EC2 实例，一个较好的通用规则是，如果最高 CPU 和内存利用率在四周期间内低于 40%，您可以安全地将机器数减半。例如，如果您使用的是 c4.8xlarge EC2，则可以迁移到 c4.4xlarge，这样每 10 天可节省 190 美元。 

 在迁移到其他实例系列时，请确保当前实例类型和新实例类型在虚拟化类型、网络或平台等方面兼容： 
+  **虚拟化类型** – 实例必须具有相同的 Linux AMI 虚拟化类型（PV AMI 与 HVM）和平台（EC2-Classic 与 EC2-VPC）。有关更多信息，请参阅 [Linux AMI 虚拟化类型](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/virtualization_types.html)。 
+  **网络** – EC2-Classic 不支持某些实例，这些实例必须在 Virtual Private Cloud (VPC) 中启动。有关更多信息，请参阅[仅在 VPC 中可用的实例类型](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-vpc.html#vpc-only-instance-types)。 
+  **平台** – 如果当前实例类型支持 32 位 AMI，请确保选择也支持 32 位 AMI（并非所有 EC2 实例类型都支持它）的新实例类型。要查看实例的平台，请转到 Amazon EC2 控制台中的 Instances（实例）屏幕，并选择 **Show/Hide Columns, Architecture**（显示/隐藏卷、架构）。 

 在调整 EC2 实例大小时，已调整大小的实例通常具有您在启动原始实例时指定的相同实例存储卷数。启动实例后，您无法将实例存储卷连接到该实例，因此，如果您想添加实例存储卷，则需要迁移到包含更多卷的新实例类型。 

## 合理调整数据库实例的大小
<a name="right-size-your-database-instances"></a>

 随着性能和容量要求的变化，您可以通过上下调整内存或计算能力来扩展数据库实例。以下是扩缩数据库实例时需要考虑的一些事项： 
+  存储和实例类型是分开的。当您纵向扩展或缩减数据库实例时，存储大小将保持不变，不受更改的影响。 
+  您可以单独修改 Amazon RDS 数据库实例以增加分配的存储空间，或通过更改存储类型（如将通用型 SSD 更改为预置型 IOPS SSD）来提高性能。 
+  在扩展之前，请确保为商业引擎（SQL Server、Oracle）提供了正确的许可，尤其是在自带许可 (BYOL) 的情况下。 
+  确定要在何时应用更改。您可以选择立即应用更改，也可以在为实例指定的维护时段内应用更改。 