在 Amazon Web Services (AWS) 上托管应用程序时,需做出的最关键决策之一就是选择何种 Amazon Elastic Compute Cloud (EC2) 实例类型。EC2 实例是允许您在 AWS 上运行应用程序的虚拟机。它们提供多种规格与配置(称为实例系列),每种都专为特定用途设计。为应用程序选择恰当的实例类型与实例规格对优化性能和降低成本至关重要。然而,由于每个应用程序的需求特征各不相同且会随时间变化,这项任务可谓知易行难。特定系列的 2xlarge 实例可能并非必要,但当应用程序团队要求云运维保障运行时间时,更大规格、更高成本的实例就显得更具吸引力——直至云账单急剧膨胀。
本篇博文中,我们将探讨为应用程序选择最佳 Amazon EC2 实例类型时面临的挑战,并提供相关最佳实践以助您做出正确决策。此外,我们将说明 IBM Turbonomic 等解决方案如何通过机器学习、自动扩展与自动化功能,助您为 AWS 云应用程序实现资源规格的优化。若您已熟悉 Turbonomic 并希望立即开始优化 AWS 环境,敬请即刻开启 30 天免费试用。
EC2 实例根据其 CPU、内存、存储及网络容量等特性进行分类。每种实例类型专为优化特定工作负载而设计,例如通用计算、内存密集型应用程序或计算密集型任务。以下是部分 EC2 实例类型及其主要用例:
为应用程序选择合适的 EC2 实例类型可能是一项艰巨任务。以下是您可能面临的部分挑战:
既然您已了解选择 EC2 实例时最常见的挑战,以下是我们推荐客户与合作伙伴遵循的最佳实践。
选择合适 EC2 实例类型的首要关键步骤是了解工作负载特性。每个应用程序对 CPU、内存、网络和存储的需求各不相同,必须明确了解应用程序稳定运行所需资源。
例如:运行数据库应用程序时,可能需要大容量内存以确保查询效率。而运行计算密集型应用程序时,则需高性能 CPU 支撑。
为了更好地了解工作负载特性,建议使用 AWS CloudWatch 或第三方监控工具收集资源利用率数据。这些数据随后可以用来确定最适合应用程序的实例类型。
CPU 作为 EC2 实例的核心组件,直接决定实例处理能力。若应用程序需要高强度 CPU 性能,应选择核心数更多、时钟频率更高的实例类型。
AWS 提供多种 CPU 优化型实例类型 (链接位于 ibm.com 外部),例如 C5、M5 和 R5 系列,专为高性能计算工作负载设计。这些实例采用新一代定制化 AWS Graviton3 处理器(链接位于 ibm.com 外部)(较 Graviton2 实现显著升级),并为高 CPU 使用率场景进行优化。若应用程序无需高强度 CPU 性能,则可选择无 GPU 且核心数较少的经济型实例,例如 T3 系列。
内存是 EC2 实例的另一关键要素,它决定实例能同时处理的数据量。若应用程序需要大容量内存,应选择内存配置更大的实例类型。
反之,若应用程序无需过高内存需求,则可选择内存配置较小的经济型实例,例如 T3 系列。
AWS 提供多种内存优化型实例类型 (链接位于 ibm.com 外部),例如 X1、R4 和 z1d 系列,专为内存密集型工作负载设计。这些实例配备大容量内存,并为高内存使用率应用程序(如内存数据库)进行优化。
反之,若应用程序无需过高内存需求,则可选择内存配置较小的经济型实例,例如 T3 系列。
网络是 EC2 实例的又一关键要素,它决定实例数据传输的速度。若应用程序需要高性能网络,应选择具备更高网络带宽的实例类型。
AWS 提供多种网络优化型实例类型,例如 C5n 及高性能计算 HPC 系列,专为网络密集型工作负载设计。这些实例配备高速网络接口,并为高网络使用率场景进行优化。
反之,若应用程序无需高性能网络,则可选择网络带宽较低的经济型实例,例如 T3 系列。
存储是 EC2 实例的最后关键要素,它决定实例能存储的数据量。若应用程序需要大容量存储,应选择具备更大存储容量(弹性块存储 EBS)的实例类型。但需谨慎——存储也是最昂贵的云资源之一,闲置及未挂载的 EBS 卷极易产生不必要支出。
AWS 提供多种存储优化型实例类型,例如 I3 和 D2 系列,专为存储密集型工作负载设计。这些实例配备大容量 SSD 存储与本地存储,并为高 IOPS 吞吐量需求的应用程序进行优化。
反之,若应用程序无需大容量存储,则可选择基于 HDD 的小容量存储经济型实例,例如 T3 系列。
AWS 为 EC2 实例提供多种定价模式,包括按需实例、预留实例和竞价实例。每种模式各有优劣,选择最符合工作负载与预算的方案至关重要。
按需实例按小时计费,无需预付费承诺。最适合需求波动或短期项目的工作负载。
预留实例通过一次性预付款大幅降低小时费率。最适合用量可预测且需长期稳定的工作负载。
竞价实例允许对闲置 EC2 容量进行竞价,可实现显著成本节约。但仅适用于能容忍中断且起止时间灵活的工作负载。
选定 EC2 实例类型后,必须对应用程序进行测试与优化,确保其高效运行。可使用 AWS CloudWatch 或 IBM Instana 等工具监控应用性能,识别瓶颈与改进空间。
选择正确的 EC2 实例类型对 AWS 基础设施的性能与成本效益至关重要。通过了解工作负载特性,综合考量 CPU、内存、网络及存储需求,选择合适的定价模式,并进行测试优化,可确保 EC2 实例发挥最大价值。
需注意选择最佳实例类型非一劳永逸,工作负载与基础设施需求会随时间变化。持续评估与优化 EC2 实例类型,有助实现 AWS 基础设施的最佳性能与成本效益。
IBM Turbonomic 可通过持续评估 AWS 应用程序资源需求,自动生成节约成本并保持 EC2 实例规模优化的具体措施,帮助您自动化管理此过程。Turbonomic 运用机器学习与自动化技术,可轻松集成 AWS 及 AWS 计费账户,并在 30 分钟内生成优化方案。