Crie uma política de escalabilidade preditiva - Amazon EC2 Auto Scaling

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á.

Crie uma política de escalabilidade preditiva

Os procedimentos a seguir ajudam você a criar uma política de escalabilidade preditiva usando o AWS Management Console ou. AWS CLI

Se o grupo do Auto Scaling for novo, ele deverá fornecer pelo menos 24 horas de dados antes que o Amazon EC2 Auto Scaling possa gerar uma previsão para ele.

Criar uma política de escalabilidade preditiva (console)

Se esta é a primeira vez que você cria uma política de escalabilidade preditiva, recomendamos usar o console para criar várias políticas de escalabilidade preditiva no modo somente previsão. Isso permite testar os efeitos potenciais de diferentes métricas e valores-alvo. Você pode criar várias políticas de escalabilidade preditiva para cada grupo do Auto Scaling, mas somente uma das políticas pode ser usada para a escalabilidade ativa.

Siga o procedimento a seguir para criar uma política de escalação preditiva usando métricas predefinidas (CPU, E/S da rede ou contagem de solicitações do Application Load Balancer por destino). A maneira mais fácil de criar uma política de escalação preditiva é usar métricas predefinidas. Se você preferir usar métricas personalizadas, consulte Criar uma política de escalação preditiva no console (métricas personalizadas).

Para criar uma política de escalabilidade preditiva
  1. Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/ e escolha grupos do Auto Scaling no painel de navegação.

  2. Marque a caixa de seleção ao lado do seu grupo do Auto Scaling.

    Um painel dividido é aberto na parte inferior da página.

  3. Na guia Automatic scaling (Escalabilidade automática), em Scaling policies (Políticas de escalabilidade), escolha Create predictive scaling policy (Criar política de escalabilidade preditiva).

  4. Insira um nome para a política.

  5. Ativar a opção Scale based on forecast (Escala baseada em previsão) para conceder ao Amazon EC2 Auto Scaling permissão para começar a escalar imediatamente.

    Para manter a política no modo somente previsão, deixe a opção Scale based on forecast(Escala baseada em previsão) desativada.

  6. Em Metrics (Métricas), escolha suas métricas na lista de opções. As opções incluem CPU, Network In (Entrada de rede), Network Out (Saída de rede), Application Load Balancer request count (Número de solicitações do Application Load Balancer) e Custom metric pair (Par de métricas personalizadas).

    Se tiver escolhido Application Load Balancer request count per target (Número de solicitações do Application Load Balancer por destino), escolha um grupo de destino em Target group (Grupo de destino). A opção Application Load Balancer request count per target (Número de solicitações do Application Load Balancer por destino) só será válida de você tiver anexado um grupo de destino do Application Load Balancer ao seu grupo do Auto Scaling.

    Se você escolheu Custom metric pair (Par de métricas personalizadas), escolha métricas individuais nas listas suspensas para Load metric (Métrica de carga) e Scaling metric (Métrica de escalabilidade).

  7. Em Target utilization (Utilização-alvo), insira o valor-alvo que o Amazon EC2 Auto Scaling deveria manter. O Amazon EC2 Auto Scaling aumentará a escala na horizontal até que a utilização média seja igual à utilização-alvo ou até atingir o número máximo de instâncias especificado.

    Se sua métrica de escalabilidade for... Então a utilização-alvo representará...
    CPU

    A porcentagem de CPU que cada instância deve idealmente usar.

    Entrada de rede

    O número médio de bytes por minuto que cada instância deve idealmente receber.

    Saída de rede

    O número médio de bytes por minuto que cada instância deve idealmente enviar.

    Número de solicitações do Application Load Balancer por destino

    O número médio de solicitações por minuto que cada instância deve idealmente receber.

  8. (Opcional) Em Pre-launch instances (Iniciar instâncias previamente), escolha com que antecedência você deseja que suas instâncias sejam iniciadas antes que a previsão solicite o aumento de carga.

  9. (Opcional) Em Max capacity behavior (Comportamento na capacidade máxima), escolha se será permitido que o Amazon EC2 Auto Scaling aumente a escala horizontalmente além da capacidade máxima do grupo quando a capacidade prevista exceder o máximo definido. A ativação dessa configuração permite aumentar a escala horizontalmente nos períodos em que estão previstos picos de tráfego.

  10. (Opcional) Em Buffer maximum capacity above the forecasted capacity (Capacidade máxima do buffer acima da capacidade prevista), escolha a quantidade de capacidade adicional a ser usada quando a capacidade prevista estiver próxima de ou exceder a capacidade máxima. O valor é especificado como um percentual em relação à capacidade de prevista. Por exemplo, se o buffer é 10, isso significa um buffer de 10%. Portanto, se a capacidade prevista for 50 e a capacidade máxima for 40, a capacidade máxima real será 55.

    Se esse valor for definido como 0, o Amazon EC2 Auto Scaling poderá escalar a capacidade acima da capacidade máxima para igualar, mas não exceder, a capacidade prevista.

  11. Selecione Create predictive scaling policy (Criar política de escalabilidade preditiva).

