乐趣区

关于后端:AWS-EC2-必知必会小技巧-机型特点解析和选型技巧分享

背景

AWS EC2 是 AWS 的弹性计算服务,为宽广开发者提供简略便捷弹性的虚拟机,是 AWS 历史最悠久的服务之一(另外一个是 S3),从 2006 年公布至今,曾经倒退了近 17 年历史。

置信不少刚开始接触 EC2 的敌人都有如下相似的感触:

  • AWS EC2 的类型切实是太多了(数百种)!我到底应该抉择哪一种 EC2 机型既能满足业务需要且不超过预算?
  • EC2 的 CPU 和 Memory 配置一样,是不是代表它们的性能差别也一样?
  • 采纳什么样的 EC2 付费模式才比拟划算?

回忆 EC2 刚开始公布时,只有两种 机型可供选择,而现在则有 781 种,目不暇接的 EC2 类型必然会让开发者们陷入抉择艰难症。本文将 简略介绍 一些 EC2 机型抉择的 小技巧,目标是为了帮忙读者可能更快地抉择适合的 EC2 机型。

机型分类和抉择

总体分类

只管 AWS 有数百种 EC2 机型,但其实只有以下几种大的分类:

  • General Purpose:Compute、Memory 和 Networking 资源绝对均衡,即 M 系列和 T 系列。绝大多数场景用 General Purpose 就足够了;
  • Compute Optimized:计算优化型,适宜计算密集型服务,即 C 系列;
  • Memory Optimized:内存优化实例旨在为解决大型数据集的工作负载提供疾速性能,次要有 R 和 X 系列;
  • Accelerated Computing:减速计算实例应用硬件加速器或协处理器来执行性能,例如浮点数计算、图形处理或数据模式匹配,比在 CPU 上运行的软件更高效;
  • Storage Optimized:存储优化实例专为须要在本地存储上对十分大的数据集进行高速间断读写访问的工作负载而设计;
  • HPC Optimized:这是 AWS 新出一个分类(HPC 系列),次要实用于须要高性能解决的应用程序,例如大型简单模仿和深度学习工作负载。

一般来说,每一个具体的 EC2 型号都从属于 某个带有相应数字序号的 Family,比方以 General Purpose 类型的 M 系列为例:

  • M7g / M7i / M7i-flex / M7a
  • M6g / M6i / M6in / M6a
  • M5 / M5n / M5zn / M5a
  • M4

从序号上咱们不难看出,M7 是最新一代的产品,而 M4 则是绝对比拟旧款的型号。序号越大,则阐明对应的机型和 CPU 型号也就是越新,等同配置下价格也有可能会更实惠(硬件总是在一直升值)。

要害参数

从 AWS 一个典型的 EC2 型号介绍,咱们能够提取出以下几个要害参数:

1. EC2 的具体型号
个别以 <family>.<size> 命名,比方 m7g.large / m7g.xlarge 等。对于 EC2 来说,某种型号在全局是惟一的;

2. CPU 和 Memory 大小
即上图中的 vCPU 和 Memory 大小。绝大多数 EC2 机型都是 1:4,即 vCPU 和 Memory 的数量上的比值。比方,当 vCPU 为 1 时,Memory 通常是 4GiB;当 vCPU 为 2 时,Memory 通常是 8GiB,以此类推;

3. 实例存储
EC2 通常能够挂载不同类型的长久化存储盘,次要有以下几种:

  • EBS

    EBS 是 AWS 的分布式块存储服务,通常也是大多数 EC2 机型默认抉择的长久化存储形式。有些机型只能抉择应用 EBS。EBS 是与具体 AZ 相绑定,读写提早当然会比本地 SSD 要差一些,但在大多数场景下也能承受。依据 IOPS 和吞吐量 等一些参数的不同,EBS 也有不同的类型,比方:

    • gp2/gp3:底层是通用型的 SSD,官网举荐应用性价比更好的 gp3。个别默认是 3000 IOPS,然而也反对按需无停机晋升 IOPS(这意味着须要多花点钱);
    • io1/io2:更强的性能和更贵的价格,同时还反对 Multi Attach 这类个性(个别其余类型的 EBS 只能挂载一台 EC2)。
  • 本地存储

    某些机型除了反对挂载 EBS 外,同时还反对本地存储,当然,价格上也会更贵一些。个别这类机型的型号上都会 带有 d,比方:m7g.large 是 EBS-Only 的机型,而 m7gd.large 则是带有 1 块 118GiB NVME SSD 本地存储的机型。某些非凡机型还反对容量更大本地 HDD;

4. EBS 带宽
对于一些比拟新且有专门的 EBS 优化的 EC2 机型,AWS 都会为其装备专用的 EBS 带宽。这意味着在高数据量吞吐的场景,EBS 优化机型总能享有更好的吞吐而不与本机上的网络带宽有资源竞争;

5. 网络带宽
即 EC2 机型对应的网络带宽。

6. CPU 型号
大多数场景下,咱们能看到以下几种厂商的 CPU:

  • AWS 自研的基于 ARM 架构的 Graviton 处理器(目前曾经到 Graviton 3),比方 M7g 系列;
  • Intel x86-64 架构的 CPU;
  • AMD x86-64 架构的 CPU;

