如何为系统选择最佳 EC2 实例

如何为系统选择最佳 EC2 实例

我在 AWS-EC2 的 t3a.medium 实例类型中托管了一个电子商务网站。现在流量不断增加,CPU 利用率非常高,网站一次又一次停止工作。查看 htop,mysql 正在利用最大 CPU。

由于当前实例的 vcpu 只有 2 个,所以我想更改实例类型。但问题是如何知道哪种类型最适合我的系统?

答案1

  1. 更改实例类型很容易。不要试图猜测哪种类型最适合您 - 相反测试一下. 如果你有t3a.培养基现在尝试升级到t3a.大。 或者m5.大- 如果您最大限度地利用 t3a.large 并且不断耗尽 CPU 信用,它可能会更便宜(检查实例详细信息中的监控选项卡)。

    如果你的应用内存占用很大,请查看r5。* 实例,如果它占用大量 CPU,请查看c5。* 实例。对于某些工作负载来说,它们往往比通用实例更便宜。

  2. 最佳做法是将数据库与应用程序/Web前端分离,不要将它们托管在同一个实例上。将数据库移动到 AWS RDS 服务 - 它将为您管理它,包括备份、升级、故障转移等。

  3. 一旦你的应用程序与数据库分离查看自动缩放- 随着流量的增长,您无需升级到越来越大的实例,您可以水平缩放通过添加更多较小的实例,所有实例都配置相同。这样,您可以在空闲时间(夜间、周末)使用较少的实例,而在繁忙时间添加更多实例。这样,您的每小时账单将随着流量负载而波动。

底线是不存在“最佳 EC2 实例”- 这一切都取决于您的实际使用情况。

好消息是,AWS 无需长期承诺,只需进行测试并根据需要改进架构。

希望有帮助:)

答案2

此外,还有一个很棒的比较网站https://www.ec2instances.info/帮助您确定哪种实例类型最符合您的需求且最具成本效益。

简单地增加实例大小可能不适合您的需求或预算。

您可以从自己的监控中看到主机的 CPU 上限 - 可以使用内部工具或 EC2 中的 AWS 监控选项卡。注意 EC2 不显示内存使用情况,您必须从自己的工具中获取该信息。

因此,上面的网站(不是官方的 AWS)允许您选择最低 CPU 和内存,然后按成本排序。请注意,不同 AWS DC 的定价各不相同,显示“每月”价格比显示每小时价格更容易理解。


此外,以 T 开头的实例类型(即 t3、t2、t4g 实例)都使用“CPU 积分”,因此您无法全天 100% 使用核心。CPU 数量基于一个桶,您可以从中汲取,但会慢慢重新装满。

自己作品的截图

您可以选择为 T* 实例启用“无限 CPU”,但这会花费很多钱,并且不需要花费太多时间就可以转移到专用 CPU 实例(例如 M5)变得更便宜。


例子

对于您来说,t3a.medium 有 4GB 内存和 2 个 vCPU,每天 4 小时 48 分钟,每月 35 美元

启用无限 CPU 可使该费用增加到约 80 美元/月(使用率为 100%)。

c5a.medium 的规格相同,但每天 24 小时提供 CPU,价格为每月 65 美元

如果您需要更多 CPU,c5a.xlarge 可提供 8GB 和 4vCPU,每月价格为 129 美元。

笔记:

  • 这些价格适用于新加坡 DC。其他地区价格不一。
  • 第三个位置带有“a”的实例类型是基于 AMD Epyc 的。这可能适合您的需求,也可能不适合。带有“g”的实例类型是基于 Graviton2 的 ARM-64,以“a”开头的实例类型是较旧的 Graviton 实例。搞不清楚?D 表示磁盘,N 表示更快的网络。

在此处输入图片描述

答案3

我们在使用 MySQL Server 5.7.32 的 EC2 t3a 实例类型 (t3a.medium) 时也遇到了类似的困难。CPU 使用率一直为 100%。切换到 t3 实例解决了我们的问题。

也许,我说也许,MySQL 并未针对 T3a 实例 (AMD EPYC) 进行优化。

相关内容