【问题标题】:What is wrong in my amazon autoscalling?我的亚马逊自动缩放有什么问题?
【发布时间】:2015-02-16 04:38:27
【问题描述】:

我有一个 EC2 实例,我想根据 SQS 队列中的消息数量进行扩展。如果有很多消息(5 分钟),我想弹出一个新的 EC2,以便更快地消耗消息。然后,如果消息很少(5 分钟),我想弹出最旧的 EC2。这样,如果消费消息的服务由于某种原因停止,我将终止旧的 EC2,服务将运行。

我为此创建了一个AutoScalling。我已将TerminationPolicy 设置为OldestInstance,但只有在我只设置一个区域(例如:eu-west-1a)时它才能按预期工作:它会创建一个新实例并每次都终止最旧的实例。但如果我有 3 个区域 (eu-west-1a, eu-west-1b, eu-west-1c),它只会启动和终止不以 OldestInstance 方式的实例。或者,至少,不像我期望的那样:每次都删除最旧的。有什么东西与不同的区域有关吗?在this 速度上,除了默认策略之外,我没有找到任何关于它的信息。

即使应用从默认策略链接到多个区域的情况,我最多只能有 2 个同时转动的实例。而且它们总是在新区域中启动。

【问题讨论】:

  • 喜欢“如何写出好问题?”;是的,有我不知道的事情
  • 你可以帮我写好,问你不明白的...
  • 背景信息。从字面上看,您的第一个“句子”是:“我有自动缩放功能”。对于任何人阅读这篇文章,他们不会明白你在说什么。 (这只是前 4 个词,而不是其余的)。请记住,如果没有您首先向他们清楚地解释问题,任何人都无法“看到”问题所在。我们是程序员,而不是读者。
  • 现在好点了吗? :)

标签: amazon-ec2 amazon-cloudfront


【解决方案1】:

这可能是关键段落:

当您自定义终止策略时,Auto Scaling 首先评估可用区是否存在任何不平衡。如果一个可用区的实例多于该组使用的其他可用区,则 Auto Scaling 会将您指定的终止策略应用于来自不平衡可用区的实例。 如果组使用的可用区是平衡的,则 Auto Scaling 会随机选择一个可用区并应用您指定的终止策略。

我将此解释为,如果您在多个区域中有实例,并且这些区域已经平衡,那么 AWS 将随机选择一个区域,然后在随机选择的区域中选择最旧的实例 - 它不会选择AZ 中最旧的实例,它会选择随机 AZ,然后在该 AZ 内终止最旧的实例。

【讨论】:

  • 所以如果我想终止最旧的,我只需要使用一个区域(a、b 或 c)?
  • 我相信是的 - 但是你放弃了一点跨区域冗余,所以你需要决定哪个更重要。
  • 能否也给个链接?
  • 好的,图片更适合默认情况,但我认为它也适合自定义。我没弄明白...
猜你喜欢
  • 2017-11-19
  • 2013-01-09
  • 1970-01-01
  • 2019-11-30
  • 2023-04-03
  • 1970-01-01
  • 2011-08-30
  • 2015-06-15
相关资源
最近更新 更多