我想维护一个已停止的亚马逊ec2实例池。每当金额低于阈值时,我希望能够创建新实例,然后在它们运行后立即停止它们。这可能仅在亚马逊基础设施内吗?
答案 0 :(得分:2)
您当然可以创建Amazon EC2实例,然后停止它们,以便稍后启动。正如您所指出的,这样做的好处是,实例的启动速度比启动新实例的速度要快。
没有自动方法可以帮助解决此问题。您可能必须编写执行以下操作的解决方案:
StopInstances
调用EC2)您需要考虑的一些事情:
更好的选择是使用 Auto Scaling ,基于某些指标表示您的车队忙碌的横向扩展警报,以及用于删除车队实例的扩展警报不忙。可以将横向扩展警报设置为在阈值通过后启动实例(例如,80%CPU),这应该允许新事件在事务100%忙碌之前启动。启动新实例和启动现有实例之间的时差非常小(至少对于Linux而言)。
如果你正在使用Windows,启动新实例时最大的时间延迟是由于 Sysprep ,这使得"清洁"具有新唯一ID的计算机。您可以通过创建没有Sysprep的AMI来作弊,这样可以更快启动。
答案 1 :(得分:0)
也许我误解了你的目标......你不能确保可用性"没有付钱的情况。
处于停止状态的实例只是在任何地方都不存在的逻辑实体 - 硬件在启动时分配,在停止时取消分配,在下次启动时重新分配。在可用区域用尽给定实例类的容量的不太可能的情况下,该类的已停止实例不会启动,因为没有可用于部署它们的硬件。
要确保实例始终可用,您必须保留它们,并且必须在特定的可用区域中指定预留:
与特定可用区域中使用的按需定价和提供容量预留相比,Amazon EC2预留实例提供了显着的折扣(高达75%)。 [强调添加]
在大多数计划中,保留的实例无论是否正在运行都按相同的费率计费,因此停止它们没什么意义。