Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Créez une politique de dimensionnement par étapes pour Application Auto Scaling à l'aide du AWS CLI
Cet exemple utilise des AWS CLI commandes pour créer une politique de dimensionnement par étapes pour un service Amazon ECS. Pour une autre cible évolutive, spécifiez son espace de noms dans--service-namespace
, sa dimension évolutive dans --scalable-dimension
et son ID de ressource dans--resource-id
.
Lorsque vous utilisez le AWS CLI, n'oubliez pas que vos commandes s'exécutent dans la Région AWS configuration adaptée à votre profil. Si vous souhaitez exécuter les commandes dans une autre région, modifiez la région par défaut pour votre profil, ou utilisez le paramètre --region
avec la commande.
Étape 1 : enregistrer une cible évolutive
Si vous ne l'avez pas encore fait, enregistrez la cible évolutive. Utilisez la register-scalable-targetcommande pour enregistrer une ressource spécifique dans le service cible en tant que cible évolutive. L'exemple suivant enregistre un service Amazon ECS avec Application Auto Scaling. Application Auto Scaling peut ajuster le nombre de tâches avec un minimum de 2 tâches et un maximum de 10 tâches. Remplacez chaque espace réservé à la saisie de l'utilisateur
par vos propres informations.
Linux, macOS ou 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
Sortie
En cas de réussite, cette commande renvoie l'ARN de la cible évolutive. Voici un exemple de sortie.
{
"ScalableTargetARN": "arn:aws:application-autoscaling:region
:account-id
:scalable-target/1234abcd56ab78cd901ef1234567890ab123"
}
Étape 2 : Création d'une politique de dimensionnement par étapes
Pour créer une politique d'échelonnement pour votre cible évolutive, vous pouvez utiliser les exemples suivants pour vous aider à démarrer.
- Scale out
-
Pour créer une politique de mise à l'échelle progressive pour le scalage (augmentation de la capacité)
-
Utilisez la cat
commande suivante pour enregistrer une configuration de politique de dimensionnement par étapes dans un fichier JSON nommé config.json
dans votre répertoire de base. Voici un exemple de configuration avec un type de réglage PercentChangeInCapacity
qui augmente la capacité de la cible évolutive en fonction des ajustements par étapes suivants (en supposant un seuil CloudWatch d'alarme de 70) :
-
Augmenter la capacité de 10 % lorsque la valeur de la métrique est supérieure ou égale à 70 mais inférieure à 85
-
Augmenter la capacité de 20 % lorsque la valeur de la métrique est supérieure ou égale à 85 mais inférieure à 95
-
Augmenter la capacité de 30 % lorsque la valeur de la métrique est supérieure ou égale à 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
}
]
}
Pour plus d'informations, reportez-vous StepScalingPolicyConfigurationà la section Application Auto Scaling API Reference.
-
Utilisez la put-scaling-policycommande suivante, ainsi que le config.json
fichier que vous avez créé, pour créer une politique de dimensionnement nomméemy-step-scaling-policy
.
Linux, macOS ou 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
Sortie
Le résultat comprend l'ARN qui sert de nom unique pour la stratégie. Vous en avez besoin pour créer une CloudWatch alarme pour votre police. Voici un exemple de sortie.
{
"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
-
Pour créer une politique d'échelonnement à des fins d'évolutivité (diminution de la capacité)
-
Utilisez la cat
commande suivante pour enregistrer une configuration de politique de dimensionnement par étapes dans un fichier JSON nommé config.json
dans votre répertoire de base. Voici un exemple de configuration avec un type de réglage ChangeInCapacity
qui réduit la capacité de la cible évolutive en fonction des ajustements par étapes suivants (en supposant un seuil CloudWatch d'alarme de 50) :
-
Diminuez la capacité de 1 lorsque la valeur de la métrique est inférieure ou égale à 50 mais supérieure à 40
-
Diminuez la capacité de 2 lorsque la valeur de la métrique est inférieure ou égale à 40 mais supérieure à 30
-
Diminuez la capacité de 3 lorsque la valeur de la métrique est inférieure ou égale à 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
}
]
}
Pour plus d'informations, reportez-vous StepScalingPolicyConfigurationà la section Application Auto Scaling API Reference.
-
Utilisez la put-scaling-policycommande suivante, ainsi que le config.json
fichier que vous avez créé, pour créer une politique de dimensionnement nomméemy-step-scaling-policy
.
Linux, macOS ou 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
Sortie
Le résultat comprend l'ARN qui sert de nom unique pour la stratégie. Vous avez besoin de cet ARN pour créer une CloudWatch alarme pour votre politique. Voici un exemple de sortie.
{
"PolicyARN": "arn:aws:autoscaling:region
:123456789012
:scalingPolicy:ac542982-cbeb-4294-891c-a5a941dfa787
:resource/ecs/service/my-cluster/my-service
:policyName/my-step-scaling-policy"
}
Étape 3 : créer une alarme qui invoque une politique de dimensionnement
Enfin, utilisez la CloudWatch put-metric-alarmcommande suivante pour créer une alarme à utiliser avec votre politique de dimensionnement des étapes. Dans cet exemple, nous utilisons une alarme basée sur l'utilisation moyenne de l'UC. L'alarme est configurée pour être dans un état ALARM si elle atteint un seuil de 70 % pendant au moins deux périodes d'évaluation consécutives de 60 secondes. Pour spécifier une autre CloudWatch métrique ou utiliser votre propre métrique personnalisée, spécifiez son nom dans --metric-name
et son espace de noms dans--namespace
.
Linux, macOS ou 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