Use o procedimento a seguir para criar uma política de escalação preditiva usando métricas personalizadas. As métricas personalizadas podem incluir outras métricas fornecidas por CloudWatch ou nas quais você publica CloudWatch. Para usar a contagem de solicitações de CPU, E/S de rede ou Application Load Balancer por destino, consulte Criar uma política de escalação preditiva no console (métricas predefinidas).

Para criar uma política de escalação preditiva usando métricas personalizadas, você deve fazer o seguinte:

  • Você deve fornecer as consultas brutas que permitem que o Amazon EC2 Auto Scaling interaja com as métricas inseridas. CloudWatch Para ter mais informações, consulte Configurações avançadas de política de escalabilidade preditiva usando métricas personalizadas. Para ter certeza de que o Amazon EC2 Auto Scaling pode extrair os dados CloudWatch métricos, confirme se cada consulta está retornando pontos de dados. Confirme isso usando o CloudWatch console ou a operação CloudWatch GetMetricDatada API.

    nota

    Fornecemos exemplos de cargas úteis JSON no editor de JSON no console do Amazon EC2 Auto Scaling. Esses exemplos fornecem uma referência para os pares de valores-chave necessários para adicionar outras CloudWatch métricas fornecidas por AWS ou nas quais você publicou anteriormente. CloudWatch Você pode usá-las como ponto de partida e depois personalizá-las de acordo com as suas necessidades.

  • Se você usar qualquer matemática de métricas, deverá estruturar manualmente o JSON para adequá-lo ao seu cenário específico. Para ter mais informações, consulte Usar expressões de matemática métrica. Antes de usar matemática de métricas em sua política, confirme se as consultas de métricas baseadas em expressões matemáticas de métricas são válidas e retornam uma única série temporal. Confirme isso usando o CloudWatch console ou a operação CloudWatch GetMetricDatada API.

Se você cometer um erro em uma consulta fornecendo dados incorretos, como o nome errado do grupo do Auto Scaling, a previsão não terá nenhum dado. Para solucionar problemas de métricas personalizadas, consulte Considerações e solução de problemas.

