Crie uma política de escalabilidade de rastreamento de metas usando matemática métrica - 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 de rastreamento de metas usando matemática métrica

Usando a matemática métrica, você pode consultar várias CloudWatch métricas e usar expressões matemáticas para criar novas séries temporais com base nessas métricas. Você pode visualizar as séries temporais resultantes no CloudWatch console e adicioná-las aos painéis. Para obter mais informações sobre matemática métrica, consulte Usando matemática métrica no Guia CloudWatch do usuário da Amazon.

As considerações a seguir se aplicam a expressões matemática em métricas:

  • Você pode consultar qualquer CloudWatch métrica disponível. Cada métrica corresponde a uma combinação exclusiva de nome de métrica, espaço nominal e zero ou mais dimensões.

  • Você pode usar qualquer operador aritmético (+ - */^), função estatística (como AVG ouSUM) ou outra função que ofereça suporte. CloudWatch

  • Você pode usar as métricas e os resultados de outras expressões matemáticas nas fórmulas da expressão matemática.

  • Qualquer expressão usada em uma especificação de métrica deve eventualmente retornar uma única série temporal.

  • Você pode verificar se uma expressão matemática métrica é válida usando o CloudWatch console ou CloudWatch GetMetricDataAPIo.

nota

Você pode criar uma política de escalabilidade de rastreamento de metas usando matemática métrica somente se usar o AWS CLI AWS CloudFormation, ou umSDK. Este atributo ainda não está disponível no console.

Exemplo: lista de pendências de SQS filas da Amazon por instância

Para calcular o backlog de SQS filas da Amazon por instância, pegue o número aproximado de mensagens disponíveis para recuperação da fila e divida esse número pela capacidade de execução do grupo Auto Scaling, que é o número de instâncias no estado. InService Para obter mais informações, consulte Política de escalabilidade baseada na Amazon SQS.

A lógica da expressão é a seguinte:

sum of (number of messages in the queue)/(number of InService instances)

Então, suas informações CloudWatch métricas são as seguintes.

ID CloudWatch métrica Estatística Período
m1 ApproximateNumberOfMessagesVisible Soma 1 minuto
m2 GroupInServiceInstances Média 1 minuto

O ID e a expressão matemáticos da métrica são os seguintes:

ID Expressão
e1 (m1)/(m2)

O diagrama a seguir ilustra a arquitetura dessa métrica:

Diagrama arquitetônico do Amazon EC2 Auto Scaling usando filas
Para usar essa matemática em métricas na criação de uma política de escalabilidade com monitoramento de destino (AWS CLI)
  1. Armazene a expressão matemática métrica como parte de uma especificação métrica personalizada em um JSON arquivo chamadoconfig.json.

    Use o exemplo a seguir como auxílio para começar. Substitua cada user input placeholder com suas próprias informações.

    { "CustomizedMetricSpecification": { "Metrics": [ { "Label": "Get the queue size (the number of messages waiting to be processed)", "Id": "m1", "MetricStat": { "Metric": { "MetricName": "ApproximateNumberOfMessagesVisible", "Namespace": "AWS/SQS", "Dimensions": [ { "Name": "QueueName", "Value": "my-queue" } ] }, "Stat": "Sum" }, "ReturnData": false }, { "Label": "Get the group size (the number of InService instances)", "Id": "m2", "MetricStat": { "Metric": { "MetricName": "GroupInServiceInstances", "Namespace": "AWS/AutoScaling", "Dimensions": [ { "Name": "AutoScalingGroupName", "Value": "my-asg" } ] }, "Stat": "Average" }, "ReturnData": false }, { "Label": "Calculate the backlog per instance", "Id": "e1", "Expression": "m1 / m2", "ReturnData": true } ] }, "TargetValue": 100 }

    Para obter mais informações, consulte TargetTrackingConfigurationa Amazon EC2 Auto Scaling API Reference.

    nota

    Veja a seguir alguns recursos adicionais que podem ajudá-lo a encontrar nomes de métricas, namespaces, dimensões e estatísticas para CloudWatch métricas:

  2. Para criar essa política, execute o put-scaling-policycomando usando o JSON arquivo como entrada, conforme demonstrado no exemplo a seguir.

    aws autoscaling put-scaling-policy --policy-name sqs-backlog-target-tracking-scaling-policy \ --auto-scaling-group-name my-asg --policy-type TargetTrackingScaling \ --target-tracking-configuration file://config.json

    Se for bem-sucedido, esse comando retornará o Amazon Resource Name (ARN) da política e o ARNs dos dois CloudWatch alarmes criados em seu nome.

    { "PolicyARN": "arn:aws:autoscaling:us-west-2:123456789012:scalingPolicy:228f02c2-c665-4bfd-aaac-8b04080bea3c:autoScalingGroupName/my-asg:policyName/sqs-backlog-target-tracking-scaling-policy", "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" } ] }
    nota

    Se esse comando gerar um erro, verifique se você atualizou o AWS CLI localmente para a versão mais recente.