Esempi di Application Auto Scaling utilizzando AWS CLI - AWS Command Line Interface

Questa documentazione è valida AWS CLI solo per la versione 1. Per la documentazione relativa alla versione 2 di AWS CLI, consulta la Guida per l'utente della versione 2.

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à.

Esempi di Application Auto Scaling utilizzando AWS CLI

I seguenti esempi di codice mostrano come eseguire azioni e implementare scenari comuni utilizzando AWS Command Line Interface with Application Auto Scaling.

Le operazioni sono estratti di codice da programmi più grandi e devono essere eseguite nel contesto. Sebbene le azioni mostrino come richiamare le singole funzioni di servizio, è possibile visualizzare le azioni nel contesto degli scenari correlati.

Ogni esempio include un collegamento al codice sorgente completo, in cui è possibile trovare istruzioni su come configurare ed eseguire il codice nel contesto.

Argomenti

Azioni

Il seguente esempio di codice mostra come utilizzaredelete-scaling-policy.

AWS CLI

Per eliminare una politica di scalabilità

Questo esempio elimina una politica di scalabilità per l'app web del ECS servizio Amazon in esecuzione nel cluster predefinito.

Comando:

aws application-autoscaling delete-scaling-policy --policy-name web-app-cpu-lt-25 --scalable-dimension ecs:service:DesiredCount --resource-id service/default/web-app --service-namespace ecs

Il seguente esempio di codice mostra come utilizzaredelete-scheduled-action.

AWS CLI

Per eliminare un'operazione pianificata

L'delete-scheduled-actionesempio seguente elimina l'azione pianificata specificata dalla flotta Amazon AppStream 2.0 specificata:

aws application-autoscaling delete-scheduled-action \ --service-namespace appstream \ --scalable-dimension appstream:fleet:DesiredCapacity \ --resource-id fleet/sample-fleet \ --scheduled-action-name my-recurring-action

Questo comando non produce alcun output.

Per ulteriori informazioni, consulta Dimensionamento pianificato nella Guida per l'utente di Application Auto Scaling.

Il seguente esempio di codice mostra come utilizzarederegister-scalable-target.

AWS CLI

Per annullare la registrazione di un target scalabile

Questo esempio annulla la registrazione di una destinazione scalabile per un ECS servizio Amazon chiamato web-app in esecuzione nel cluster predefinito.

Comando:

aws application-autoscaling deregister-scalable-target --service-namespace ecs --scalable-dimension ecs:service:DesiredCount --resource-id service/default/web-app

Questo esempio annulla la registrazione di una destinazione scalabile per una risorsa personalizzata. Il custom-resource-id file.txt contiene una stringa che identifica l'ID risorsa, che, per una risorsa personalizzata, è il percorso verso la risorsa personalizzata attraverso l'endpoint Amazon API Gateway.

Comando:

aws application-autoscaling deregister-scalable-target --service-namespace custom-resource --scalable-dimension custom-resource:ResourceType:Property --resource-id file://~/custom-resource-id.txt

Contenuto del file.txt: custom-resource-id

https://example.execute-api.us-west-2.amazonaws.com/prod/scalableTargetDimensions/1-23456789

Il seguente esempio di codice mostra come utilizzaredescribe-scalable-targets.

AWS CLI

Per descrivere obiettivi scalabili

L'describe-scalable-targetsesempio seguente descrive le destinazioni scalabili per il namespace del ecs servizio.

aws application-autoscaling describe-scalable-targets \ --service-namespace ecs

Output:

{ "ScalableTargets": [ { "ServiceNamespace": "ecs", "ScalableDimension": "ecs:service:DesiredCount", "ResourceId": "service/default/web-app", "MinCapacity": 1, "MaxCapacity": 10, "RoleARN": "arn:aws:iam::123456789012:role/aws-service-role/ecs.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_ECSService", "CreationTime": 1462558906.199, "SuspendedState": { "DynamicScalingOutSuspended": false, "ScheduledScalingSuspended": false, "DynamicScalingInSuspended": false }, "ScalableTargetARN": "arn:aws:application-autoscaling:us-west-2:123456789012:scalable-target/1234abcd56ab78cd901ef1234567890ab123" } ] }

