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 scalabilità graduale per Application Auto Scaling utilizzando AWS CLI
Questo esempio utilizza AWS CLI i comandi per creare una politica di scalabilità a fasi per un servizio Amazon ECS. 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 registrato un servizio Amazon ECS con Application Auto Scaling. Application Auto Scaling può dimensionare il numero di attività a un minimo di 2 e un massimo di 10 attività. Sostituisci ciascun placeholder input dell'utente
con le tue informazioni.
Linux, macOS o Unix
aws application-autoscaling register-scalable-target --service-namespace ecs
\
--scalable-dimension ecs:service:DesiredCount
\
--resource-id service/my-cluster/my-service
\
--min-capacity 2
--max-capacity 10
Windows
aws application-autoscaling register-scalable-target --service-namespace ecs
^
--scalable-dimension ecs:service:DesiredCount
^
--resource-id service/my-cluster/my-service
^
--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: Creare una politica di scalabilità graduale
Per creare una politica di scalabilità graduale per il tuo obiettivo scalabile, puoi utilizzare i seguenti esempi per iniziare.
- Scale out
-
Per creare una politica di scalabilità graduale per la scalabilità orizzontale (aumento della capacità)
-
Utilizzate il cat
comando seguente per memorizzare una configurazione della politica di scalabilità dei passaggi in un file JSON denominato config.json
nella vostra home directory. Di seguito è riportato un esempio di configurazione con un tipo di regolazione PercentChangeInCapacity
che aumenta la capacità del target scalabile in base alle seguenti regolazioni della fase (presupponendo una soglia di CloudWatch allarme di 70):
-
Aumenta la capacità del 10 percento quando il valore della metrica è maggiore o uguale a 70 ma inferiore a 85
-
Aumenta la capacità del 20 percento quando il valore della metrica è maggiore o uguale a 85 ma inferiore a 95
-
Aumenta la capacità del 30 percento quando il valore della metrica è maggiore o uguale a 95
$ cat ~/config.json
{
"AdjustmentType": "PercentChangeInCapacity",
"MetricAggregationType": "Average",
"Cooldown": 60
,
"MinAdjustmentMagnitude": 1
,
"StepAdjustments": [
{
"MetricIntervalLowerBound": 0.0
,
"MetricIntervalUpperBound": 15.0
,
"ScalingAdjustment": 10
},
{
"MetricIntervalLowerBound": 15.0
,
"MetricIntervalUpperBound": 25.0
,
"ScalingAdjustment": 20
},
{
"MetricIntervalLowerBound": 25.0
,
"ScalingAdjustment": 30
}
]
}
Per ulteriori informazioni, consulta StepScalingPolicyConfigurationl'Application Auto Scaling API Reference.
-
Utilizzate il put-scaling-policycomando seguente, insieme al config.json
file creato, per creare una politica di scalabilità denominata. my-step-scaling-policy
Linux, macOS o Unix
aws application-autoscaling put-scaling-policy --service-namespace ecs
\
--scalable-dimension ecs:service:DesiredCount
\
--resource-id service/my-cluster/my-service
\
--policy-name my-step-scaling-policy
--policy-type StepScaling \
--step-scaling-policy-configuration file://config.json
Windows
aws application-autoscaling put-scaling-policy --service-namespace ecs
^
--scalable-dimension ecs:service:DesiredCount
^
--resource-id service/my-cluster/my-service
^
--policy-name my-step-scaling-policy
--policy-type StepScaling ^
--step-scaling-policy-configuration file://config.json
Output
L'output include l'ARN utilizzato come nome univoco per la policy. Ne hai bisogno per creare un CloudWatch allarme per la tua politica. Di seguito è riportato un output di esempio.
{
"PolicyARN": "arn:aws:autoscaling:region
:123456789012
:scalingPolicy:ac542982-cbeb-4294-891c-a5a941dfa787
:resource/ecs/service/my-cluster/my-service
:policyName/my-step-scaling-policy"
}
- Scale in
-
Per creare una politica di scalabilità graduale per la scalabilità in entrata (riduzione della capacità)
-
Utilizzate il cat
comando seguente per memorizzare una configurazione della politica di scalabilità dei passaggi in un file JSON denominato config.json
nella vostra home directory. Di seguito è riportato un esempio di configurazione con un tipo di regolazione ChangeInCapacity
che riduce la capacità del target scalabile in base alle seguenti regolazioni della fase (presupponendo una soglia di CloudWatch allarme di 50):
-
Riduci la capacità di 1 quando il valore della metrica è inferiore o uguale a 50 ma maggiore di 40
-
Riduci la capacità del 2% quando il valore della metrica è inferiore o uguale a 40 ma maggiore di 30
-
Riduci la capacità del 3% quando il valore della metrica è inferiore o uguale a 30
$ cat ~/config.json
{
"AdjustmentType": "ChangeInCapacity",
"MetricAggregationType": "Average",
"Cooldown": 60
,
"StepAdjustments": [
{
"MetricIntervalUpperBound": 0.0
,
"MetricIntervalLowerBound": -10.0
,
"ScalingAdjustment": -1
},
{
"MetricIntervalUpperBound": -10.0
,
"MetricIntervalLowerBound": -20.0
,
"ScalingAdjustment": -2
},
{
"MetricIntervalUpperBound": -20.0
,
"ScalingAdjustment": -3
}
]
}
Per ulteriori informazioni, consulta StepScalingPolicyConfigurationl'Application Auto Scaling API Reference.
-
Utilizzate il put-scaling-policycomando seguente, insieme al config.json
file creato, per creare una politica di scalabilità denominata. my-step-scaling-policy
Linux, macOS o Unix
aws application-autoscaling put-scaling-policy --service-namespace ecs
\
--scalable-dimension ecs:service:DesiredCount
\
--resource-id service/my-cluster/my-service
\
--policy-name my-step-scaling-policy
--policy-type StepScaling \
--step-scaling-policy-configuration file://config.json
Windows
aws application-autoscaling put-scaling-policy --service-namespace ecs
^
--scalable-dimension ecs:service:DesiredCount
^
--resource-id service/my-cluster/my-service
^
--policy-name my-step-scaling-policy
--policy-type StepScaling ^
--step-scaling-policy-configuration file://config.json
Output
L'output include l'ARN utilizzato come nome univoco per la policy. Hai bisogno di questo ARN per creare un CloudWatch allarme per la tua polizza. Di seguito è riportato un output di esempio.
{
"PolicyARN": "arn:aws:autoscaling:region
:123456789012
:scalingPolicy:ac542982-cbeb-4294-891c-a5a941dfa787
:resource/ecs/service/my-cluster/my-service
:policyName/my-step-scaling-policy"
}
Fase 3: Crea un allarme che richiami una politica di scalabilità
Infine, usa il seguente CloudWatch put-metric-alarmcomando per creare un allarme da utilizzare con la tua politica di scalabilità dei passaggi. In questo esempio, si dispone di un allarme basato sull'utilizzo medio della CPU. L'allarme viene configurato per essere in stato ALARM se raggiunge una soglia del 70% per almeno due periodi di valutazione consecutivi di 60 secondi. Per specificare una CloudWatch metrica diversa o utilizzare una metrica personalizzata, specificane il nome in --metric-name
e il relativo spazio dei nomi in. --namespace
Linux, macOS o Unix
aws cloudwatch put-metric-alarm --alarm-name Step-Scaling-AlarmHigh-ECS:service/my-cluster/my-service
\
--metric-name CPUUtilization
--namespace AWS/ECS
--statistic Average \
--period 60
--evaluation-periods 2
--threshold 70
\
--comparison-operator GreaterThanOrEqualToThreshold \
--dimensions Name=ClusterName,Value=default
Name=ServiceName,Value=sample-app-service
\
--alarm-actions PolicyARN
Windows
aws cloudwatch put-metric-alarm --alarm-name Step-Scaling-AlarmHigh-ECS:service/my-cluster/my-service
^
--metric-name CPUUtilization
--namespace AWS/ECS
--statistic Average ^
--period 60
--evaluation-periods 2
--threshold 70
^
--comparison-operator GreaterThanOrEqualToThreshold ^
--dimensions Name=ClusterName,Value=default
Name=ServiceName,Value=sample-app-service
^
--alarm-actions PolicyARN