Cree una política de escalado de seguimiento de objetivos para Application Auto Scaling mediante el AWS CLI - Aplicación de escalado automático

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.

Cree una política de escalado de seguimiento de objetivos para Application Auto Scaling mediante el AWS CLI

Puede crear una política de escalado de seguimiento de objetivos para Application Auto Scaling mediante las AWS CLI siguientes tareas de configuración.

  1. Registrar un destino escalable.

  2. Agregue una política de escalado de seguimiento de destino al destino escalable.

Por cuestiones de brevedad, los ejemplos que se muestran en este tema ilustran los comandos de la CLI para una flota de spot de Amazon EC2. Para especificar un destino escalable diferente, especifique su espacio de nombres en --service-namespace, su dimensión escalable en --scalable-dimension y su ID de recurso en --resource-id. Para obtener más información y ejemplos de cada servicio, consulte los temas de Servicios de AWS que puede usar con Application Auto Scaling.

Cuando utilice el AWS CLI, recuerde que sus comandos se ejecutan en la Región de AWS configuración de su perfil. Si desea ejecutar los comandos en otra región, cambie la región predeterminada de su perfil o utilice el parámetro --region con el comando.

Registrar un destino escalable

Si aún no lo ha hecho, registre el destino escalable. Use el comando register-scalable-target para registrar un recurso específico en el servicio de destino como destino escalable. En el ejemplo siguiente se registra una solicitud de flota de spot con Auto Scaling de aplicaciones. Auto Scaling de aplicaciones puede escalar el número de instancias de flota de spot en un mínimo de 2 instancias y un máximo de 10. Reemplace cada marcador de posición de entrada del usuario con información propia.

Linux, macOS o Unix

aws application-autoscaling register-scalable-target --service-namespace ec2 \ --scalable-dimension ec2:spot-fleet-request:TargetCapacity \ --resource-id spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE \ --min-capacity 2 --max-capacity 10

Windows

aws application-autoscaling register-scalable-target --service-namespace ec2 --scalable-dimension ec2:spot-fleet-request:TargetCapacity --resource-id spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE --min-capacity 2 --max-capacity 10

Si se ejecuta correctamente, este comando devolverá el ARN del destino escalable.

{ "ScalableTargetARN": "arn:aws:application-autoscaling:region:account-id:scalable-target/1234abcd56ab78cd901ef1234567890ab123" }

Creación de una política de escalado de seguimiento de destino

Para crear una política de escalado y seguimiento de objetivos, puede utilizar los siguientes ejemplos como ayuda para empezar.

Para crear una política de escalado de seguimiento de destino
  1. Usa el siguiente cat comando para almacenar un valor objetivo para tu política de escalado y una especificación métrica predefinida en un archivo JSON nombrado config.json en tu directorio principal. El siguiente es un ejemplo de configuración de seguimiento de objetivos que mantiene la utilización media de la CPU en un 50 por ciento.

    $ cat ~/config.json { "TargetValue": 50.0, "PredefinedMetricSpecification": { "PredefinedMetricType": "EC2SpotFleetRequestAverageCPUUtilization" } }

    Para obtener más información, consulte PredefinedMetricEspecificación en la referencia de la API Application Auto Scaling.

    Como alternativa, puede usar una métrica personalizada para escalar creando una especificación de métrica personalizada y agregando valores para cada parámetro desde CloudWatch. A continuación, se muestra un ejemplo de configuración de seguimiento de objetivos que mantiene la utilización media de la métrica especificada en 100.

    $ cat ~/config.json { "TargetValue": 100.0, "CustomizedMetricSpecification":{ "MetricName": "MyUtilizationMetric", "Namespace": "MyNamespace", "Dimensions": [ { "Name": "MyOptionalMetricDimensionName", "Value": "MyOptionalMetricDimensionValue" } ], "Statistic": "Average", "Unit": "Percent" } }

    Para obtener más información, consulte CustomizedMetricEspecificación en la referencia de la API Application Auto Scaling.

  2. Utilice el siguiente comando put-scaling-policy junto con el archivo config.json que ha creado para crear una política de escalado denominada cpu50-target-tracking-scaling-policy:

    Linux, macOS o Unix

    aws application-autoscaling put-scaling-policy --service-namespace ec2 \ --scalable-dimension ec2:spot-fleet-request:TargetCapacity \ --resource-id spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE \ --policy-name cpu50-target-tracking-scaling-policy --policy-type TargetTrackingScaling \ --target-tracking-scaling-policy-configuration file://config.json

    Windows

    aws application-autoscaling put-scaling-policy --service-namespace ec2 --scalable-dimension ec2:spot-fleet-request:TargetCapacity --resource-id spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE --policy-name cpu50-target-tracking-scaling-policy --policy-type TargetTrackingScaling --target-tracking-scaling-policy-configuration file://config.json

    Si se ejecuta correctamente, este comando devuelve los ARN y los nombres de las dos CloudWatch alarmas creadas en su nombre.

    { "PolicyARN": "arn:aws:autoscaling:region:account-id:scalingPolicy:policy-id:resource/ec2/spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE:policyName/cpu50-target-tracking-scaling-policy", "Alarms": [ { "AlarmARN": "arn:aws:cloudwatch:region:account-id:alarm:TargetTracking-spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE-AlarmHigh-d4f0770c-b46e-434a-a60f-3b36d653feca", "AlarmName": "TargetTracking-spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE-AlarmHigh-d4f0770c-b46e-434a-a60f-3b36d653feca" }, { "AlarmARN": "arn:aws:cloudwatch:region:account-id:alarm:TargetTracking-spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE-AlarmLow-1b437334-d19b-4a63-a812-6c67aaf2910d", "AlarmName": "TargetTracking-spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE-AlarmLow-1b437334-d19b-4a63-a812-6c67aaf2910d" } ] }

