EC2 Auto-Scaling: configure as Políticas de Rastreamento de Destino para preferir instâncias Spot

2

A Amazon lançou recentemente as Políticas de acompanhamento de alvos para o escalonamento automático do EC2 .

No meu serviço de produção, estou usando dois grupos de escalonamento automático separados para dar suporte ao escalonamento automático híbrido com uma mistura de instâncias Spot e On-Demand. O que eu quero é que o uso da minha CPU não exceda 70%, e deve usar as instâncias Spot sempre que possível, mas recorrer às instâncias do On-Demand, se necessário.

Primeiro, eu defino os grupos Auto-Scaling (Spot e On-Demand) para usar o Target Tracking para 70% da carga da CPU e definir o tamanho mínimo de ambos os grupos para um. O tráfego no meu serviço é bastante previsível (sem aumento repentino, mais tráfego durante o dia, menos tráfego durante a noite).

Em um ponto, havia duas instâncias On-Demand e duas Spot em execução. O sistema tinha acabado de reduzir porque a carga de CPU dos cinco servidores ficou muito baixa (cerca de 35%). Com os quatro servidores, a carga do CPU subiu e depois de alguns minutos cruzou brevemente a marca de 70% (talvez houvesse um aumento de tráfego muito pequeno naquele momento).

O sistema decidiu conservadoramente aumentar novamente, mas como ambos os grupos de escalonamento automático tomaram a decisão independentemente ao mesmo tempo, duas instâncias foram iniciadas (uma instância Spot e uma On-Demand). Neste momento, havia agora seis servidores em execução. Depois de um tempo diminuiu novamente e finalmente chegou a uma configuração de execução de quatro instâncias.

Para evitar esse efeito, alterei a configuração da seguinte forma:

  • On-Demand: segmentar 70% do uso da CPU, um mínimo de servidor
  • Spot: segmente 65% do uso da CPU, um mínimo de servidor

Minha suposição é que isso deve ajudar a evitar esse cenário que descrevi. Eu esperaria que o grupo On-Demand diminuísse mais cedo do que o grupo Spot (o que é desejável, de qualquer forma, já que eles são mais caros). E espero que as ocorrências Spot aumentem mais rapidamente, o que deve proteger contra upscaling desnecessário do grupo On-Demand.

Essa é a minha expectativa, mas não encontrei muitos detalhes a documentação para confirmar. Alguém pode esclarecer como o novo dimensionamento do Target Tracking funciona em detalhes e como aplicá-lo a uma configuração híbrida com instâncias Spot e On-Demand?

Perguntas:

  • Se eu definir o destino para 70% de utilização da CPU, quando ele decidirá aumentar e diminuir a escala?
  • Se eu tiver dois grupos de dimensionamento automático, um com 70% de meta de utilização da CPU e outro com 65%, quando decidirá aumentar ou diminuir a escala? Será que prefere sempre reduzir o grupo de 70%? Será que prefere sempre aumentar o grupo de 65%?
  • O que acontece se os preços no mercado Spot subirem subitamente para exceder meu limite de lance. O grupo de escalonamento automático sob demanda assume o controle?
  • O meu entendimento é correto de que definir manualmente o número de instâncias desejadas tem apenas um efeito de curto prazo e será automaticamente ajustado pela política do Auto Scaling?
  • Por exemplo, se reduzir para o mínimo durante a noite e aumentar novamente no dia seguinte, isso significa que as configurações iniciais de "número de instâncias desejadas" do dia anterior agora estão obsoletas? Em outras palavras, preciso me preocupar apenas em estabelecer um valor razoável para o mínimo e o máximo, e a AWS descobrirá o resto?
por Philipp Claßen 12.08.2017 / 23:50

0 respostas