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

En este ejemplo, se utilizan AWS CLI comandos para crear una política de almacenamiento objetivo para una flota de Amazon EC2 Spot. Para un objetivo escalable diferente, especifique su espacio de nombres en--service-namespace, su dimensión escalable en y su ID de --scalable-dimension recurso en. --resource-id

Cuando utilice 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.

Paso 1: Registrar un objetivo escalable

Si aún no lo ha hecho, registre el destino escalable. Utilice el register-scalable-targetcomando 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
Salida

Si se ejecuta correctamente, este comando devolverá el ARN del destino escalable. A continuación, se muestra un ejemplo del resultado.

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

Paso 2: Crear 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 la Referencia PredefinedMetricSpecificationde 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. El siguiente es 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 la Referencia CustomizedMetricSpecificationde la API Application Auto Scaling.

  2. Utilice el siguiente put-scaling-policycomando, junto con el config.json archivo que creó, para crear una política de escalado denominadacpu50-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
    Salida

    Si se ejecuta correctamente, este comando devuelve los ARN y los nombres de las dos CloudWatch alarmas creadas en su nombre. A continuación, se muestra un ejemplo del resultado.

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

Paso 3: Describa las políticas de escalado y seguimiento de objetivos

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

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`]"
Salida

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 } ]