Service Auto Scaling - Amazon Elastic Container Service

Service Auto Scaling

La scalabilité automatique est l'aptitude à augmenter ou à diminuer automatiquement le nombre souhaité de tâches dans votre service Amazon ECS service. Amazon ECS utilise le service Application Auto Scaling pour fournir cette fonctionnalité. Pour de plus amples informations, veuillez consulter le Guide de l'utilisateur Application Auto Scaling.

Amazon ECS publie des métriques CloudWatch avec les données d'utilisation moyenne de CPU et de mémoire de votre service. Pour de plus amples informations, veuillez consulter Utilisation des services. Vous pouvez utiliser ces métriques CloudWatch et d'autres métriques pour étendre votre service (ajouter davantage de tâches) afin de répondre à une forte demande aux heures de pointe, et pour faire évoluer votre service (exécuter moins de tâches) afin de réduire les coûts pendant les périodes de faible utilisation.

Amazon ECS Service Auto Scaling prend en charge les types de scalabilité automatique suivants :

  • Stratégies de dimensionnement Suivi de la cible – Augmente ou réduit le nombre de tâches exécutées par votre service en fonction d'une valeur cible pour une métrique spécifique. Cette option est similaire à la façon dont votre thermostat maintient la température de votre domicile. Vous sélectionnez une température et le thermostat se charge du reste.

  • Stratégies de dimensionnement d'étape – Augmente ou réduit le nombre de tâches exécutées par votre service en fonction d'un ensemble d'ajustements de mise à l'échelle, appelés ajustements d'étape, qui varient en fonction de la valeur du seuil de l'alarme.

  • Scheduled Scaling (Mise à l'échelle planifiée) – Augmente ou diminue le nombre de tâches exécutées par votre service en fonction de la date et de l'heure.

Service Auto Scaling et déploiements

Application Auto Scaling désactive les processus évolutifs pendant que les déploiements Amazon ECS sont en cours. Toutefois, pendant les déploiements, les processus de montée en puissance se poursuivent, sauf s'ils sont suspendus. Si vous souhaitez suspendre les processus de montée en puissance pendant les déploiements, procédez comme suit.

  1. Appelez la commande describe-scalable-targets, en spécifiant l'ID de ressource du service ECS associé à la cible évolutive dans Application Auto Scaling (par exemple, service/default/sample-webapp). Enregistrez la sortie. Vous en aurez besoin pour appeler la commande suivante.

  2. Appelez la commande register-scalable-target, en spécifiant l'ID de ressource, l'espace de noms et la dimension évolutive. Spécifiez true pour DynamicScalingInSuspended et DynamicScalingOutSuspended.

  3. Une fois le déploiement terminé, vous pouvez appeler la commande register-scalable-target pour reprendre la mise à l'échelle.

Pour plus d'informations, consultez Suspension et reprise de la mise à l'échelle pour Application Auto Scaling.

Autorisations IAM requises pour Service Auto Scaling

L'utilisation de Service Auto Scaling est rendue possible par une combinaison des API Amazon ECS, Amazon CloudWatch et Application Auto Scaling. Les services sont créés avec Amazon ECS, les alarmes sont créées avec CloudWatch et les stratégies de mise à l'échelle sont créées avec Application Auto Scaling.

Outre les autorisations IAM standard pour la création et la mise à jour des services, l'utilisateur IAM qui accède aux paramètres Service Auto Scaling doit disposer des autorisations appropriées pour les services qui prennent en charge la mise à l'échelle dynamique. Les utilisateurs IAM doivent être autorisés à utiliser les actions dans l'exemple de politique suivant.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "application-autoscaling:*", "ecs:DescribeServices", "ecs:UpdateService", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarmsForMetric", "cloudwatch:GetMetricStatistics", "cloudwatch:ListMetrics", "cloudwatch:DisableAlarmActions", "cloudwatch:EnableAlarmActions", "iam:CreateServiceLinkedRole", "sns:CreateTopic", "sns:Subscribe", "sns:Get*", "sns:List*" ], "Resource": [ "*" ] } ] }

Les exemples de stratégie IAM Exemple de création de service et Exemple de mise à jour du serviceprésentent les autorisations nécessaires aux utilisateurs IAM pour utiliser Service Auto Scaling dans la AWS Management Console.

Le service Application Auto Scaling nécessite l'autorisation de décrire vos services Amazon ECS service et vos alarmes CloudWatch, ainsi que des autorisations lui permettant de modifier le nombre souhaité pour votre service en votre nom. Si vous activez la scalabilité automatique pour vos services Amazon ECS service, elle crée un rôle lié à un service nommé AWSServiceRoleForApplicationAutoScaling_ECSService. Ce rôle lié à un service accorde l'autorisation Application Auto Scaling de décrire les alarmes de vos stratégies, de contrôler le nombre de tâches en cours d'exécution du service et de modifier le nombre souhaité du service. Le rôle d'origine géré par Amazon ECS pour Application Auto Scaling était ecsAutoscaleRole, mais il n'est plus nécessaire. Le rôle lié à un service est le rôle par défaut pour Application Auto Scaling. Pour plus d'informations, consultez Rôles liés aux services pour Application Auto Scaling dans le Guide de l'utilisateur Application Auto Scaling.

Notez que si vous avez créé le rôle de votre instance de conteneur Amazon ECS avant que les métriques CloudWatch soient disponibles pour Amazon ECS, vous devrez peut-être ajouter l'autorisation ecs:StartTelemetrySession. Pour de plus amples informations, veuillez consulter Activation des métriques CloudWatch.