课程
Amazon EC2(弹性计算云)是 AWS 的关键基石。它让我们能够在云端启动可按需扩展的虚拟服务器。不过,EC2 实例并非千篇一律,选择合适的类型会对性能与成本产生显著影响。
在本指南中,我将解释不同的 EC2 实例类型、它们的用途,以及如何为您选出最合适的一款。
什么是 EC2 实例类型?
当您在AWS 中启动实例时,您需要选择一个实例类型。每种类型都是一套不同的计算资源组合,包括 CPU、内存、存储和网络能力。这些类型有助于将应用需求与合适的资源量相匹配,避免为未使用的资源付费。
因此,选择正确的实例类型是构建高效、具性价比基础设施的基石。这是确保云环境运行顺畅并能随工作负载扩展的最佳做法之一。
实例家族的作用
AWS 会将其实例类型归类为不同的家族。每个家族都有相似的性能特征,因此更容易为您的任务找到合适选项。
例如:
- 计算优化型实例 适用于批处理和高性能计算。
- 内存优化型实例 更适合需要大量内存的作业,如内存数据库或实时分析。
- 通用型实例 适用于需要在计算、内存和网络资源间取得平衡的场景。
- 存储优化型实例 针对低延迟 I/O(输入/输出)操作进行了优化。
这种结构让我们可以更快锁定符合特定用例的选项。
EC2 实例命名规则
AWS EC2 实例类型遵循命名规则,可帮助您了解每种实例的能力或优化方向。看看如何解读这些名称,从而更有把握地做出选择。
格式拆解
实例类型由实例家族和 实例大小命名。实例名称的第一部分描述家族,第二部分表示大小,两者以句点 . 分隔。
以 m5.large 为例,它由三个关键部分组成:
- 系列(
m) 表示实例的通用用途。此处m代表通用型。 - 代数(
5) 表示版本号。数字越大通常意味着硬件更新、性能更好。 - 大小(
large) 指的是 CPU 和内存等资源规模。
m5.large 表示您将获得一台通用型、第五代、资源适中的实例。
下图对该格式进行了可视化说明:

