EC2使用即时和按需实例进行自动扩展?

Modified on: Fri, 01 Nov 2019 10:40:01 +0800

我希望通过让他们启动现场实例而不是按需实例来优化我们自动扩展EC2组的成本。

我真正想要的是能够将组中的某些服务器作为按需实例保留,而不管现货实例定价市场发生了什么。然后我希望组中的任何其他服务器(高于我配置的最小值)成为spot实例。我通常可以通过现场请求延迟添加服务器。

我似乎无法找到任何方法来执行此操作,并且我已尝试搜索AWS文档。似乎ASG可以是按需或现场,但不是混合动力。

我可以手动将按需实例添加到分配给自动缩放组的Elastic Load Balancer,但随后该服务器的负载不会被计入自动缩放测量和触发器中。

我想我可以输入一个非常高的出价,以确保我总能得到我需要的服务器,但接下来我会查看定价历史记录并偶尔看到大量的峰值。

AWS文档与自身不一致,因为在一个地方它说如果你输入服务器最小值,那么这个号码就“确保”存在。但是当你读到有关现场实例时,却无法保证。现货的价格差异是令人信服的,所以我想尽可能多地利用它,同时仍然保持一个永远在线的基线。这可能吗?

作者:platforms

最佳答案

混合 Auto Scaling方法似乎不可用不幸的是,开箱即用。

但是,你可能能够解决这个限制,如下所示(未经测试,只是一个系统设计,我已经玩了一段时间):

潜在的解决方法

使用Auto Scaling启动竞价型实例中所述,现货价格出价是启动配置的参数。使用。正如您所指出的,没有混合启动配置可用,而是必须是按需或现场,这意味着用例需要两种不同的启动配置。

这似乎没有立即帮助,因为您一次只能将一个启动配置附加到Auto Scaling组,并具有以下(部分过时)约束(请参阅启动配置):

  

将新的或更新的启动配置附加到自动
  缩放组,将使用新的实例启动任何新实例
  配置参数。 现有实例不受影响。什么时候
  Auto Scaling需要缩小,首先终止实例
  有一个较旧的启动配置
[强调我的]

强调的部分是关键,前者涵盖了在从相应的初始按需启动配置更改为附加的现​​场启动配置后保持按需实例运行的要求,并且后者不一定由于最近推出的Auto Scaling终止政策,因此已成为案例 a>(对于通过附带的AWS博客文章进行的通常的大肆宣传),记录在Auto Scaling组的实例终止政策

  

在Auto Scaling选择要终止的实例之前,首先是它
  标识具有比实例更多实例的可用区
  该组使用的其他可用区。如果是所有可用区
  具有相同数量的实例,它标识随机可用性
  区。 在已识别的可用区内,Auto Scaling使用
  终止策略以选择终止实例
[强调我的]

如何终止策略工作,您现在可以指定NewestInstance如果您希望终止上次启动的实例,这将是最近推出的点实例之一:

  

Auto Scaling使用实例启动时间来标识实例
  这是最后推出的。

显然可能还有更多,例如您可以将任何一个策略指定为独立策略,也可以在有序列表中列出多个策略,但是这种方法应该确保将所有实例的负载分解到自动中 - 扩展测量和触发器;但有一点需要注意:

买者

如果负载均衡器出于任何其他原因终止其中一个按需实例(例如,因为它本身已变得不健康),它将不会被按需实例自动替换。因此,您需要单独监控和说明此事件,例如暂时再次激活按需启动配置。

祝你好运!

作者:,Steffen Opel

相关问答

添加新评论