一般来说,相近配置上价格上是:Intel > AMD > Graviton,性能则刚好反过来。对于一些性能不敏感的通用化场景,用户能够思考应用 ARM 架构的机型,这样能取得更高性价比。

AWS 是最早尝试将 ARM 架构引入服务器 CPU 畛域的云厂商,通过多年的研发,Graviton CPU 曾经获得长足的提高,性价比上有很大的竞争劣势,预计将来 AWS 会推动越来越多的客户应用 Graviton CPU 机型。

7. 虚拟化技术
不同的 EC2 机型底层应用的虚拟化技术也是不完全相同的,这也导致了一些参数上的差别。比方对于较新的 EC2 机型,个别都采纳 Nitro 虚拟化技术。Nitro 是 AWS 最新的虚拟化技术,将很多虚拟化行为都卸载到了硬件上,而软件上则能够做得绝对较轻量,从而虚拟化性能会更强,从用户视角感触到则是雷同配置下会有更好的性能(因为虚拟化的 Overhead 更低了)。

8. 是否用于机器学习场景
随着 LLM 技术的倒退,越来越多的厂商会抉择在云端训练本人的模型。如果想在 AWS EC2 应用模型训练,个别会应用 Accelerated Computing 这个大类的机型,比方:

  • P 系列和 G 系列机型:这部分应用的是 Nvidia 的 GPU 芯片。在 re:Invent 2023 大会上,Nvidia 与 AWS 开启了更深度的策略单干,AWS 打算应用 Nvidia 最新最强的 GPU 来打造一个专门用于生成式 AI 的算力平台;
  • Trn 和 Inf 系列:AWS 除了应用 Nvidia GPU,本人也研发专用于机器学习的芯片,比方用于训练的 Trainium 芯片和模型推理的 Inferentia 芯片。Trn 系列和 Inf 系列的 EC2 机型则别离对应这两种 AWS 自研的机器学习芯片;

Key Takeway

依据咱们上文的一些简略介绍(EC2 能够说的内容远不止于此),咱们总结了一下小技巧供读者参考:

  1. 对于大多数 EC2 机型,个别序号越大,CPU 型号越新,性能会越强,价格反而会越便宜,即性价比更高;
  2. EC2 通用型中 T 系列绝对便宜,并且提供了一种 Burstable CPU 的个性:实例在基线性能下运行会累积 CPU 积分,当遇到基线性能之上的高负载场景时可依据 CPU 积分运行超出基线性能肯定工夫的能力(费用不变),但随之也带来 T 系列性能不会太高,广泛带宽也低且没有 EBS 优化。因而 T 系列比拟适宜非性能验证的测试环境;
  3. EC2 通用型系列中如果谋求性价比,可优先选择 AWS ARM 架构;
  4. AWS 官网的 EC2 Pricing 十分难以浏览,举荐应用 Vantage 的 https://ec2instances.info/ 来查阅价格信息(这也是一个开源我的项目);
  5. 对于大多数云用户来说,EC2 的费用个别是其大头收入,这里有几个伎俩能够尽量减低这方面的开销:
  6. 充分运用云的弹性:让你的架构尽可能弹性,按需应用算力,这里可应用 AWS 的 Karpenter 或者 Cluster Autoscaler 来让你的 EC2 具备灵便伸缩的能力;
  7. 应用 Spot 实例:Spot 实例的价格可比 On-Demand 实例便宜 30% 甚至 90%,然而会被抢占,无奈长时间稳固运行。AWS 会在抢占前 2 分钟揭示你,而后就进行抢占。Spot 实例如果底层治理得好,非常适合弹性计算且可容忍中断的场景,比方 SkyPilot 我的项目就是拿不同的云的 Spot 实例进行机器学习训练;
  8. 优化付费模式:除了技术手段,咱们其实还能够通过购买 Saving Plans 等形式来取得比 On-Demand 更低廉的单位应用工夫,但毛病就是灵便度升高,比拟实用于整体业务架构绝对稳固的场景。

总结

如何高效抉择和应用 EC2 必须依据用户的具体场景就地取材,具体问题具体分析,是一件继续迭代优化的工作。总而言之,充分运用云的弹性和理解不同 EC2 机型的要害参数,是咱们每一个 AWS 用户必须把握的技巧。

对于 Greptime 的小常识:

Greptime 格睿科技于 2022 年创建,目前正在欠缺和打造时序数据库 GreptimeDB,格睿云 GreptimeCloud 和可观测工具 GreptimeAI 这三款产品。

GreptimeDB 是一款用 Rust 语言编写的时序数据库,具备分布式、开源、云原生和兼容性强等特点,帮忙企业实时读写、解决和剖析时序数据的同时升高长期存储老本;GreptimeCloud 能够为用户提供全托管的 DBaaS 服务,可能与可观测性、物联网等畛域高度联合;GreptimeAI 为 LLM 量身打造,提供老本、性能和生成过程的全链路监控。

GreptimeCloud 和 GreptimeAI 已正式公测,欢送关注公众号或官网理解最新动静!

官网:https://greptime.cn/

GitHub: https://github.com/GreptimeTeam/greptimedb

文档:https://docs.greptime.cn/

Twitter: https://twitter.com/Greptime

Slack: https://greptime.com/slack

LinkedIn: https://www.linkedin.com/company/greptime/

退出移动版