Gestion automatique de la capacité Amazon ECS grâce à l’autoscaling de cluster - Amazon Elastic Container Service

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.

Gestion automatique de la capacité Amazon ECS grâce à l’autoscaling de cluster

Amazon ECS peut gérer le dimensionnement des EC2 instances Amazon enregistrées dans votre cluster. C'est ce qu'on appelle l'autoscaling du cluster Amazon ECS. Vous activez le dimensionnement géré lorsque vous créez le fournisseur de capacité du groupe Amazon ECS Amazon EC2 Auto Scaling. Ensuite, vous définissez un pourcentage cible (letargetCapacity) pour l'utilisation des instances dans ce groupe Amazon EC2 Auto Scaling. Amazon ECS crée deux CloudWatch métriques personnalisées et une politique de dimensionnement du suivi des cibles pour votre groupe Amazon EC2 Auto Scaling. Amazon ECS gère ensuite l’évolutivité horizontale en fonction des ressources que vos tâches utilisent.

Pour chaque fournisseur de capacité de groupe Amazon EC2 Auto Scaling associé à un cluster, Amazon ECS crée et gère les ressources suivantes :

  • Une CloudWatch alarme de faible valeur métrique

  • Une CloudWatch alarme à valeur métrique élevée

  • Stratégie de mise à l'échelle de suivi cible

    Note

    Amazon ECS crée la politique de dimensionnement du suivi des cibles et l'associe au groupe Amazon EC2 Auto Scaling. Pour mettre à jour la stratégie de dimensionnement de suivi cible, mettez à jour les paramètres de dimensionnement géré du fournisseur de capacité au lieu de mettre à jour directement la politique de dimensionnement.

Lorsque vous désactivez le dimensionnement géré ou que vous dissociez le fournisseur de capacité d'un cluster, Amazon ECS supprime à la fois les CloudWatch métriques et les ressources de politique de dimensionnement de suivi des cibles.

Amazon ECS utilise les métriques suivantes pour déterminer les mesures à prendre :

CapacityProviderReservation

Le pourcentage d’instances de conteneur utilisées pour un fournisseur de capacité spécifique. Amazon ECS génère cette métrique.

Amazon ECS définit la valeur CapacityProviderReservation sur un nombre compris entre 0 et 100. Amazon ECS utilise la formule suivante pour représenter le ratio de capacité restant dans le groupe Amazon EC2 Auto Scaling. Amazon ECS publie ensuite la métrique sur CloudWatch. Pour plus d’informations sur le calcul de la métrique, consultez la section le billet de blog Deep Dive on Amazon ECS Cluster Auto Scaling.

CapacityProviderReservation = (number of instances needed) / (number of running instances) x 100
DesiredCapacity

La quantité de capacité du groupe Amazon EC2 Auto Scaling. Cette métrique n'est pas publiée sur CloudWatch.

Amazon ECS publie la CapacityProviderReservation métrique CloudWatch dans l'espace de AWS/ECS/ManagedScaling noms. La métrique CapacityProviderReservation entraîne l'une des actions suivantes :

La valeur CapacityProviderReservation est égale à targetCapacity.

Le groupe Amazon EC2 Auto Scaling n'a pas besoin d'effectuer une mise à l'échelle interne ou externe. Le pourcentage d'utilisation cible a été atteint.

La valeur CapacityProviderReservation est supérieure à targetCapacity.

Un plus grand nombre de tâches utilisent un pourcentage de capacité supérieur à votre pourcentage targetCapacity. L'augmentation de la valeur de la CapacityProviderReservation métrique entraîne l'action de l' CloudWatch alarme associée. Cette alarme met à jour la DesiredCapacity valeur du groupe Amazon EC2 Auto Scaling. Le groupe Amazon EC2 Auto Scaling utilise cette valeur pour lancer EC2 des instances, puis les enregistrer auprès du cluster.

Lorsque la valeur par défaut de targetCapacity est de 100 %, les nouvelles tâches sont à l'état PENDING pendant la montée en puissance, car les instances ne disposent pas de la capacité nécessaire pour exécuter les tâches. Une fois les nouvelles instances enregistrées auprès d'ECS, ces tâches commenceront sur les nouvelles instances.

La valeur CapacityProviderReservation est inférieure à targetCapacity.

Un plus petit nombre de tâches utilisent un pourcentage de capacité inférieur à votre pourcentage targetCapacity, et au moins une instance peut être résiliée. La diminution de la valeur de la CapacityProviderReservation métrique entraîne l'action de l' CloudWatch alarme associée. Cette alarme met à jour la DesiredCapacity valeur du groupe Amazon EC2 Auto Scaling. Le groupe Amazon EC2 Auto Scaling utilise cette valeur pour mettre fin aux instances de EC2 conteneur, puis les désenregistrer du cluster.