Para criar uma política de escalabilidade preditiva
  1. Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/ e escolha grupos do Auto Scaling no painel de navegação.

  2. Marque a caixa de seleção ao lado do seu grupo do Auto Scaling.

    Um painel dividido é aberto na parte inferior da página.

  3. Na guia Automatic scaling (Escalabilidade automática), em Scaling policies (Políticas de escalabilidade), escolha Create predictive scaling policy (Criar política de escalabilidade preditiva).

  4. Insira um nome para a política.

  5. Ativar a opção Scale based on forecast (Escala baseada em previsão) para conceder ao Amazon EC2 Auto Scaling permissão para começar a escalar imediatamente.

    Para manter a política no modo somente previsão, deixe a opção Scale based on forecast(Escala baseada em previsão) desativada.

  6. Em Metrics (Métricas), escolha Custom metric pair (Par de métricas personalizado).

    1. Em Métrica de carga, escolha CloudWatch Métrica personalizada para usar uma métrica personalizada. Estruture a carga útil JSON que contém a definição da métrica de carga para a política e cole-a na caixa do editor de Jason, substituindo o que já está na caixa.

    2. Em Métrica de escala, escolha CloudWatch Métrica personalizada para usar uma métrica personalizada. Estruture a carga útil JSON que contém a definição da métrica de escalação para a política e cole-a na caixa do editor de Jason, substituindo o que já está na caixa.

    3. (Opcional) Para adicionar uma métrica de capacidade personalizada, marque a caixa de seleção Add custom capacity metric (Adicionar métrica de capacidade personalizada). Estruture a carga útil JSON que contém a definição da métrica de capacidade para a política e cole-a na caixa do editor de Jason, substituindo o que já está na caixa.

      Você só precisa habilitar essa opção para criar uma nova série temporal de capacidade se seus dados métricos de capacidade abrangerem vários grupos do Auto Scaling. Nesse caso, você deve usar a matemática de métricas para agregar os dados em uma única série temporal.

  7. Em Target utilization (Utilização-alvo), insira o valor-alvo que o Amazon EC2 Auto Scaling deveria manter. O Amazon EC2 Auto Scaling aumentará a escala na horizontal até que a utilização média seja igual à utilização-alvo ou até atingir o número máximo de instâncias especificado.

  8. (Opcional) Em Pre-launch instances (Iniciar instâncias previamente), escolha com que antecedência você deseja que suas instâncias sejam iniciadas antes que a previsão solicite o aumento de carga.

  9. (Opcional) Em Max capacity behavior (Comportamento na capacidade máxima), escolha se será permitido que o Amazon EC2 Auto Scaling aumente a escala horizontalmente além da capacidade máxima do grupo quando a capacidade prevista exceder o máximo definido. A ativação dessa configuração permite aumentar a escala horizontalmente nos períodos em que estão previstos picos de tráfego.

  10. (Opcional) Em Buffer maximum capacity above the forecasted capacity (Capacidade máxima do buffer acima da capacidade prevista), escolha a quantidade de capacidade adicional a ser usada quando a capacidade prevista estiver próxima de ou exceder a capacidade máxima. O valor é especificado como um percentual em relação à capacidade de prevista. Por exemplo, se o buffer é 10, isso significa um buffer de 10%. Portanto, se a capacidade prevista for 50 e a capacidade máxima for 40, a capacidade máxima real será 55.

    Se esse valor for definido como 0, o Amazon EC2 Auto Scaling poderá escalar a capacidade acima da capacidade máxima para igualar, mas não exceder, a capacidade prevista.

  11. Selecione Create predictive scaling policy (Criar política de escalabilidade preditiva).

Criar uma política de escalabilidade preditiva (AWS CLI)

Use o AWS CLI seguinte para configurar políticas de escalabilidade preditiva para seu grupo de Auto Scaling. Substitua cada espaço reservado para entrada do usuário por suas próprias informações.

Para obter mais informações sobre as CloudWatch métricas que você pode especificar, consulte PredictiveScalingMetricSpecificationa Referência da API do Amazon EC2 Auto Scaling.

Exemplo 1: Uma política de escalabilidade preditiva que cria previsões, mas não implementa a escalabilidade

O exemplo a seguir mostra uma configuração de política completa que usa métricas de utilização da CPU para escalabilidade preditiva com uma utilização-alvo de 40. O modo ForecastOnly é usado por padrão, a menos que você especifique explicitamente qual modo usar. Salve esta configuração em um arquivo chamado config.json.

{ "MetricSpecifications": [ { "TargetValue": 40, "PredefinedMetricPairSpecification": { "PredefinedMetricType": "ASGCPUUtilization" } } ] }

Para criar a política na linha de comando, execute o put-scaling-policycomando com o arquivo de configuração especificado, conforme demonstrado no exemplo a seguir.

aws autoscaling put-scaling-policy --policy-name cpu40-predictive-scaling-policy \ --auto-scaling-group-name my-asg --policy-type PredictiveScaling \ --predictive-scaling-configuration file://config.json

Se bem-sucedido, esse comando gerará o nome do recurso da Amazon (ARN) da política.