Per ulteriori informazioni, consulta AWS i servizi che è possibile utilizzare con Application Auto Scaling nella Application Auto Scaling User Guide.

Il seguente esempio di codice mostra come utilizzaredescribe-scaling-activities.

AWS CLI

Esempio 1: per descrivere le attività di scalabilità per il servizio Amazon ECS specificato

L'describe-scaling-activitiesesempio seguente descrive le attività di scalabilità per un ECS servizio Amazon chiamato web-app che è in esecuzione nel default cluster. L'output mostra un'attività di scalabilità avviata da una politica di scalabilità.

aws application-autoscaling describe-scaling-activities \ --service-namespace ecs \ --resource-id service/default/web-app

Output:

{ "ScalingActivities": [ { "ScalableDimension": "ecs:service:DesiredCount", "Description": "Setting desired count to 1.", "ResourceId": "service/default/web-app", "ActivityId": "e6c5f7d1-dbbb-4a3f-89b2-51f33e766399", "StartTime": 1462575838.171, "ServiceNamespace": "ecs", "EndTime": 1462575872.111, "Cause": "monitor alarm web-app-cpu-lt-25 in state ALARM triggered policy web-app-cpu-lt-25", "StatusMessage": "Successfully set desired count to 1. Change successfully fulfilled by ecs.", "StatusCode": "Successful" } ] }

Per ulteriori informazioni, vedere Scaling activities for Application Auto Scaling nella Application Auto Scaling User Guide.

Esempio 2: Per descrivere le attività di ridimensionamento per la tabella DynamoDB specificata

L'describe-scaling-activitiesesempio seguente descrive le attività di ridimensionamento per una tabella DynamoDB chiamata. TestTable L'output mostra le attività di ridimensionamento avviate da due diverse azioni pianificate.

aws application-autoscaling describe-scaling-activities \ --service-namespace dynamodb \ --resource-id table/TestTable

Output:

{ "ScalingActivities": [ { "ScalableDimension": "dynamodb:table:WriteCapacityUnits", "Description": "Setting write capacity units to 10.", "ResourceId": "table/my-table", "ActivityId": "4d1308c0-bbcf-4514-a673-b0220ae38547", "StartTime": 1561574415.086, "ServiceNamespace": "dynamodb", "EndTime": 1561574449.51, "Cause": "maximum capacity was set to 10", "StatusMessage": "Successfully set write capacity units to 10. Change successfully fulfilled by dynamodb.", "StatusCode": "Successful" }, { "ScalableDimension": "dynamodb:table:WriteCapacityUnits", "Description": "Setting min capacity to 5 and max capacity to 10", "ResourceId": "table/my-table", "ActivityId": "f2b7847b-721d-4e01-8ef0-0c8d3bacc1c7", "StartTime": 1561574414.644, "ServiceNamespace": "dynamodb", "Cause": "scheduled action name my-second-scheduled-action was triggered", "StatusMessage": "Successfully set min capacity to 5 and max capacity to 10", "StatusCode": "Successful" }, { "ScalableDimension": "dynamodb:table:WriteCapacityUnits", "Description": "Setting write capacity units to 15.", "ResourceId": "table/my-table", "ActivityId": "d8ea4de6-9eaa-499f-b466-2cc5e681ba8b", "StartTime": 1561574108.904, "ServiceNamespace": "dynamodb", "EndTime": 1561574140.255, "Cause": "minimum capacity was set to 15", "StatusMessage": "Successfully set write capacity units to 15. Change successfully fulfilled by dynamodb.", "StatusCode": "Successful" }, { "ScalableDimension": "dynamodb:table:WriteCapacityUnits", "Description": "Setting min capacity to 15 and max capacity to 20", "ResourceId": "table/my-table", "ActivityId": "3250fd06-6940-4e8e-bb1f-d494db7554d2", "StartTime": 1561574108.512, "ServiceNamespace": "dynamodb", "Cause": "scheduled action name my-first-scheduled-action was triggered", "StatusMessage": "Successfully set min capacity to 15 and max capacity to 20", "StatusCode": "Successful" } ] }

Per ulteriori informazioni, vedere Scaling activities for Application Auto Scaling nella Application Auto Scaling User Guide.

