确保已停止的ec2实例池

时间:2016-11-09 17:00:58

标签: amazon-ec2 automation amazon

我想维护一个已停止的亚马逊ec2实例池。每当金额低于阈值时,我希望能够创建新实例,然后在它们运行后立即停止它们。这可能仅在亚马逊基础设施内吗?

2 个答案:

答案 0 :(得分:2)

您当然可以创建Amazon EC2实例,然后停止它们,以便稍后启动。正如您所指出的,这样做的好处是,实例的启动速度比启动新实例的速度要快。

没有自动方法可以帮助解决此问题。您可能必须编写执行以下操作的解决方案:

  • 监控已停止的实例数
  • 如果数量低于阈值,启动新实例
  • 新实例可以自动通过用户数据自动停止(通过对操作系统的关机命令,或通过StopInstances调用EC2)

您需要考虑的一些事情:

  • 触发监控的内容是什么?会不会按计划进行?
  • 启动新实例的任务需要等待新实例才能启动&在启动任何更多实例之前停止
  • 什么在需要时启动实例?
  • 当不再需要实例停止时,

更好的选择是使用 Auto Scaling ,基于某些指标表示您的车队忙碌的横向扩展警报,以及用于删除车队实例的扩展警报不忙。可以将横向扩展警报设置为在阈值通过后启动实例(例如,80%CPU),这应该允许新事件在事务100%忙碌之前启动。启动新实例和启动现有实例之间的时差非常小(至少对于Linux而言)。

如果你正在使用Windows,启动新实例时最大的时间延迟是由于 Sysprep ,这使得"清洁"具有新唯一ID的计算机。您可以通过创建没有Sysprep的AMI来作弊,这样可以更快启动。

答案 1 :(得分:0)

也许我误解了你的目标......你不能确保可用性"没有付钱的情况。

处于停止状态的实例只是在任何地方都不存在的逻辑实体 - 硬件在启动时分配,在停止时取消分配,在下次启动时重新分配。在可用区域用尽给定实例类的容量的不太可能的情况下,该类的已停止实例不会启动,因为没有可用于部署它们的硬件。

要确保实例始终可用,您必须保留它们,并且必须在特定的可用区域中指定预留:

  

与特定可用区域中使用的按需定价和提供容量预留相比,Amazon EC2预留实例提供了显着的折扣(高达75%)。 [强调添加]

     

https://aws.amazon.com/ec2/pricing/reserved-instances/

在大多数计划中,保留的实例无论是否正在运行都按相同的费率计费,因此停止它们没什么意义。