Le groupe Amazon EC2 Auto Scaling suit la politique de résiliation du groupe afin de déterminer les instances auxquelles il met fin en premier lors d'événements de scale-in. De plus, cela évite les instances ayant un paramètre de protection contre la mise à l'échelle horizontale d'instance activé. L'autoscaling de cluster permet de gérer les instances dotées du paramètre de protection contre la mise à l'échelle horizontale des instances si vous activez la protection contre la résiliation gérée. Pour plus d'informations sur la protection contre la résiliation gérée, veuillez consulter Contrôle des instances résiliées par Amazon ECS. Pour plus d'informations sur la manière dont les groupes Amazon EC2 Auto Scaling mettent fin aux instances, consultez la section Contrôler quelles instances Amazon EC2 Auto Scaling mettent fin à des instances pendant le dimensionnement dans le guide de l'utilisateur Amazon EC2 Auto Scaling.

Les points suivants doivent être pris en compte lors de l'utilisation de l'autoscaling de cluster :

  • Ne modifiez ni ne gérez la capacité souhaitée pour le groupe Amazon EC2 Auto Scaling associé à un fournisseur de capacité soumis à des politiques de dimensionnement autres que celles gérées par Amazon ECS.

  • Lorsqu’Amazon ECS passe à zéro instance, il lance automatiquement deux instances.

  • Amazon ECS utilise le rôle IAM AWSServiceRoleForECS lié à un service pour les autorisations dont il a besoin pour appeler en votre AWS Auto Scaling nom. Pour de plus amples informations, veuillez consulter Utilisation des rôles liés à un service pour Amazon ECS.

  • Lorsque vous utilisez des fournisseurs de capacité avec des groupes Amazon EC2 Auto Scaling, l'utilisateur, le groupe ou le rôle qui crée les fournisseurs de capacité a besoin d'une autoscaling:CreateOrUpdateTags autorisation. Cela est dû au fait qu'Amazon ECS ajoute une balise au groupe Amazon EC2 Auto Scaling lorsqu'il l'associe au fournisseur de capacité.

    Important

    Assurez-vous que les outils que vous utilisez ne suppriment pas la AmazonECSManaged balise du groupe Amazon EC2 Auto Scaling. Si cette balise est supprimée, Amazon ECS ne peut pas gérer la mise à l’échelle.

  • Le dimensionnement automatique du cluster ne modifie pas le MinimumCapacityou MaximumCapacitypour le groupe. Pour que le groupe puisse être redimensionné, la valeur de MaximumCapacitydoit être supérieure à zéro.

  • Lorsque Amazon EC2 Auto Scaling (dimensionnement géré) est activé, un fournisseur de capacité ne peut être connecté qu'à un seul cluster à la fois. Si votre fournisseur de capacité a désactivé la mise à l'échelle gérée, vous pouvez l'associer à plusieurs clusters.

  • Lorsque la mise à l'échelle gérée est désactivée, le fournisseur de capacité ne bénéficie pas d'une mise à l'échelle horizontale ou d'une montée en puissance. Vous pouvez utiliser une stratégie de fournisseur de capacité pour équilibrer vos tâches entre les fournisseurs de capacité.

  • La stratégie binpack est la plus efficace en termes de capacité.

  • Lorsque la capacité cible est inférieure à 100 %, dans le cadre de la stratégie de placement, la stratégie binpack doit avoir un ordre supérieur à la stratégie spread. Cela empêche l’augmentation horizontale du fournisseur de capacité jusqu’à ce que chaque tâche dispose d’une instance dédiée ou que la limite soit atteinte.

Activation de l'autoscaling de cluster

Vous pouvez activer l’autoscaling de cluster à l’aide de la console ou de l’ AWS CLI.

Lorsque vous créez un cluster qui utilise des fournisseurs de EC2 capacité à l'aide de la console, Amazon ECS crée un groupe Amazon EC2 Auto Scaling en votre nom et définit la capacité cible. Pour de plus amples informations, veuillez consulter Création d'un cluster Amazon ECS pour les charges de EC2 travail Amazon.

Vous pouvez également créer un groupe Amazon EC2 Auto Scaling, puis l'attribuer à un cluster. Pour de plus amples informations, veuillez consulter Mise à jour d’un fournisseur de capacité Amazon ECS.

Lorsque vous utilisez le AWS CLI, après avoir créé le cluster

  1. Avant de créer le fournisseur de capacité, vous devez créer un groupe Amazon EC2 Auto Scaling. Pour plus d'informations, consultez les groupes Amazon EC2 Auto Scaling dans le guide de l'utilisateur d' EC2 Amazon Amazon EC2 Auto Scaling.

  2. Utilisez put-cluster-capacity-providers pour modifier le fournisseur de capacité du cluster. Pour de plus amples informations, veuillez consulter Activation de l’autoscaling de cluster Amazon ECS.