Descobri isso. Eu adicionei manualmente a primeira instância ao balanceador de carga. Depois de remover aquele, tudo funcionou como esperado.
Eu tenho um balanceador de carga que criei um grupo de escalonamento automático e o launch-config para. Eu criei o grupo de escalonamento automático com um tamanho mínimo de 1 e um tamanho máximo de 20. Eu tenho uma política de escalonamento:
as-put-scaling-policy SBMScaleDownPolicy --auto-scaling-group SBMAutoScaleGroup --adjustment=-1 --type ChangeInCapacity --cooldown 300
Então eu configurei um alarme:
mon-put-metric-alarm SBMLowCPUAlarm --comparison-operator LessThanThreshold --evaluation-periods 1 --metric-name CPUUtilization --namespace "AWS/EC2" --period 600 --statistic Average --threshold 35 --alarm-actions arn:aws:autoscaling:us-east-1:policystuffhere:autoScalingGroupName/SBMAutoScaleGroup:policyName/SBMScaleDownPolicy --dimensions "AutoScalingGroupName=SBMAutoScaleGroup"
Quando o uso médio da CPU em 10 minutos é inferior a 35, no CloudFront o alarme aparece como "Em estado de alarme", mas não diminui o número de instâncias. Além disso, se houver apenas uma instância em execução, ela aumentará outra para 2, mesmo se um alarme de aumento de escala não for atingido. Parece que o valor padrão é definido para 2 de alguma forma. Como posso mudar isso?
Uma causa provável é que você tem mais de uma zona de disponibilidade ativada e está garantindo que haja pelo menos uma instância em cada zona.
Presumivelmente, seu grupo de escalonamento automático SBMAutoScaleGroup não está totalmente configurado como desejado - você verificou novamente o resultado de CreateAutoScalingGroup ? Veja o exemplo 7 na seção Exemplo das Ferramentas da Linha de Comando na página Auto Scaling com Alarmes e Carga Equilibrando para uma maneira fácil de fazer isso:
as-describe-auto-scaling-groups SBMAutoScaleGroup --headers
A tabela resultante deve mostrar os valores desejados para MIN-SIZE , MIN-SIZE e DESIRED-CAPACITY .
Da mesma forma, você pode querer verificar se a política foi anexada corretamente:
as-describe-policies SBMAutoScaleGroup
A tabela resultante deve listar sua política de dimensionamento automático SBMScaleDownPolicy com os valores desejados para ADJUSTMENT , TYPE e COOLDOWN .
Um possível motivo pelo qual o as-put-scaling-policy
pode ter falhado é mencionado no exemplo 5 na seção Exemplo das Ferramentas da Linha de Comando na página Auto Scaling com alarmes e balanceamento de carga , que enfatiza um requisito específico ao usar a linha de comando do Windows:
If you are using Windows, wrap the --adjustment parameter in quotation marks: "--adjustment=-1".