Il seguente esempio di codice mostra come utilizzaredescribe-scaling-policies.

AWS CLI

Per descrivere le politiche di scalabilità

Questo comando di esempio descrive le politiche di scalabilità per lo spazio dei nomi del servizio ecs.

Comando:

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

Output:

{ "ScalingPolicies": [ { "PolicyName": "web-app-cpu-gt-75", "ScalableDimension": "ecs:service:DesiredCount", "ResourceId": "service/default/web-app", "CreationTime": 1462561899.23, "StepScalingPolicyConfiguration": { "Cooldown": 60, "StepAdjustments": [ { "ScalingAdjustment": 200, "MetricIntervalLowerBound": 0.0 } ], "AdjustmentType": "PercentChangeInCapacity" }, "PolicyARN": "arn:aws:autoscaling:us-west-2:012345678910:scalingPolicy:6d8972f3-efc8-437c-92d1-6270f29a66e7:resource/ecs/service/default/web-app:policyName/web-app-cpu-gt-75", "PolicyType": "StepScaling", "Alarms": [ { "AlarmName": "web-app-cpu-gt-75", "AlarmARN": "arn:aws:cloudwatch:us-west-2:012345678910:alarm:web-app-cpu-gt-75" } ], "ServiceNamespace": "ecs" }, { "PolicyName": "web-app-cpu-lt-25", "ScalableDimension": "ecs:service:DesiredCount", "ResourceId": "service/default/web-app", "CreationTime": 1462562575.099, "StepScalingPolicyConfiguration": { "Cooldown": 1, "StepAdjustments": [ { "ScalingAdjustment": -50, "MetricIntervalUpperBound": 0.0 } ], "AdjustmentType": "PercentChangeInCapacity" }, "PolicyARN": "arn:aws:autoscaling:us-west-2:012345678910:scalingPolicy:6d8972f3-efc8-437c-92d1-6270f29a66e7:resource/ecs/service/default/web-app:policyName/web-app-cpu-lt-25", "PolicyType": "StepScaling", "Alarms": [ { "AlarmName": "web-app-cpu-lt-25", "AlarmARN": "arn:aws:cloudwatch:us-west-2:012345678910:alarm:web-app-cpu-lt-25" } ], "ServiceNamespace": "ecs" } ] }

Il seguente esempio di codice mostra come utilizzaredescribe-scheduled-actions.

AWS CLI

Per descrivere le azioni pianificate

L'describe-scheduled-actionsesempio seguente visualizza i dettagli delle azioni pianificate per il namespace del servizio specificato:

aws application-autoscaling describe-scheduled-actions \ --service-namespace dynamodb

Output:

{ "ScheduledActions": [ { "ScalableDimension": "dynamodb:table:WriteCapacityUnits", "Schedule": "at(2019-05-20T18:35:00)", "ResourceId": "table/my-table", "CreationTime": 1561571888.361, "ScheduledActionARN": "arn:aws:autoscaling:us-west-2:123456789012:scheduledAction:2d36aa3b-cdf9-4565-b290-81db519b227d:resource/dynamodb/table/my-table:scheduledActionName/my-first-scheduled-action", "ScalableTargetAction": { "MinCapacity": 15, "MaxCapacity": 20 }, "ScheduledActionName": "my-first-scheduled-action", "ServiceNamespace": "dynamodb" }, { "ScalableDimension": "dynamodb:table:WriteCapacityUnits", "Schedule": "at(2019-05-20T18:40:00)", "ResourceId": "table/my-table", "CreationTime": 1561571946.021, "ScheduledActionARN": "arn:aws:autoscaling:us-west-2:123456789012:scheduledAction:2d36aa3b-cdf9-4565-b290-81db519b227d:resource/dynamodb/table/my-table:scheduledActionName/my-second-scheduled-action", "ScalableTargetAction": { "MinCapacity": 5, "MaxCapacity": 10 }, "ScheduledActionName": "my-second-scheduled-action", "ServiceNamespace": "dynamodb" } ] }

Per ulteriori informazioni, consulta Dimensionamento pianificato nella Guida per l'utente di Application Auto Scaling.

Il seguente esempio di codice mostra come utilizzarelist-tags-for-resource.

AWS CLI

