我在 AWS 中犯过的错误

发布于 作者

Mistakes I've Made in AWS image

我从 2015 年左右开始“专业地”使用 AWS。在这段时间里,我犯了很多错误。

除了偶尔删除生产数据之外,所有错误都源于无知——AWS 有太多东西要学,很容易错过一些重要的事情。

以下列出了使用 AWS 与 Laravel Forge 时最常被忽略的事情!

对 CPU 信用一无所知

我们许多人遇到的第一个错误是不知道 T2/T3/T4 实例类别上的 CPU 信用系统。

我们大多数人可能都使用过 T2 或 T3 实例类别。它们更便宜!

它们之所以更便宜,是因为它们使用 CPU 信用系统.

了解它的工作原理非常重要,尤其是在您在与应用程序相同的服务器上运行数据库时。

T3 服务器类别比 T2 更新一代。您应该优先选择 T3 类,因为它们性能更高,通常也更便宜。

T2/T3/T4g 类中的每个服务器大小都具有 CPU 阈值。如果您的 CPU 使用率超过该阈值,您就开始使用 CPU 信用。如果信用达到零,服务器将被限制在阈值。如果 CPU 使用率低于阈值,将获得 CPU 信用(最多一定数量)。

例如,t3.small 服务器大小每小时获得 24 个信用,最多 576 个信用。但是,如果您超过 20% 的 CPU 使用率,您就开始使用 CPU 信用。如果您的信用降至零,服务器将被限制在 20% 的 CPU。

T3 和 T4g 实例带有一个名为 “无限制模式” 的功能。默认情况下,此功能是启用的。如果您没有剩余的 CPU 信用,则允许您的 CPU 以额外费用超过阈值。

幸运的是,这笔费用通常很低,因此您甚至可能不会注意到账单的增加。但是,最好不要让您的服务器在 CPU 信用为零的情况下运行。

您可以在 CloudWatch 指标中监控您的 CPU 信用和突发使用情况,也可以在任何给定服务器实例的 EC2 控制面板的“监控”选项卡中监控。

不使用更便宜的服务器

您是否曾经想过 T3a 实例是什么?“a”代表 AMD。虽然 T3 实例使用英特尔 CPU,但 T3a 实例使用 AMD CPU。从技术上讲,它们在某些工作负载方面的速度比英特尔略慢。但是,对于 Web 应用程序(PHP、MySQL 等),这通常不会造成影响

使用更便宜的实例类型,节省约 10% 的成本!

还有最新的 T4g 实例类型。它们使用 ARM 处理器,是最便宜的。CPU 速度很快,但 ARM CPU 一般来说更便宜——因此 AWS 将这些节省传递给您。这些在 Forge 上运行良好,我强烈推荐它们。

忽略 IOPS

下一个更严重的错误是,没有检查 IOPS 使用情况。当磁盘卷限制发生时,它并不明显,但会导致性能问题。

与 CPU 突发类似,在与应用程序相同的服务器上运行数据库时,很容易遇到磁盘限制。

您的 EC2 服务器有卷附加到它们(至少一个,可能更多)。这些磁盘卷可能是 gp2gp3 类型。

尽管更新的 gp3 卷(一般来说)更好,但它们还不是默认的卷类型。

两种卷类型都有最大 IOPS 和吞吐量数量。

  1. IOPS 是每秒的 I/O 操作数
  2. 吞吐量 是以兆字节每秒 (MB/s) 为单位测量的數據

您可以在下面阅读有关它们如何工作的简要概述,但有关 IOPS 如何工作的更多详细信息请访问 CloudCasts.

GP2 卷

GP2 卷为您提供每 GB 存储空间 3 个 IOPS。最小值为 100 个 IOPS——在您配置超过 33.333 GB 时,您会获得额外的 IOPS。

GP2 吞吐量限制在 250 MB/s,但 磁盘获得吞吐量的计算很复杂.

GP2 IOPS 使用类似于 T3 实例的突发系统。您可以突发到 3000 个 IOPS,直到您用完信用。用完信用后,您将被限制在由卷大小确定的最大 IOPS。

当您获得 1000 GB 的存储空间时,您将达到 3000 个 IOPS,并且不再有突发可用。您能获得的最大 IOPS 为 16,000,价格昂贵,约为 5334 GB 的存储空间。

您可以查看每个卷的 CloudWatch 指标以查看 IOPS 使用情况和队列深度(较高表示不好,队列深度应该非常低,低于 1 或 2)。

GP3 卷

GP3 卷具有固定的 IOPS 和吞吐量数量。它们从 3000 个 IOPS 和 125 MB/s 开始。这通常比 gp2 实例更好,尤其对于较小的磁盘大小(我们大多数人可能使用)。

