【发布时间】:2017-11-15 10:01:02
【问题描述】:
我有一个作业队列,并且正在运行处理这些作业的 AWS EC2 实例。我们为现场和按需版本中的每个 c4.* 实例类型提供了一个 AutoScaling 组。
每个实例的功率等于实例 CPU 的数量。 (例如 c4.large 的 power=2 因为它有 2 个 CPU)。
我们需要的确切功率只是根据队列中的作业数量计算得出。
我想实现一种算法,它会定期检查队列中的作业数量,并通过 AWS SDK 更改特定 AutoScaling 组的所需值,以尽可能节省资金并保持实例的总功率以保持已处理的作业。
特别是:
- 我更喜欢现场实例而不是按需实例,因为它们更便宜
- EC2 实例按小时收费,我们希望仅在其 1 小时正常运行时间的最后一分钟关闭该实例。
- 我们希望尽可能将按需实例替换为现场实例。因此,在 55 分钟增加点组,在 58 点检查新的点实例是否正在运行,如果是,则减少按需组。
- 如果出价过高,我们希望通过按需替换 Spot 实例。只需关闭点播的,然后打开现场的。
看来这个问题真的很难处理。有人有任何经验或实施类似的解决方案吗?
【问题讨论】:
标签: amazon-web-services amazon-ec2 scaling