我正在使用一个跨多个可用区分发实例的 AWS Autoscaling 组,并定义了现货实例竞价。
如果某个可用区的现货价格突然上涨,导致该可用区内的实例价格低于现货价格并终止,会发生什么情况?
自动扩展组是否会尝试在可用区之间均匀平衡实例?它会等到该可用区的价格再次匹配吗?
我找不到有关该问题的任何文档。
答案1
根据我的经验,自动扩展组始终尝试在其使用的每个可用区域中运行相同数量的实例。我错误地添加了没有启动配置中指定类型的任何实例的可用区域,并且 ASG 一直尝试在那里启动实例,而没有在其他地方按比例启动更多实例。
答案2
AutoScaling 始终会尝试保持高可用性。它实现此目的的主要方式是让实例均匀分布在 AZ(可用区)中。但是,如果它无法在某个 AZ 中启动给定的实例类型,它将故障转移到另一个 AZ(可能是由于现货价格/可用性、中断或只是缺乏按需可用性)。达到所需容量后,它将定期尝试在未充分利用的 AZ 中启动新实例以重新平衡组。 https://docs.aws.amazon.com/autoscaling/ec2/userguide/auto-scaling-benefits.html#AutoScalingBehavior.InstanceUsage
如果您使用具有多种实例类型和购买选项的 ASG,那么它将首先根据您的设置确定是否应该启动现货实例或按需实例。然后,它将尝试根据您的分配策略启动您选择的实例类型之一。如果首选实例类型不可用,它将尝试该可用区中的所有实例类型。如果该可用区中没有可用的实例类型,它将继续尝试其他可用区。这样,就必须有相当多的不同容量池都无法启动实例,您才会无法获得实例。
如果您选择的任何实例类型在所有可用区中都没有现货容量,它将不会从现货故障转移到按需故障。
https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-purchase-options.html