Creación de una política de escalado de seguimiento de destino para Amazon EC2 Auto Scaling con la calculadora de métricas - Amazon EC2 Auto Scaling

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Creación de una política de escalado de seguimiento de destino para Amazon EC2 Auto Scaling con la calculadora de métricas

Con las matemáticas métricas, puede consultar varias CloudWatch métricas y utilizar expresiones matemáticas para crear nuevas series temporales basadas en estas métricas. Puede visualizar las series temporales resultantes en la CloudWatch consola y añadirlas a los paneles. Para obtener más información sobre las matemáticas métricas, consulte Uso de las matemáticas métricas en la Guía del CloudWatch usuario de Amazon.

Las siguientes consideraciones se aplican a las expresiones de la calculadora de métricas:

  • Puede consultar cualquier CloudWatch métrica disponible. Cada métrica es una combinación única de nombre de métrica, espacio de nombres y cero o más dimensiones.

  • Puede usar cualquier operador aritmético (+ - */^), función estadística (como AVG o SUM) u otra función compatible. CloudWatch

  • Puede utilizar tanto las métricas como los resultados de otras expresiones matemáticas en las fórmulas de la expresión matemática.

  • Todas las expresiones utilizadas en la especificación de una métrica deben devolver en última instancia una única serie temporal.

  • Puede comprobar que una expresión matemática métrica es válida mediante la CloudWatch consola o la API. CloudWatch GetMetricData

nota

Puede crear una política de escalado de seguimiento de objetivos utilizando la matemática métrica solo si utiliza el SDK AWS CLI o un SDK. Esta función aún no está disponible en la consola y AWS CloudFormation.

Ejemplo: cola de tareas pendientes de Amazon SQS por instancia

Para calcular la cola de tareas pendientes de Amazon SQS por instancia, se toma el número aproximado de mensajes disponibles para recuperar de la cola y se divide por la capacidad de ejecución del grupo de escalado automático, que es el número de instancias con estado InService. Para obtener más información, consulte Escalado basado en Amazon SQS.

La lógica de la expresión es la siguiente:

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

Entonces, la información de sus CloudWatch métricas es la siguiente.

ID CloudWatch métrica Estadística Período
m1 ApproximateNumberOfMessagesVisible Sum 1 minuto
m2 GroupInServiceInstances Media 1 minuto

Su ID de cálculo de métrica y expresión son los siguientes.

ID Expression
e1 (m1)/(m2)
Para utilizar esta calculadora de métricas para crear una política de escalado de seguimiento de destino (AWS CLI)
  1. Guarde la expresión de la calculadora de métricas como parte de una especificación métrica personalizada en un archivo JSON denominado config.json.

    Utilice el siguiente ejemplo como ayuda para comenzar. Reemplace cada marcador de posición de entrada del usuario con información propia.

    { "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 obtener más información, consulte la TargetTrackingConfigurationreferencia de la API Auto Scaling de Amazon EC2.

    nota

    Los siguientes son algunos recursos adicionales que pueden ayudarle a encontrar nombres de métricas, espacios de nombres, dimensiones y estadísticas para las métricas: CloudWatch

  2. Para crear esta política, ejecute el put-scaling-policycomando con el archivo JSON como entrada, como se muestra en el siguiente ejemplo.

    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

    Si se ejecuta correctamente, este comando devuelve el nombre de recurso de Amazon (ARN) de la política y los ARN de las dos CloudWatch alarmas creadas en su nombre.

    { "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

    Si este comando arroja un error, asegúrese de haber actualizado la versión AWS CLI local a la última versión.