IOPS 没有信用系统——您可以使用卷配置的任何数量。您可以根据需要分别配置更多 IOPS 和吞吐量!

GP3 卷通常应该是您的默认卷类型。但是,您应该注意,RDS 数据库当前仅支持 gp2 卷。

除了 Aurora 数据库,由于数据库的架构方式,它们基本上拥有无限的 IOPS。

要监控的指标

要了解您是否过度使用磁盘,您可以查看任何给定卷上的以下指标。这些指标在 CloudWatch 指标中,或在 EC2 Web 控制台中单击卷时,在“监控”选项卡中找到。

  1. 突发余额 - 如果这达到零,您的卷会变慢,因为您无法再突发到 3000 个 IOPS。这仅适用于大小低于 1000 GB 的 gp2 卷。
  2. 队列深度 - 这是挂起的 I/O 操作计数。如果存在挂起的操作,则表示不好。此数字通常应该非常低,低于 1 或 2(尽管这取决于您的使用情况)。
Chris Fidao photo

CloudCastsServers for Hackers 教授编码和服务器。Chipper CI 的联合创始人。

归档于
Cube

Laravel 新闻通讯

加入 40,000 多名其他开发人员,绝不错过新的技巧、教程等等。

Laravel Forge logo

Laravel Forge

轻松创建和管理您的服务器,并在几秒钟内部署您的 Laravel 应用程序。

Laravel Forge
Tinkerwell logo

Tinkerwell

Laravel 开发人员必备的代码运行器。使用 AI、自动补全和本地和生产环境的即时反馈进行微调。

Tinkerwell
No Compromises logo

无妥协

来自 No Compromises 播客的两位经验丰富的开发者 Joel 和 Aaron 现在可以为您的 Laravel 项目提供服务。 ⬧ 固定价格为每月 7500 美元。 ⬧ 没有冗长的销售流程。 ⬧ 无需签署合同。 ⬧ 100% 退款保证。

无妥协
Kirschbaum logo

Kirschbaum

提供创新和稳定性,确保您的 Web 应用程序成功。

Kirschbaum
Shift logo

Shift

运行旧版本的 Laravel?即时、自动化的 Laravel 升级和代码现代化,使您的应用程序保持新鲜。

Shift
Bacancy logo

Bacancy

只需每月 2500 美元,即可利用经验丰富的 Laravel 开发者 (4-6 年经验) 为您的项目注入活力。获得 160 小时的专业知识和无风险的 15 天试用。立即预约电话!

Bacancy
Lucky Media logo

Lucky Media

现在就选择 Lucky - Laravel 开发的理想之选,拥有十多年的经验!

Lucky Media
Lunar: Laravel E-Commerce logo

Lunar: Laravel E-Commerce

Laravel 的电子商务。一个开源软件包,将现代无头电子商务功能的强大功能带入 Laravel。

Lunar: Laravel E-Commerce
LaraJobs logo

LaraJobs

官方 Laravel 职位板

LaraJobs
SaaSykit: Laravel SaaS Starter Kit logo

SaaSykit: Laravel SaaS Starter Kit

SaaSykit 是一个 Laravel SaaS 启动套件,包含运行现代 SaaS 所需的所有功能。支付、漂亮结账、管理面板、用户仪表板、身份验证、准备好的组件、统计、博客、文档等等。

SaaSykit: Laravel SaaS Starter Kit
Rector logo

Rector

您的合作伙伴,助力实现无缝 Laravel 升级,降低成本,加速创新,助您企业取得成功

Rector
MongoDB logo

MongoDB

通过 MongoDB 和 Laravel 的强大集成增强您的 PHP 应用程序,使开发人员能够轻松高效地构建应用程序。支持事务性、搜索、分析和移动用例,同时使用熟悉的 Eloquent API。探索 MongoDB 灵活、现代的数据库如何改变您的 Laravel 应用程序。

MongoDB
Maska is a Simple Zero-dependency Input Mask Library image

Maska 是一个简单的无依赖输入掩码库

阅读文章
Add Swagger UI to Your Laravel Application image

在您的 Laravel 应用程序中添加 Swagger UI

阅读文章
Assert the Exact JSON Structure of a Response in Laravel 11.19 image

在 Laravel 11.19 中断言响应的精确 JSON 结构

阅读文章
Build SSH Apps with PHP and Laravel Prompts image

使用 PHP 和 Laravel Prompts 构建 SSH 应用程序

阅读文章
Building fast, fuzzy site search with Laravel and Typesense image

使用 Laravel 和 Typesense 构建快速、模糊的网站搜索

阅读文章
Add Comments to your Laravel Application with the Commenter Package image

使用 Commenter 软件包在您的 Laravel 应用程序中添加评论

阅读文章