Per elencare i tag per un target scalabile

L'list-tags-for-resourceesempio seguente elenca i nomi e i valori delle chiavi dei tag associati alla destinazione scalabile specificata da its. ARN

aws application-autoscaling list-tags-for-resource \ --resource-arn arn:aws:application-autoscaling:us-west-2:123456789012:scalable-target/1234abcd56ab78cd901ef1234567890ab123

Output:

{ "Tags": { "environment": "production" } }

Per ulteriori informazioni, consulta il supporto per l'etichettatura per Application Auto Scaling nella Application Auto Scaling User Guide.

Il seguente esempio di codice mostra come utilizzareput-scaling-policy.

AWS CLI

Esempio 1: applicazione di una policy di dimensionamento con monitoraggio degli obiettivi con uno specifico parametro di default

L'put-scaling-policyesempio seguente applica una politica di scalabilità del tracciamento degli obiettivi con una specifica metrica predefinita a un ECS servizio Amazon chiamato web-app nel cluster predefinito. La policy mantiene l'CPUutilizzo medio del servizio al 75%, con periodi di recupero della scalabilità orizzontale e intermedia di 60 secondi. L'output contiene i nomi ARNs e i nomi dei due CloudWatch allarmi creati per tuo conto.

aws application-autoscaling put-scaling-policy --service-namespace ecs \ --scalable-dimension ecs:service:DesiredCount \ --resource-id service/default/web-app \ --policy-name cpu75-target-tracking-scaling-policy --policy-type TargetTrackingScaling \ --target-tracking-scaling-policy-configuration file://config.json

Questo esempio presuppone che nella directory corrente sia presente un file config.json con il seguente contenuto:

{ "TargetValue": 75.0, "PredefinedMetricSpecification": { "PredefinedMetricType": "ECSServiceAverageCPUUtilization" }, "ScaleOutCooldown": 60, "ScaleInCooldown": 60 }

Output:

{ "PolicyARN": "arn:aws:autoscaling:us-west-2:012345678910:scalingPolicy:6d8972f3-efc8-437c-92d1-6270f29a66e7:resource/ecs/service/default/web-app:policyName/cpu75-target-tracking-scaling-policy", "Alarms": [ { "AlarmARN": "arn:aws:cloudwatch:us-west-2:012345678910:alarm:TargetTracking-service/default/web-app-AlarmHigh-d4f0770c-b46e-434a-a60f-3b36d653feca", "AlarmName": "TargetTracking-service/default/web-app-AlarmHigh-d4f0770c-b46e-434a-a60f-3b36d653feca" }, { "AlarmARN": "arn:aws:cloudwatch:us-west-2:012345678910:alarm:TargetTracking-service/default/web-app-AlarmLow-1b437334-d19b-4a63-a812-6c67aaf2910d", "AlarmName": "TargetTracking-service/default/web-app-AlarmLow-1b437334-d19b-4a63-a812-6c67aaf2910d" } ] }

Esempio 2: applicazione di una policy di dimensionamento con monitoraggio degli obiettivi con uno specifico parametro personalizzato

L'put-scaling-policyesempio seguente applica una politica di scalabilità del tracciamento degli obiettivi con una specifica metrica personalizzata a un ECS servizio Amazon chiamato web-app nel cluster predefinito. La policy mantiene l'utilizzo medio del servizio al 75%, con periodi di recupero della scalabilità orizzontale e intermedia di 60 secondi. L'output contiene i nomi ARNs e i nomi dei due CloudWatch allarmi creati per tuo conto.

aws application-autoscaling put-scaling-policy --service-namespace ecs \ --scalable-dimension ecs:service:DesiredCount \ --resource-id service/default/web-app \ --policy-name cms75-target-tracking-scaling-policy --policy-type TargetTrackingScaling \ --target-tracking-scaling-policy-configuration file://config.json

Questo esempio presuppone che nella directory corrente sia presente un file config.json con il seguente contenuto:

{ "TargetValue":75.0, "CustomizedMetricSpecification":{ "MetricName":"MyUtilizationMetric", "Namespace":"MyNamespace", "Dimensions": [ { "Name":"MyOptionalMetricDimensionName", "Value":"MyOptionalMetricDimensionValue" } ], "Statistic":"Average", "Unit":"Percent" }, "ScaleOutCooldown": 60, "ScaleInCooldown": 60 }

