如何自动关闭AWSEC2实例

lovemyfenghuang 2021-12-22 18:26:47

EC2 按需实例和 Spot 实例的一个常见用例是使用功能强大的机器来执行短期的一次性任务。但是,如果您让这些机器意外运行,您最终可能会收到一笔非常大的账单。幸运的是,AWS 有工具可以防止这种情况发生。

防止钱包溢出

这是“云溢出”的一种情况,您运行的一些更具扩展性的服务对您的钱包是危险的,如果设置不当,最终可能会比您预期的多出几个数量级的钱。

例如,假设您需要在极其强大的机器上执行短期、时间敏感的任务,例如在 64 核工作机器上运行密集代码库构建,或在具有多个 GPU 的机器上执行 3D 渲染。在任何情况下,这些机器的每小时费率都很昂贵,每月高达数千美元。AWS 有一些加速计算器,连续运行 750 小时需要花费 2.5 万美元。

然而,对于某些工作负载来说,仅运行几个小时实际上是非常划算的,而 AWS 的按需系统使这成为可能。唯一的问题是每次都关闭机器,因为如果你不这样做,你会一直为此付费。

AWS 没有内置的方法来确保这一点,但它确实提供了 CloudWatch 警报:可配置的功能将持续检查您的实例以确保一切正常。它们可以设置为监控 CPU、网络和磁盘使用情况,并可以触发自动关闭或重新启动。您甚至可以将它们连接到 SNS 队列以向其他系统发送通知。

设置闹钟

对于此用例,关闭非活动实例的简单警报将正常工作。虽然没有“运行时间过长”的警报,但您可以使用 CPU 使用率模拟一个。如果您正在运行的任务通常会加载所有内核,那么在非活动机器上的 CPU 使用率应该接近于零。

不过,您的里程会有所不同,因此您需要检查 CloudWatch 统计信息以确保检测到您的机器处于不活动状态。警报配置还提供了一个图表供您比较。

在 EC2 控制台中,右键单击一个实例并选择“监控”>“管理 CloudWatch 警报”,如果没有现有警报,则单击浏览器中“警报状态”旁边的 + 图标。

在这里,您可以设置警报阈值。通常,您需要将分组设置为“平均”,选择“CPU 利用率”,并将其设置为在一个小时内低于 10% 左右时触发。请注意,此处的时间段乘以“连续时间段”中的数量,因此 5 分钟时间段乘以 12 也是有效的,而不仅仅是 1 小时。

然后,您可以设置警报操作来停止实例。

这应该就是你所需要的,一旦创建它就会自动开始运行。如果您想测试您的设置,您可以在较小的机器上使用相同的警报配置。

不过,为了安全起见,您可能应该启用全球 AWS 账单警报。如果您超出目标预算,这些可以提前警告您,让您在问题耗尽并清空钱包之前手动解决问题。

#知识创作官#

想了解更多精彩内容,快来关注四川人在香港

0 阅读:23

lovemyfenghuang

简介:旅程中分享所见所闻