{ "PolicyARN": "arn:aws:autoscaling:region:account-id:scalingPolicy:2f4f5048-d8a8-4d14-b13a-d1905620f345:autoScalingGroupName/my-asg:policyName/cpu40-predictive-scaling-policy", "Alarms": [] }

Exemplo 2: Uma política de escalabilidade preditiva que cria previsões e implementa a escalabilidade

Para uma política que permite que o Amazon EC2 Auto Scaling preveja e implemente a escalabilidade, adicione a propriedade Mode com um valor ForecastAndScale. O exemplo a seguir mostra uma configuração de política que usa métricas de número de solicitações do Application Load Balancer. A utilização-alvo é 1000 e a escalabilidade preditiva é definida no modo ForecastAndScale.

{ "MetricSpecifications": [ { "TargetValue": 1000, "PredefinedMetricPairSpecification": { "PredefinedMetricType": "ALBRequestCount", "ResourceLabel": "app/my-alb/778d41231b141a0f/targetgroup/my-alb-target-group/943f017f100becff" } } ], "Mode": "ForecastAndScale" }

Para criar essa política, execute o put-scaling-policycomando com o arquivo de configuração especificado, conforme demonstrado no exemplo a seguir.

aws autoscaling put-scaling-policy --policy-name alb1000-predictive-scaling-policy \ --auto-scaling-group-name my-asg --policy-type PredictiveScaling \ --predictive-scaling-configuration file://config.json

Se bem-sucedido, esse comando gerará o nome do recurso da Amazon (ARN) da política.

{ "PolicyARN": "arn:aws:autoscaling:region:account-id:scalingPolicy:19556d63-7914-4997-8c81-d27ca5241386:autoScalingGroupName/my-asg:policyName/alb1000-predictive-scaling-policy", "Alarms": [] }

Exemplo 3: Uma política de escalabilidade preditiva que pode escalar acima da capacidade máxima

O exemplo a seguir mostra como criar uma política que poderá escalar além do limite máximo de tamanho do grupo quando você precisar que ele lide com uma carga maior do que o normal. Por padrão, o Amazon EC2 Auto Scaling não aumenta a capacidade do EC2 além da capacidade máxima definida. No entanto, pode ser útil deixá-lo ir além com um pouco mais de capacidade para evitar problemas de performance ou disponibilidade.

Para fornecer espaço para o Amazon EC2 Auto Scaling provisionar capacidade adicional quando a capacidade estiver no tamanho máximo do grupo ou muito próxima a ele, especifique as propriedades MaxCapacityBreachBehavior e MaxCapacityBuffer, conforme mostrado no exemplo a seguir. É necessário especificar MaxCapacityBreachBehavior com um valor de IncreaseMaxCapacity. O número máximo de instâncias que seu grupo pode ter depende do valor de MaxCapacityBuffer.

{ "MetricSpecifications": [ { "TargetValue": 70, "PredefinedMetricPairSpecification": { "PredefinedMetricType": "ASGCPUUtilization" } } ], "MaxCapacityBreachBehavior": "IncreaseMaxCapacity", "MaxCapacityBuffer": 10 }

Neste exemplo, a política é configurada para usar um buffer de 10% ("MaxCapacityBuffer": 10). Assim, se a capacidade prevista for 50 e a capacidade máxima for 40, a capacidade máxima efetiva será 55. Uma política que pudesse escalar a capacidade acima da capacidade máxima para igualar, mas não exceder, a capacidade prevista teria um buffer de 0 ("MaxCapacityBuffer": 0).

Para criar essa política, execute o put-scaling-policycomando com o arquivo de configuração especificado, conforme demonstrado no exemplo a seguir.

aws autoscaling put-scaling-policy --policy-name cpu70-predictive-scaling-policy \ --auto-scaling-group-name my-asg --policy-type PredictiveScaling \ --predictive-scaling-configuration file://config.json

Se bem-sucedido, esse comando gerará o nome do recurso da Amazon (ARN) da política.

{ "PolicyARN": "arn:aws:autoscaling:region:account-id:scalingPolicy:d02ef525-8651-4314-bf14-888331ebd04f:autoScalingGroupName/my-asg:policyName/cpu70-predictive-scaling-policy", "Alarms": [] }