Output:

{ "PolicyARN": "arn:aws:autoscaling:us-west-2:012345678910:scalingPolicy: 8784a896-b2ba-47a1-b08c-27301cc499a1:resource/ecs/service/default/web-app:policyName/cms75-target-tracking-scaling-policy", "Alarms": [ { "AlarmARN": "arn:aws:cloudwatch:us-west-2:012345678910:alarm:TargetTracking-service/default/web-app-AlarmHigh-9bc77b56-0571-4276-ba0f-d4178882e0a0", "AlarmName": "TargetTracking-service/default/web-app-AlarmHigh-9bc77b56-0571-4276-ba0f-d4178882e0a0" }, { "AlarmARN": "arn:aws:cloudwatch:us-west-2:012345678910:alarm:TargetTracking-service/default/web-app-AlarmLow-9b6ad934-6d37-438e-9e05-02836ddcbdc4", "AlarmName": "TargetTracking-service/default/web-app-AlarmLow-9b6ad934-6d37-438e-9e05-02836ddcbdc4" } ] }

Esempio 3: applicazione di una policy di dimensionamento con monitoraggio degli obiettivi per il solo aumento orizzontale

L'put-scaling-policyesempio seguente applica una politica di dimensionamento del tracciamento degli obiettivi a un ECS servizio Amazon chiamato web-app nel cluster predefinito. La policy viene utilizzata per scalare orizzontalmente il ECS servizio quando la RequestCountPerTarget metrica dell'Application Load Balancer supera la soglia. L'output contiene il nome ARN e il nome dell' CloudWatch allarme creato per tuo conto.

aws application-autoscaling put-scaling-policy \ --service-namespace ecs \ --scalable-dimension ecs:service:DesiredCount \ --resource-id service/default/web-app \ --policy-name alb-scale-out-target-tracking-scaling-policy \ --policy-type TargetTrackingScaling \ --target-tracking-scaling-policy-configuration file://config.json

Contenuto di config.json.

{ "TargetValue": 1000.0, "PredefinedMetricSpecification": { "PredefinedMetricType": "ALBRequestCountPerTarget", "ResourceLabel": "app/EC2Co-EcsEl-1TKLTMITMM0EO/f37c06a68c1748aa/targetgroup/EC2Co-Defau-LDNM7Q3ZH1ZN/6d4ea56ca2d6a18d" }, "ScaleOutCooldown": 60, "ScaleInCooldown": 60, "DisableScaleIn": true }

Output:

{ "PolicyARN": "arn:aws:autoscaling:us-west-2:123456789012:scalingPolicy:6d8972f3-efc8-437c-92d1-6270f29a66e7:resource/ecs/service/default/web-app:policyName/alb-scale-out-target-tracking-scaling-policy", "Alarms": [ { "AlarmName": "TargetTracking-service/default/web-app-AlarmHigh-d4f0770c-b46e-434a-a60f-3b36d653feca", "AlarmARN": "arn:aws:cloudwatch:us-west-2:123456789012:alarm:TargetTracking-service/default/web-app-AlarmHigh-d4f0770c-b46e-434a-a60f-3b36d653feca" } ] }

Per ulteriori informazioni, consulta Target Tracking Scaling Policies for Application Auto Scaling nella AWS Application Auto Scaling User Guide.

Il seguente esempio di codice mostra come utilizzareput-scheduled-action.

AWS CLI

Per aggiungere un'azione pianificata a una tabella DynamoDB

Questo esempio aggiunge un'azione pianificata a una tabella DynamoDB TestTable chiamata per scalare out in base a una pianificazione ricorrente. Nella pianificazione specificata (ogni giorno alle 12:15UTC), se la capacità corrente è inferiore al valore specificato per MinCapacity, Application Auto Scaling viene ridimensionato fino al valore specificato da. MinCapacity

Comando:

aws application-autoscaling put-scheduled-action --service-namespace dynamodb --scheduled-action-name my-recurring-action --schedule "cron(15 12 * * ? *)" --resource-id table/TestTable --scalable-dimension dynamodb:table:WriteCapacityUnits --scalable-target-action MinCapacity=6

