As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Definir o aquecimento padrão da instância para um grupo do Auto Scaling
CloudWatch coleta e agrega dados de uso, como CPU e E/S de rede, em suas instâncias do Auto Scaling. Use essas métricas para criar políticas de escalabilidade que ajustam o número de instâncias no grupo do Auto Scaling à medida que o valor da métrica selecionada aumenta e diminui.
O aquecimento padrão da instância permite que você especifique quanto tempo depois de uma instância atingir o estado InService
ela espera antes de contribuir com dados de uso para as métricas agregadas. Isso impede que a escalabilidade dinâmica seja afetada por métricas para instâncias individuais que ainda não estão lidando com o tráfego de aplicações e que podem estar passando temporariamente por um uso alto de recursos de computação.
O aquecimento padrão da instância não está configurado e não é habilitado por padrão. Para otimizar o desempenho de suas políticas de escalabilidade de destino e de escalabilidade de etapas, é altamente recomendável habilitar o aquecimento padrão da instância.
Se seu grupo do Auto Scaling estiver configurado para usar uma política de manutenção de instâncias ou se você usa uma atualização de instância para substituir instâncias, você também pode evitar que as instâncias sejam contabilizadas na porcentagem íntegra mínima antes de terminarem de inicializar quando você habilita o aquecimento padrão da instância.
Conteúdo
- Considerações sobre o desempenho de escalabilidade
- Escolha o tempo para o aquecimento de instância padrão
- Habilitar o aquecimento de instância padrão para um grupo
- Verificar o aquecimento de instância padrão para um grupo
- Encontre políticas de escalabilidade com um tempo de aquecimento da instância definido anteriormente
- Limpe o aquecimento da instância definido anteriormente para uma política de escalabilidade
Considerações sobre o desempenho de escalabilidade
A maioria dos aplicativos se beneficiará de ter um tempo de aquecimento de instância padrão que se aplica a todos os atributos, em vez de tempos de aquecimento diferentes para atributos diferentes. Por exemplo, se você não definir um aquecimento padrão da instância, o atributo de atualização da instância usará o período de carência da verificação de integridade como o tempo de aquecimento padrão. Se você tiver alguma política de rastreamento de destino e escalabilidade de etapas, ela usará o valor definido para o tempo de desaquecimento padrão como o tempo de aquecimento padrão. Se você tiver alguma política de escalabilidade preditiva, ela não terá um tempo de aquecimento padrão.
Enquanto as instâncias estiverem no período de aquecimento, suas políticas dinâmicas de escalabilidade só aumentarão a escala horizontalmente se o valor da métrica de instâncias que não estiver aquecendo for maior do que o limite alto de alarme da política (ou a utilização do target de uma política de escalabilidade com rastreamento do destino). Se a demanda aumentar, a intenção será reduzir a escala na horizontal de forma conservadora para proteger a disponibilidade de sua aplicação. Isto bloqueia a redução da escala horizontalmente para escalabilidade dinâmica até que as instâncias terminem de aquecer.
Ao aumentar a escala horizontalmente, consideramos instâncias que estão em aquecimento como parte da capacidade teórica do grupo ao decidir quantas instâncias adicionar ao grupo. Portanto, várias violações de alarme que caem no intervalo do mesmo ajuste em etapas resultam em uma única ação de escalabilidade. A intenção é expandir de forma contínua (mas não excessivamente). Para obter mais informações, consulte a seção Aquecimento da instância no tópico de escalabilidade em etapas.
Se o aquecimento padrão da instância não estiver ativado, a quantidade de tempo que uma instância espera antes de enviar métricas CloudWatch e contá-las para a capacidade atual variará de instância para instância. Nesse caso, existe a possibilidade de suas políticas de escalabilidade funcionarem de forma imprevisível em comparação com o workload real que está ocorrendo.
Por exemplo, considere um aplicativo com um padrão de on-and-off carga de trabalho recorrente. Uma política de escalabilidade preditiva é usada para tomar decisões recorrentes sobre o aumento do número de instâncias. Como não há um tempo de aquecimento padrão para as políticas de escalabilidade preditiva, as instâncias começam a contribuir imediatamente para as métricas agregadas. Se essas instâncias tiverem maior uso de recursos no startup, a adição de instâncias poderá fazer com que as métricas agregadas tenham um pico. Dependendo do tempo necessário para o uso se estabilizar, isso pode afetar qualquer política de escalabilidade dinâmica que use essas métricas. Se o limite alto de alarme de uma política de escalabilidade dinâmica for violado, o grupo aumentará de tamanho novamente. Enquanto as novas instâncias estiverem se aquecendo, as atividades para reduzir a escala horizontalmente serão bloqueadas.
Escolha o tempo para o aquecimento de instância padrão
A chave para definir o aquecimento padrão da instância é determinar quanto tempo suas instâncias precisam terminar a inicialização e para que o consumo de recursos se estabilize após atingirem o estadoInService
. Ao escolher um tempo de aquecimento da instância, procure um equilíbrio ideal entre coletar dados de uso para tráfego legítimo, mas minimizando a coleta de dados associada a picos de uso temporário no startup.
Suponha que você tenha um grupo do Auto Scaling vinculado a um balanceador de carga do Elastic Load Balancing. Quando as instâncias concluem seu lançamento, elas são vinculadas ao balanceador de carga antes de entrarem no estado InService
. Depois que as instâncias entram no estado InService
, o consumo de recursos ainda pode passar por picos temporários e precisar de tempo para se estabilizar. Por exemplo, o consumo de recursos para um servidor de aplicações que precisa baixar ativos grandes e armazená-los em cache leva mais tempo para se estabilizar do que um servidor Web leve e sem ativos grandes para baixar. O aquecimento de instâncias fornece o tempo de atraso necessário para que o consumo de recursos se estabilize.
Importante
Se você não tiver certeza de quanto tempo precisa, pode começar com 300 segundos e diminuí-lo ou aumentá-lo gradualmente até obter o melhor desempenho de escalabilidade para seu aplicativo. Você provavelmente precisará experimentar até obter os resultados desejados. Como alternativa, se você tiver alguma política de escalabilidade que tenha seu próprio tempo de aquecimento (EstimatedInstanceWarmup
), poderá usar esse valor para começar. Para ter mais informações, consulte Encontre políticas de escalabilidade com um tempo de aquecimento da instância definido anteriormente.
Também é necessário considerar o uso de hooks do ciclo de vida para casos de uso em que você tem tarefas de configuração ou scripts para executar no startup. Os hooks do ciclo de vida também podem atrasar a colocação de instâncias em serviço até que elas tenham concluído a inicialização. Eles são especialmente úteis se você tiver scripts de bootstrapping que demoram um pouco para serem concluídos. Se você adicionar um hook do ciclo de vida, será possível reduzir o valor do aquecimento de instância padrão. Para obter mais informações sobre ganchos do ciclo de vida, consulte Ganchos do ciclo de vida do Amazon EC2 Auto Scaling.
Habilitar o aquecimento de instância padrão para um grupo
É possível habilitar o aquecimento padrão da instância ao criar um grupo do Auto Scaling. Também é possível habilitar para grupos existentes.
Ao habilitar o atributo de aquecimento de instância padrão, não é mais necessário especificar valores de parâmetros de aquecimento para os seguintes recursos:
Verificar o aquecimento de instância padrão para um grupo
Para verificar o aquecimento padrão da instância para um grupo do Auto Scaling (AWS CLI)
Use o seguinte comando describe-auto-scaling-groups: Substitua my-asg
pelo nome do seu grupo do Auto Scaling.
aws autoscaling describe-auto-scaling-groups --auto-scaling-group-name
my-asg
A seguir, uma exemplo de resposta.
{
"AutoScalingGroups": [
{
"AutoScalingGroupName": "my-asg",
"AutoScalingGroupARN": "arn",
...
"DefaultInstanceWarmup": 120
}
]
}
Encontre políticas de escalabilidade com um tempo de aquecimento da instância definido anteriormente
Para identificar se você tem políticas que têm seu próprio tempo de aquecimento para,EstimatedInstanceWarmup
execute o seguinte comando describe-policies usando o AWS CLI. Substitua my-asg
pelo nome do seu grupo do Auto Scaling.
aws autoscaling describe-policies --auto-scaling-group-name
my-asg
--query 'ScalingPolicies[?EstimatedInstanceWarmup!=`null`]'
A seguir, um exemplo de saída.
[
{
"AutoScalingGroupName":"my-asg",
"PolicyName":"cpu50-target-tracking-scaling-policy",
"PolicyARN":"arn
",
"PolicyType":"TargetTrackingScaling",
"StepAdjustments":[],
"EstimatedInstanceWarmup":120,
"Alarms":[{
"AlarmARN": "arn:aws:cloudwatch:us-west-2:123456789012:alarm:TargetTracking-my-asg-AlarmHigh-fc0e4183-23ac-497e-9992-691c9980c38e",
"AlarmName": "TargetTracking-my-asg-AlarmHigh-fc0e4183-23ac-497e-9992-691c9980c38e"
},
{
"AlarmARN": "arn:aws:cloudwatch:us-west-2:123456789012:alarm:TargetTracking-my-asg-AlarmLow-61a39305-ed0c-47af-bd9e-471a352ee1a2",
"AlarmName": "TargetTracking-my-asg-AlarmLow-61a39305-ed0c-47af-bd9e-471a352ee1a2"
}],
"TargetTrackingConfiguration":{
"PredefinedMetricSpecification":{
"PredefinedMetricType":"ASGAverageCPUUtilization"
},
"TargetValue":50.0,
"DisableScaleIn":false
},
"Enabled":true
},
... additional policies ...
]
Limpe o aquecimento da instância definido anteriormente para uma política de escalabilidade
Depois de ativar o aquecimento padrão da instância, atualize todas as políticas de escalabilidade que ainda tenham seu próprio tempo de aquecimento para limpar o valor definido anteriormente. Caso contrário, ele substituirá o aquecimento padrão da instância.
Você pode atualizar as políticas de escalabilidade usando o console ou os AWS CLI AWS SDKs. Esta seção aborda as etapas do console. Se você usa os AWS SDKs AWS CLI ou, certifique-se de preservar a configuração de política existente, mas remova a EstimatedInstanceWarmup
propriedade. Quando você atualiza uma política de escalabilidade existente, a política será substituída pelo que você especifica ao chamar programaticamente. PutScalingPolicy Os valores originais não são mantidos.
Para limpar o aquecimento da instância definido anteriormente para uma política de escalabilidade (console)
Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/
e escolha grupos do Auto Scaling no painel de navegação. -
Marque a caixa de seleção ao lado do grupo do Auto Scaling.
Um painel dividido é aberto na parte inferior da página.
-
Na guia Escabilidade automática, em Políticas de escalabilidade dinâmica, escolha a política na qual você está interessado e, em seguida, escolha Ações, Editar.
-
Em Aquecimento da instância, limpe o valor de aquecimento da instância para usar o valor padrão de aquecimento da instância.
-
Escolha Atualizar.