Escalabilidade automática da Frota spot - Amazon Elastic Compute Cloud

Escalabilidade automática da Frota spot

Escalabilidade automática é a capacidade de aumentar ou diminuir a capacidade de destino de sua Frota spot automaticamente com base na demanda. Uma Frota spot pode executar instâncias (aumentar a escala) ou encerrar instâncias (reduzir a escala), no intervalo escolhido, em resposta a uma ou mais políticas de escalabilidade.

O Frota spot oferece suporte aos seguintes tipos de escalabilidade automática:

  • Dimensionamento do rastreamento de destino – aumenta ou diminui a capacidade atual da frota com base em um valor de destino para uma métrica específica. Isso é semelhante à forma como o termostato mantém a temperatura da sua casa, ou seja, você seleciona a temperatura e o termostato faz o resto.

  • Dimensionamento em etapas – aumenta ou diminui a capacidade atual da frota com base em um conjunto de ajustes de dimensionamento, conhecidos como ajustes em etapas, que variam com base no tamanho da ruptura do alarme.

  • Dimensionamento programado – aumenta ou diminui a capacidade atual da frota com base em data e hora.

Se estiver usando peso da instância, lembre-se de que a Frota spot pode exceder a capacidade de destino conforme necessário. A capacidade atendida pode ser um número de ponto flutuante, mas a capacidade de destino deve ser um inteiro, portanto, a Frota spot é arredondada para o próximo inteiro. Você deve levar em conta esses comportamentos ao ver o resultado de uma política de escalabilidade quando um alarme é acionado. Por exemplo, suponha que a capacidade de destino seja 30, a capacidade atendida seja 30,1 e a política de escalabilidade subtraia 1. Quando o alarme é acionado, o processo de escalabilidade automática subtrairá 1 de 30,1 para obter 29,1 e o arredondará para 30, portanto, nenhuma ação de escalabilidade é executada. Suponhamos também que você selecione os pesos de instância 2, 4 e 8 e uma capacidade de destino igual a 10, mas nenhuma instância de peso 2 esteja disponível; sendo assim, a Frota spot provisionou instâncias de pesos 4 e 8 para uma capacidade atendida igual a 12. Se a política de escalabilidade reduzir a capacidade de destino em 20% e um alarme for acionado, o processo de escalabilidade automática subtrairá 12*0,2 de 12 para obter 9,6 e o arredondará para 10, portanto, nenhuma ação de escalabilidade será executada.

As políticas de dimensionamento que podem ser criadas para Frota spot oferecem suporte a um período de desaquecimento. Esse é o número de segundos após o encerramento de uma ação de escalabilidade em que as atividades de escalabilidade anteriores, relacionadas ao acionamento, podem influenciar eventos futuros de escalabilidade. Para expandir as políticas enquanto o período do desaquecimento estiver em vigor, a capacidade que foi adicionada pelo evento de expansão anterior que iniciou o desaquecimento é calculada como parte da capacidade desejada para a expansão seguinte. A intenção é expandir de forma contínua (mas não excessivamente). Para políticas de redução, o período do desaquecimento é utilizado para bloquear a escala subsequente nas solicitações até que expire. A intenção é reduzir de forma conservadora para proteger a disponibilidade de seu aplicativo. Contudo, se outro alarme acionar uma política de expansão durante o período do desaquecimento após uma redução, a escalabilidade automática expandirá seu destino dimensionável imediatamente.

Recomendamos que você defina a escalabilidade com base nas métricas da instância com intervalos de 1 minuto, pois isso garante resposta mais rápida às mudanças de utilização. Aumentar a escalabilidade com base em métricas com intervalos de cinco minutos pode resultar em tempo de resposta mais lento e na escalabilidade com base em dados de métricas obsoletos. Para enviar dados de métrica das instâncias ao CloudWatch em períodos de 1 minuto, você deve habilitar especificamente o monitoramento detalhado. Para obter mais informações, consulte Habilitar ou desabilitar o monitoramento detalhado para instâncias e Criar uma solicitação de Frota spot usando parâmetros definidos (console).

Para obter mais informações sobre configuração de escalabilidade para Frota spot, consulte os recursos a seguir:

Permissões do IAM obrigatórias para escalabilidade automática de Frota spot

A escalabilidade automática de Frota spot é possibilitada por uma combinação de APIs do Amazon EC2, do Amazon CloudWatch e do Aplicativo Auto Scaling. As solicitações de Frota spot são criadas com o Amazon EC2, os alarmes são criados com o CloudWatch e as políticas de dimensionamento são criadas com o Aplicativo Auto Scaling.

Além das permissões do IAM para Frota spot e Amazon EC2, o usuário do IAM que está acessando as configurações de dimensionamento da frota deve ter as permissões apropriadas para os serviços que oferecem suporte ao dimensionamento dinâmico. Os usuários do IAM devem ter permissões para usar as ações no seguinte exemplo de política:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "application-autoscaling:*", "ec2:DescribeSpotFleetRequests", "ec2:ModifySpotFleetRequest", "cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:DescribeAlarmsForMetric", "cloudwatch:GetMetricStatistics", "cloudwatch:ListMetrics", "cloudwatch:PutMetricAlarm", "cloudwatch:DisableAlarmActions", "cloudwatch:EnableAlarmActions", "iam:CreateServiceLinkedRole", "sns:CreateTopic", "sns:Subscribe", "sns:Get*", "sns:List*" ], "Resource": "*" } ] }

Também é possível criar suas próprias políticas do IAM que permitem permissões mais refinadas para chamadas à API do Aplicativo Auto Scaling. Para obter mais informações, consulte Controle de acesso e autenticação no Guia do usuário do Aplicativo Auto Scaling.

O serviço do Aplicativo Auto Scaling também precisa de permissão para descrever a Frota spot e os alarmes do CloudWatch, além de permissões para modificar a capacidade de destino da Frota spot em seu nome. Se você habilitar a escalabilidade automática para a Frota spot, ele criará uma função vinculada ao serviço chamada AWSServiceRoleForApplicationAutoScaling_EC2SpotFleetRequest. Essa função vinculada ao serviço concede ao Aplicativo Auto Scaling permissão para descrever os alarmes das políticas, monitorar a capacidade atual da frota e modificar a capacidade da frota. A função de frota spot gerenciada original para o Aplicativo Auto Scaling era aws-ec2-spot-fleet-autoscale-role, mas ela não é mais necessária. Essa função vinculada ao serviço é a função padrão do Aplicativo Auto Scaling. Para obter mais informações, consulte Funções vinculadas ao serviço no Guia do usuário do Aplicativo Auto Scaling.