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

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 azioni sono estratti di codice da programmi più grandi e devono essere eseguite nel contesto. Sebbene le azioni mostrino come richiamare le singole funzioni del servizio, è possibile visualizzarle contestualizzate negli scenari correlati.

Ogni esempio include un link al codice sorgente completo, in cui vengono fornite le istruzioni su come configurare ed eseguire il codice nel contesto.

Argomenti

Azioni

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

AWS CLI

Come eliminare una policy di dimensionamento

Questo esempio elimina una policy di dimensionamento per l’app web del servizio Amazon ECS 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

Come 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

Come annullare la registrazione di una destinazione dimensionabile

Questo esempio annulla la registrazione di una destinazione dimensionabile di un servizio Amazon ECS denominato 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 dimensionabile di una risorsa personalizzata. Il custom-resource-id file.txt contiene una stringa che identifica l'ID risorsa, che, per una risorsa personalizzata, è il percorso della 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

Come descrivere le destinazioni dimensionabili

L’esempio describe-scalable-targets seguente descrive le destinazioni dimensionabili del namespace del servizio ecs.

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 Servizi AWS che è possibile utilizzare con Application Auto Scaling nella Guida per l’utente di Application Auto Scaling.

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

AWS CLI

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

L’esempio describe-scaling-activities seguente descrive le attività di dimensionamento per un servizio Amazon ECS denominato web-app in esecuzione nel cluster default. L’output mostra un’attività di dimensionamento avviata da una policy di dimensionamento.

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, consulta Attività di dimensionamento per Application Auto Scaling nella Guida per l’utente di Application Auto Scaling.

Esempio 2: come descrivere le attività di dimensionamento per la tabella DynamoDB specificata

L’esempio describe-scaling-activities seguente descrive le attività di dimensionamento per una tabella DynamoDB denominata TestTable. L’output mostra le attività di dimensionamento 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, consulta Attività di dimensionamento per Application Auto Scaling nella Guida per l’utente di Application Auto Scaling.

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

AWS CLI

Come descrivere le policy di dimensionamento

Questo comando di esempio descrive le policy di dimensionamento per il namespace 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

Come descrivere le azioni pianificate

L’esempio describe-scheduled-actions 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

Come elencare i tag per una destinazione dimensionabile

L’esempio list-tags-for-resource seguente elenca i nomi e i valori delle chiavi dei tag associati alla destinazione dimensionabile specificata dal relativo 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 Service Quotas di Application Auto Scaling nella Guida per l’utente di Application Auto Scaling.

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

AWS CLI

Esempio 1: come applicare una policy di dimensionamento di monitoraggio obiettivi con uno specifico parametro predefinito

L’esempio put-scaling-policy seguente applica una policy di dimensionamento con monitoraggio delle destinazioni con una specifica di metrica predefinita a un servizio Amazon ECS denominato web-app nel cluster predefinito. La policy mantiene l’utilizzo medio della CPU del servizio al 75%, con tempi di raffreddamento delle operazioni di dimensionamento orizzontale 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: come applicare una policy di dimensionamento di monitoraggio obiettivi con uno specifico parametro personalizzato

L’esempio put-scaling-policy seguente applica una policy di dimensionamento con monitoraggio delle destinazioni con una specifica di metrica personalizzata a un servizio Amazon ECS denominato web-app nel cluster predefinito. La policy mantiene l’utilizzo medio del servizio al 75%, con tempi di raffreddamento delle operazioni di dimensionamento orizzontale 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: come applicare una policy di dimensionamento di monitoraggio obiettivi per il solo incremento

L’esempio put-scaling-policy seguente applica una policy di dimensionamento con monitoraggio delle destinazioni a un servizio denominato web-app nel cluster predefinito. La policy viene utilizzata per aumentare orizzontalmente il servizio ECS quando la metrica RequestCountPerTarget dell’Application Load Balancer supera la soglia. L'output contiene l'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 Policy di dimensionamento del monitoraggio delle destinazioni per Application Auto Scaling nella Guida per l’utente di AWS Application Auto Scaling.

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

AWS CLI

Come 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:15 UTC), 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, consulta Dimensionamento pianificato nella Guida per l’utente di Application Auto Scaling.

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

AWS CLI

Esempio 1: come registrare un servizio ECS come destinazione dimensionabile

L’esempio register-scalable-target seguente registra un servizio Amazon ECS con Application Auto Scaling. Alla destinazione dimensionabile aggiunge anche un tag con il nome della chiave environment e il valore production.

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: come sospendere le attività di dimensionamento per una destinazione dimensionabile

L’esempio register-scalable-target seguente sospende le attività di dimensionamento per una destinazione dimensionabile 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, consulta Sospensione e ripresa del dimensionamento per Application Auto Scaling nella Guida per l’utente di Application Auto Scaling.

Esempio 3: come sospendere le attività di dimensionamento per una destinazione dimensionabile

L’esempio register-scalable-target seguente sospende le attività di dimensionamento per una destinazione dimensionabile 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, consulta Sospensione e ripresa del dimensionamento per Application Auto Scaling nella Guida per l’utente di Application Auto Scaling.

Il seguente esempio di codice mostra come utilizzaretag-resource.

AWS CLI

Come aggiungere un tag a una destinazione dimensionabile

L’esempio tag-resource seguente aggiunge un tag con il nome della chiave environment e il valore production alla destinazione dimensionabile specificata dal relativo 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 Service Quotas di Application Auto Scaling nella Guida per l’utente di Application Auto Scaling.

Il seguente esempio di codice mostra come utilizzareuntag-resource.

AWS CLI

Come rimuovere un tag da una destinazione dimensionabile

L’esempio untag-resource seguente rimuove la coppia di tag con il nome di chiave environment dalla destinazione dimensionabile specificata dal relativo 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 Service Quotas di Application Auto Scaling nella Guida per l’utente di Application Auto Scaling.