Descripción de políticas de escalado de seguimiento de destino

Puede describir todas las políticas de escalado para el espacio de nombres del servicio especificado mediante el siguiente comando describe-scaling-policies.

aws application-autoscaling describe-scaling-policies --service-namespace ec2

Puede filtrar los resultados a solo las políticas de escalado de seguimiento de destino mediante el parámetro --query. Para obtener más información acerca de syntax para query, consulte Control de la salida de comandos de la AWS CLI en la Guía del usuario de AWS Command Line Interface .

Linux, macOS o Unix

aws application-autoscaling describe-scaling-policies --service-namespace ec2 \ --query 'ScalingPolicies[?PolicyType==`TargetTrackingScaling`]'

Windows

aws application-autoscaling describe-scaling-policies --service-namespace ec2 --query "ScalingPolicies[?PolicyType==`TargetTrackingScaling`]"

A continuación, se muestra un ejemplo del resultado.

[ { "PolicyARN": "PolicyARN", "TargetTrackingScalingPolicyConfiguration": { "PredefinedMetricSpecification": { "PredefinedMetricType": "EC2SpotFleetRequestAverageCPUUtilization" }, "TargetValue": 50.0 }, "PolicyName": "cpu50-target-tracking-scaling-policy", "ScalableDimension": "ec2:spot-fleet-request:TargetCapacity", "ServiceNamespace": "ec2", "PolicyType": "TargetTrackingScaling", "ResourceId": "spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE", "Alarms": [ { "AlarmARN": "arn:aws:cloudwatch:region:account-id:alarm:TargetTracking-spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE-AlarmHigh-d4f0770c-b46e-434a-a60f-3b36d653feca", "AlarmName": "TargetTracking-spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE-AlarmHigh-d4f0770c-b46e-434a-a60f-3b36d653feca" }, { "AlarmARN": "arn:aws:cloudwatch:region:account-id:alarm:TargetTracking-spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE-AlarmLow-1b437334-d19b-4a63-a812-6c67aaf2910d", "AlarmName": "TargetTracking-spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE-AlarmLow-1b437334-d19b-4a63-a812-6c67aaf2910d" } ], "CreationTime": 1515021724.807 } ]

Eliminación de una política de escalado de seguimiento de destino

Cuando haya terminado con una política de escalado de seguimiento de destino, puede eliminarla mediante el comando delete-scaling-policy.

El siguiente comando elimina la política de escalado de seguimiento de destino especificada para la solicitud de flota de spot indicada. También elimina las CloudWatch alarmas que Application Auto Scaling creó en su nombre.

Linux, macOS o Unix

aws application-autoscaling delete-scaling-policy --service-namespace ec2 \ --scalable-dimension ec2:spot-fleet-request:TargetCapacity \ --resource-id spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE \ --policy-name cpu50-target-tracking-scaling-policy

Windows

aws application-autoscaling delete-scaling-policy --service-namespace ec2 --scalable-dimension ec2:spot-fleet-request:TargetCapacity --resource-id spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE --policy-name cpu50-target-tracking-scaling-policy