Per ulteriori informazioni, vedere Scheduled Scaling nella Application Auto Scaling User Guide.

Il seguente esempio di codice mostra come utilizzareregister-scalable-target.

AWS CLI

Esempio 1: registrare un ECS servizio come destinazione scalabile

L'register-scalable-targetesempio seguente registra un ECS servizio Amazon con Application Auto Scaling. Aggiunge inoltre un tag con il nome della chiave environment e il valore production alla destinazione scalabile.

aws application-autoscaling register-scalable-target \ --service-namespace ecs \ --scalable-dimension ecs:service:DesiredCount \ --resource-id service/default/web-app \ --min-capacity 1 --max-capacity 10 \ --tags environment=production

Output:

{ "ScalableTargetARN": "arn:aws:application-autoscaling:us-west-2:123456789012:scalable-target/1234abcd56ab78cd901ef1234567890ab123" }

Per esempi di altri AWS servizi e risorse personalizzate, consultate gli argomenti relativi AWS ai servizi che è possibile utilizzare con Application Auto Scaling nella Application Auto Scaling User Guide.

Esempio 2: sospendere le attività di scalabilità per un target scalabile

L'register-scalable-targetesempio seguente sospende le attività di scalabilità per un target scalabile esistente.

aws application-autoscaling register-scalable-target \ --service-namespace dynamodb \ --scalable-dimension dynamodb:table:ReadCapacityUnits \ --resource-id table/my-table \ --suspended-state DynamicScalingInSuspended=true,DynamicScalingOutSuspended=true,ScheduledScalingSuspended=true

Output:

{ "ScalableTargetARN": "arn:aws:application-autoscaling:us-west-2:123456789012:scalable-target/1234abcd56ab78cd901ef1234567890ab123" }

Per ulteriori informazioni, vedere Suspending and resuming scaling for Application Auto Scaling nella Application Auto Scaling User Guide.

Esempio 3: riprendere le attività di scalabilità per un target scalabile

L'register-scalable-targetesempio seguente riprende le attività di scalabilità per un target scalabile esistente.

aws application-autoscaling register-scalable-target \ --service-namespace dynamodb \ --scalable-dimension dynamodb:table:ReadCapacityUnits \ --resource-id table/my-table \ --suspended-state DynamicScalingInSuspended=false,DynamicScalingOutSuspended=false,ScheduledScalingSuspended=false

Output:

{ "ScalableTargetARN": "arn:aws:application-autoscaling:us-west-2:123456789012:scalable-target/1234abcd56ab78cd901ef1234567890ab123" }

Per ulteriori informazioni, vedere Suspending and resuming scaling for Application Auto Scaling nella Application Auto Scaling User Guide.

Il seguente esempio di codice mostra come utilizzaretag-resource.

AWS CLI

Per aggiungere un tag a un target scalabile

L'tag-resourceesempio seguente aggiunge un tag con il nome della chiave environment e il valore production alla destinazione scalabile specificata da its. ARN

aws application-autoscaling tag-resource \ --resource-arn arn:aws:application-autoscaling:us-west-2:123456789012:scalable-target/1234abcd56ab78cd901ef1234567890ab123 \ --tags environment=production

Questo comando non produce alcun output.

Per ulteriori informazioni, consulta il supporto per l'etichettatura per Application Auto Scaling nella Application Auto Scaling User Guide.

  • Per API i dettagli, vedere TagResourcein AWS CLI Command Reference.

Il seguente esempio di codice mostra come utilizzareuntag-resource.

AWS CLI

Per rimuovere un tag da un target scalabile

L'untag-resourceesempio seguente rimuove la coppia di tag con il nome della chiave environment dalla destinazione scalabile specificata da its. ARN

aws application-autoscaling untag-resource \ --resource-arn arn:aws:application-autoscaling:us-west-2:123456789012:scalable-target/1234abcd56ab78cd901ef1234567890ab123 \ --tag-keys "environment"

Questo comando non produce alcun output.

Per ulteriori informazioni, consulta il supporto per l'etichettatura per Application Auto Scaling nella Application Auto Scaling User Guide.

  • Per API i dettagli, vedere UntagResourcein AWS CLI Command Reference.