Como o escalonamento automático da AWS distribui instâncias spot entre AZs?

Como o escalonamento automático da AWS distribui instâncias spot entre AZs?

Estou usando um grupo AWS Autoscaling que distribui instâncias em várias AZs, com lances de instância spot definidos.

O que acontecerá quando o preço à vista saltar em uma das AZ, fazendo com que as instâncias nessa AZ fiquem abaixo do preço à vista e terminem?

O grupo de escalonamento automático tenta equilibrar as instâncias uniformemente nas AZs? Será que vai esperar até que o preço corresponda novamente naquele AZ?

Não consigo encontrar nenhuma documentação sobre isso.

Responder1

Na minha experiência, o grupo de escalonamento automático sempre tenta executar o mesmo número de instâncias em cada zona de disponibilidade que está usando. Adicionei por engano zonas de disponibilidade que não possuem nenhuma instância do tipo especificado na configuração de inicialização, e o ASG continuou tentando iniciar instâncias lá, independentemente, sem iniciar proporcionalmente mais instâncias em outro lugar.

Responder2

O AutoScaling sempre tentará manter a alta disponibilidade. A principal forma de fazer isso é mantendo as instâncias distribuídas uniformemente pelas AZs (zonas de disponibilidade). No entanto, se não for possível iniciar um determinado tipo de instância em uma AZ, ela fará failover para outra AZ (seja por preço/disponibilidade spot, interrupção ou apenas falta de disponibilidade sob demanda). Depois de atingir a capacidade desejada, ele tentará periodicamente lançar uma nova instância na AZ subutilizada para reequilibrar o grupo. https://docs.aws.amazon.com/autoscaling/ec2/userguide/auto-scaling-benefits.html#AutoScalingBehavior.InstanceUsage

Se você usar um ASG com vários tipos de instância e opções de compra, primeiro ele descobrirá se deve lançar uma instância spot ou sob demanda com base em suas configurações. Em seguida, ele tentará iniciar um dos tipos de instância selecionados com base na sua estratégia de alocação. Se o tipo de instância preferencial não estiver disponível, ele tentará todos os tipos de instância nessa AZ. Se não houver nenhum disponível nessa AZ, ele continuará tentando outras AZs. Dessa forma, teria que haver alguns pools de capacidade diferentes que não pudessem iniciar instâncias para que você não obtivesse uma instância.

NÃO haverá failover do spot para o OnDemand se não houver capacidade spot em todas as suas AZs para qualquer um dos tipos de instância selecionados.

https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-purchase-options.html

informação relacionada