Creare una politica di ridimensionamento del tracciamento degli obiettivi per Application Auto Scaling utilizzando il AWS CLI - Application Auto Scaling

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Creare una politica di ridimensionamento del tracciamento degli obiettivi per Application Auto Scaling utilizzando il AWS CLI

Questo esempio utilizza AWS CLI i comandi per creare una politica di rack di destinazione per una flotta Spot Amazon EC2. Per un target scalabile diverso, specifica il relativo spazio dei nomi in--service-namespace, la dimensione scalabile in e l'ID della risorsa in--scalable-dimension. --resource-id

Quando usi il AWS CLI, ricorda che i comandi vengono eseguiti nella Regione AWS configurazione per il tuo profilo. Per eseguire i comandi in un'altra regione, modificare la regione predefinita per il profilo oppure utilizzare il parametro --region con il comando.

Fase 1: Registrare un target scalabile

Se non lo hai ancora fatto, registra l'obiettivo scalabile. Utilizza il register-scalable-targetcomando per registrare una risorsa specifica nel servizio di destinazione come destinazione scalabile. Nell'esempio seguente viene registrata una richiesta alla serie di istanze Spot con Application Auto Scaling. Application Auto Scaling può dimensionare il numero di istanze della serie di istanze Spot a un minimo di 2 e un massimo di 10 istanze. Sostituisci ciascun placeholder input dell'utente con le tue informazioni.

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
Output

In caso di esito positivo, il comando restituisce l'ARN dell'obiettivo scalabile. Di seguito è riportato un output di esempio.

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

Fase 2: creazione una policy di dimensionamento con monitoraggio degli obiettivi

Per creare una politica di ridimensionamento del tracciamento degli obiettivi, puoi utilizzare i seguenti esempi per iniziare.

Creazione di una policy di dimensionamento con monitoraggio degli obiettivi
  1. Utilizzate il cat comando seguente per memorizzare un valore target per la vostra politica di scalabilità e una specifica metrica predefinita in un file JSON denominato config.json nella vostra home directory. Di seguito è riportato un esempio di configurazione di tracciamento degli obiettivi che mantiene l'utilizzo medio della CPU al 50%.

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

    Per ulteriori informazioni, consulta PredefinedMetricSpecificationl'Application Auto Scaling API Reference.

    In alternativa, puoi utilizzare una metrica personalizzata per il ridimensionamento creando una specifica metrica personalizzata e aggiungendo valori per ogni parametro da. CloudWatch Di seguito è riportato un esempio di configurazione di tracciamento degli obiettivi che mantiene l'utilizzo medio della metrica specificata a 100.

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

    Per ulteriori informazioni, consulta CustomizedMetricSpecificationl'Application Auto Scaling API Reference.

  2. Utilizzate il seguente put-scaling-policycomando, insieme al config.json file creato, per creare una politica di scalabilità denominata. 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
    Output

    In caso di successo, questo comando restituisce gli ARN e i nomi dei due CloudWatch allarmi creati per tuo conto. Di seguito è riportato un output di esempio.

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

Fase 3: Descrivi le politiche di scalabilità del tracciamento degli obiettivi

È possibile descrivere tutte le politiche di scalabilità per il namespace del servizio specificato utilizzando il seguente comando. describe-scaling-policies

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

È possibile filtrare i risultati solo per le policy di dimensionamento del monitoraggio di target utilizzando il parametro --query. Per ulteriori informazioni sulla sintassi per query, consulta Controllo dell'output del comando dalla AWS CLI nella Guida per l'utente di 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`]"
Output

Di seguito è riportato un output di esempio.

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