EC2 实例类型命名规则。来源:AWS 文档
示例与解读
再看几个示例并进行解读:
t4g.micro是一款可突发实例,采用 Graviton(基于 ARM)处理器,适用于轻量、偶发的工作负载。r6g.xlarge是第 6 代内存优化型实例,同样基于 Graviton,非常适合内存密集型应用,如内存数据库。c7gn.2xlarge是第 7 代计算优化型实例,具备增强网络和 EBS 支持,由 Graviton 处理器驱动。
以下列出了一些常见系列及其对应选项与标记说明。
|
Series |
Options |
|
|
完整的系列与选项列表请参阅 AWS 文档。
现在,让我们更详细地了解不同实例类型。
通用型实例
通用型实例在计算、内存和网络能力之间实现平衡。当您的工作负载没有明显单项倾向时,它们是理想选择,适用于 Web 服务器、开发环境和后端系统。
AWS 在此类别提供两大系列:T 系列与 M 系列。下面分别介绍:
T 系列
T 系列实例面向可突发性能。它们提供一个基线 CPU 能力,在需要时可临时提升。该突发机制基于积分系统:当实例低于基线使用 CPU 时会累积积分;当需求上升时,消耗积分以提升性能。
如果启用“无限”模式,实例可在积分用尽后继续突发,但会为额外用量计费。
这些实例非常适合 CPU 使用可变或低至中等的工作负载,如:
- 低流量 Web 应用
- 开发与测试环境
- 小型数据库
- CI/CD 流水线
假设您运行一个小型 Web 应用。大多数时候 CPU 使用率很低,系统平稳运行。当您发起活动导致流量激增时,它会用已累积的积分来应对额外负载。高峰过后,又回归基线并重新积累积分。
常见类型包括 t4g、t3 和 t2,并提供如 t4g.nano 等不同规格。
M 系列
M 系列实例提供均衡的 CPU 与内比,大约每个 vCPU 配 4GB 内存。适用于无需专项计算或内存配置的一般工作负载,通用性强。
我们可以将其用于:
- 中小型数据库(如 MySQL、PostgreSQL)
- 应用服务器
- 企业应用的后端服务
- 缓存层
- 游戏服务器
常见示例包括 m6i、m8g 和 mac,且均提供多种规格,如 m8g.medium。
计算优化型实例
当工作负载计算量大、但对内存需求不高时,计算优化型实例非常合适。它们为 CPU 密集型任务提供高速性能,适用于分析、媒体编码或游戏基础设施。
AWS 通过 C 系列提供这类能力。我们来详细了解:
C 系列
C 系列实例专为高计算性能且较低内存开销而设计。它们提供更高的 CPU/内存比,非常适合对速度要求高、而对存储或内存要求不那么高的应用。
为实现最大吞吐和效率,这些实例采用最新处理器,包括 Intel、AMD 以及 AWS Graviton 芯片。
我们可以将其用于:
- 高性能 Web 服务器
- 视频编码与媒体转码
- 科学模拟与建模
- 批处理与数据计算
- 需要低延迟与快速 Tick 率的游戏服务器
您可能会遇到的示例包括 c6g、c7i、c5n 和 c4。每种都有多个规格,便于按需扩缩。
计算优化型实例的优势在于:
- 低延迟:响应更快,适合流媒体、游戏等实时应用。
- 高速处理:凭借高主频与优化的 CPU 内核,可每秒处理数百万请求。
- 具成本效益的扩展:在不为多余内存买单的前提下增加计算能力。
可持续性:许多 C 系列采用 AWS Graviton 处理器,更节能,有助于降低碳足迹。
内存优化型实例
内存优化型实例最适合对内存需求高于 CPU 或存储的工作负载。它们能够处理高性能数据库和内存应用,将大型数据集完全放入内存,从而实现超快响应。
R 系列
R 系列实例专为内存密集型工作负载打造。它们提供更高的内存与 vCPU 比例,非常适用于需要大量 RAM 而非强大计算能力的应用。
我们可以将其用于:
- 内存缓存:适用于 Redis、Memcached 等需要极速数据访问的工具。
- 实时大数据分析:在内存中处理与分析数据,延迟更低。
- 企业应用:适用于需要充足内存以保证稳定运行的大型应用。
常见选项包括 r5、r6a、r8g 和 r4。每种均提供不同规格以满足您的需求。
X 系列与 Z 系列
X 系列实例提供极大的内存容量,专为内存密集型企业工作负载设计。常见场景包括:
- SAP HANA
- 内存数据库
- 实时的大规模分析
常见型号有 x1e、x2gd 和 x8g。
Z 系列实例有所不同。它们兼具高内存与高 CPU 主频,非常适合:
- 电子设计自动化(EDA)
- 金融仿真
- 大型关系型数据库
- 计算光刻
如果您的工作负载既需要强单线程性能,又需要大量 RAM,Z 系列(如 Z1d)能提供均衡的性能表现。
存储优化型实例
存储优化型实例使用本地直连的高速 SSD(NVMe),非常适合需要极快且可靠存储的工作负载。因此可用于 NoSQL 数据库、数据湖,或需要高 IOPS(每秒输入/输出操作)的规模化数据处理。
来看一些常见的存储优化型实例:
I 系列、D 系列、H 系列
下表展示了各实例系列的细节:
|
I-series |
D-series |
H-series |
|
|
Primary use |
高 IOPS 的事务型工作负载与低延迟数据访问。 |
数据密集型应用、大数据处理,以及需要大容量存储的工作负载。 |
具有存储瓶颈需求的高性能计算(HPC)应用。 |
|
Ideal for |
NoSQL 数据库(如 Cassandra、MongoDB)、事务型数据库、实时分析与分布式文件系统。 |
数据湖、Hadoop 分布式计算、日志处理与大规模数据分析。 |
HPC 仿真、科学计算、地震分析,以及具有大型本地数据集的机器学习。 |
|
Storage |
高速 NVMe SSD 本地存储(易失)。 |
大容量本地存储,通常为 HDD 或 SSD(取决于实例类型)。 |
高吞吐的 NVMe SSD 本地存储(易失)。 |
|
Performance |
极高 IOPS 与低延迟。 |
高顺序读/写吞吐量,随机 IOPS 低于 I 系列,但非常适合大文件流式处理。 |
提供出色吞吐与高 IOPS,面向数据密集型仿真和 HPC 工作负载进行定制。 |
|
Examples |
I8g, I7ie, I3en |
D3, D3en |
H1 |
关于 I 系列、H 系列和 D 系列的完整列表,请参阅文档。
本地存储性能
本地存储采用 NVMe SSD,为应用提供极速性能、极高 IOPS、亚毫秒级延迟和高吞吐。但这类存储是易失性的,实例停止或终止后数据会丢失。
因此,易失性存储主要用于:
- 临时工作空间(scratch space)
- 缓冲/缓存存储
- 高速临时数据库(如 Redis、具备副本的 Cassandra)
相比之下,EBS(弹性块存储)卷为持久化存储,即使实例停止也能保留数据。EBS 通过网络连接,具备高耐久性,并提供如快照等便捷备份与恢复功能。非常适合重视数据持久性的工作负载,如数据库与关键文件。
易失性存储性能惊人,但缺乏数据持久性;EBS 提供出色的耐久性与韧性,适用于既要性能又要数据保护的工作负载。
加速计算型实例
加速计算型实例(又称硬件加速实例)适用于需要专用硬件的场景,如 GPU、FPGA(现场可编程门阵列)或 AWS 自研芯片,用于分担在 CPU 上效率较低或过慢的计算密集型任务。
因此,它们提供更优性能,适合需要大规模并行处理或复杂计算的工作负载。
基于 GPU 的实例(P 与 G 家族)
基于 GPU 的实例非常适合需要强大并行计算的任务。它们基于 NVIDIA GPU,针对重负载工作负载进行优化,如机器学习模型训练、3D 渲染、高端游戏与其他图形密集型任务。
GPU 实例的两个关键家族是:
- P 家族(如
P4、P5):配备 NVIDIA GPU,面向机器学习(ML)与高性能计算(HPC)。 - G 家族(如
G4、G5):同样由 NVIDIA GPU 驱动,适合图形工作负载、ML 推理与游戏串流。
专用 AI/ML 实例(Inf 与 Trn 家族)
针对 AI 与机器学习工作负载,Inferentia 优化(Inf)与 Trainium 优化(Trn) 家族采用 AWS 自研芯片,如 AWS Inferentia 与 AWS Trainium。它们可规模化进行深度学习的训练与推理,提供出色的性价比。
- Inf 家族(如
Inf1、Inf2):基于 AWS Inferentia 芯片,适用于低延迟、高吞吐的推理任务。 - Trn 家族(如
Trn1、Trn2):为分布式深度学习训练优化,具备高速互联与强大算力,由 AWS Trainium 芯片驱动。
这些实例具备良好扩展性,并支持 TensorFlow、PyTorch 与 Apache MXNet 框架,从而提升效率并保证流畅性能。
我们可以将其用于:
- 大规模深度学习训练: 使用 Trn1 以更低成本实现高性能的大模型训练。
- 低成本 AI 推理: 使用 Inf1 实现快速、低成本的模型推理。
- 大规模 AI 部署: 支持每秒数百万次推理的环境,如推荐引擎、语音识别与自动驾驶。
如何选择合适的 EC2 实例?
实例类型繁多,要想充分利用 AWS,确实不易下手。下面看看您和团队如何在性能、成本与可扩展性之间做出更有把握的权衡。
关键决策因素
先从工作负载的核心需求入手。明确所需的 CPU、内存、存储与网络要求,不同工作负载需要的实例类型不同。
还需要考虑流量特征。是稳定可预期,还是会在特定时段突增?这有助于决定是否选择可按需扩展的方案。
此外我们通常也有成本约束,需要在性能与预算之间权衡。如果不需要持久化存储,使用易失性本地存储相较 EBS 卷可节省不少费用。
AWS 选型工具
好在 AWS 提供了多种工具帮助缩小范围。比如:
- Instance Explorer:可按规格快速筛选实例类型。
- AWS Compute Optimizer:分析您当前的实例使用情况,并在可行时给出更优建议。
- AWS Pricing Calculator:预估成本,便于在上线前比较多种方案。
基准测试与试验
即便有这些工具,亲自跑测试仍然很有价值。在您的环境中对不同实例进行基准测试,可以了解它们在真实工作负载下的表现。这能让我们更准确地把握性能、延迟与成本,并聚焦对我们真正重要的指标。
成本与采购选项
在 EC2 上,采购方式会直接影响总体成本。AWS 提供多种面向不同工作负载的采购选项,下面看看如何为当前项目选到合适方案,并有效管理云成本。
按需实例
按需实例提供最高灵活性。我们随用随启、按秒计费、随时关闭,无需任何承诺。非常适合:
- 短期项目
- 突发或不可预测的工作负载
- 无需前期规划、快速起步
但这种灵活性价格更高。对于长期运行或可预期的工作负载,其他选项可在长期内节省大量成本。
预留实例与竞价实例
预留实例适用于我们确定会长时间稳定运行的工作负载。承诺 1 年或 3 年期,相比按需定价可节省最高 75%。这是运行稳定、常开型应用的明智之选。
竞价实例则更经济实惠。AWS 会将未使用的容量以大幅折扣(最高 90%)提供,但也可能短时间内被回收。因此更适合可承受中断的作业,例如:
- 批处理
- 数据分析
- CI/CD 工作负载
- 无状态服务
快速对比:按需 vs. 预留 vs. 竞价实例
下面这张并排表格可帮助您决策:
|
Option |
Best for |
Cost |
Flexibility |
Good to know |
|
On-demand |
Short-term or unpredictable work |
Highest |
Very flexible |
Great for testing or unpredictable loads |
|
Reserved |
Long-term, steady workloads |
Lower (with commitment) |
Less flexible |
1 or 3-year term saves up to 75% |
|
Spot |
Interruptible, fault-tolerant tasks |
Lowest |
Limited (can be stopped anytime) |
Up to 90% savings, but no guarantees |
更详细的比较,请参阅AWS 官方网站。
成本优化建议
为更进一步节省预算,我们可以借助以下工具与策略:
- Savings Plans:跨 EC2 等服务的灵活承诺式定价。通过承诺稳定用量可节省最高 72%。
- 自动扩展:根据需求自动调整容量,避免过度预置。
- 规格优化(Right-sizing):定期审查实例类型与规格以确保匹配。小调整也可能带来长期可观节省。
总结
EC2 实例并不存在“一刀切”,这反而是件好事。无论是搭建一个快速的开发环境,还是扩展复杂的机器学习流水线,AWS 都为我们提供了按需取用的灵活性。
关键在于理解工作负载、明确性能目标,并时刻关注成本。借助工具、测试与一定的试错,有意图地做出选择,才能最大化发挥基础设施的价值。
如果您想继续提升 AWS 技能或深入探索 EC2 的能力,以下资源值得一看:
- Introduction to AWS – 入门了解 AWS 的核心概念与服务。
- AWS Cloud Technology and Services – 探索 AWS 各项服务及其在云生态中的协作方式。
- AWS Security and Cost Management – 学习保护 AWS 环境与有效成本管理的最佳实践。
- Introduction to AWS Boto in Python – 动手课程,讲解如何使用 Boto3(AWS 的 Python SDK)来自动化任务与管理 AWS 资源。
这些资源将以实践示例与真实应用,帮助您将 AWS 技能更进一步。
FAQs
ECS 与 EC2 有何区别?
EC2 是一种虚拟机服务,您需要管理整个虚拟机,包括操作系统和应用程序。相对地,ECS 是托管的容器编排服务,专注于运行与扩展容器化应用。
AWS EC2 是无服务器(Serverless)吗?
EC2 需要您自行管理与配置环境。
什么是 AWS 中的弹性 IP(Elastic IP)?
在 AWS 中,弹性 IP 地址是一种静态的公网 IPv4 地址,您可以将其关联到实例或网络接口,以便即使实例停止、重启,或迁移到其他区域时,也能保持一致的公网 IP。
如何删除一台 EC2 实例?
登录 AWS 管理控制台,进入 EC2 控制台,选择要删除的实例。在“实例状态”下拉菜单中选择“Terminate(终止)”,在提示时确认终止操作。
AWS 中的 AMI 是什么?
Amazon 机器映像(AMI)是一个模板,包含启动一台 Amazon 弹性计算云(EC2)实例所需的信息。
基于 Graviton 的实例与基于 Intel 或 AMD 的实例相比如何?
Graviton 实例采用 ARM 架构,在许多工作负载上具备更好的性价比与能源效率。但需验证与 x86 应用的兼容性。
我是内容策略专家,热衷于将复杂主题化繁为简。我曾帮助 Splunk、Hackernoon 和 Tiiny Host 等公司为其受众打造兼具吸引力与信息量的内容。
