Escalabilidade automátia para frota spot - Amazon Elastic Compute Cloud

Escalabilidade automátia para frota spot

A 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 na horizontal) ou encerrar instâncias (reduzir a escala na horizontal), no intervalo escolhido, em resposta a uma ou mais políticas de escalabilidade.

A frota spot oferece suporte aos seguintes tipos de escalabilidade automática:

  • Escalabilidade do monitoramento do objetivo: aumenta ou diminui a capacidade atual da frota com base em um valor pretendido 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.

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

  • Escalabilidade 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 escalabilidade que podem ser criadas para a 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 sua aplicação. 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 a frota spot, consulte os recursos a seguir:

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

A escalabilidade automática para frota spot é possível por uma combinação das APIs do Amazon EC2, do Amazon CloudWatch e do Application 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 escalabilidade são criadas com o Application Auto Scaling.

Além das permissões do IAM para frota spot e do Amazon EC2, o usuário que acessa as configurações de escala de frota deve ter as permissões adequadas para os serviços compatíveis com escalação dinâmica. Os usuários devem ter permissões para usar as ações mostradas no exemplo de política a seguir.

{ "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 Application Auto Scaling. Para obter mais informações, consulte Controle de acesso e autenticação no Manual do usuário do Application Auto Scaling.

O serviço do Application 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, ela criará uma função vinculada ao serviço chamada AWSServiceRoleForApplicationAutoScaling_EC2SpotFleetRequest. Essa função vinculada ao serviço concede ao Application 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 Application 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 Application Auto Scaling. Para obter mais informações, consulte Funções vinculadas ao serviço no Manual do usuário do Application Auto Scaling.