Optimisation de l'autoscaling Amazon ECS 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.

Optimisation de l'autoscaling Amazon ECS Cluster

Les clients qui exécutent Amazon ECS sur Amazon EC2 peuvent tirer parti du dimensionnement automatique des clusters pour gérer le dimensionnement des groupes Amazon EC2 Auto Scaling. Grâce à la mise à l'échelle automatique du cluster, vous pouvez configurer Amazon ECS pour qu'il fasse automatiquement évoluer votre groupe Auto Scaling et vous concentrer uniquement sur l'exécution de vos tâches. Amazon ECS veille à ce que le groupe Auto Scaling évolue en fonction des besoins, sans qu'aucune autre intervention ne soit requise. Les fournisseurs de ECS capacité Amazon sont utilisés pour gérer l'infrastructure de votre cluster en s'assurant qu'il existe suffisamment d'instances de conteneurs pour répondre aux demandes de votre application. Pour découvrir comment fonctionne la mise à l'échelle automatique des clusters, consultez Deep Dive on Amazon ECS Cluster Auto Scaling.

La mise à l'échelle automatique du cluster repose sur une intégration CloudWatch basée sur le groupe Auto Scaling pour ajuster la capacité du cluster. Par conséquent, il a une latence inhérente associée à

  • Publier les CloudWatch statistiques,

  • Le temps nécessaire à la métrique CapacityProviderReservation pour violer les CloudWatch alarmes (haute et faible)

  • Le temps nécessaire à l'échauffement d'une EC2 instance Amazon récemment lancée. Vous pouvez prendre les mesures suivantes pour rendre le dimensionnement automatique du cluster plus réactif afin d'accélérer les déploiements :

Dimensionnement par étapes du fournisseur de capacités

Les fournisseurs ECS de capacité Amazon augmenteront ou réduiront le nombre d'instances de conteneur pour répondre aux exigences de votre application. Le nombre minimum d'instances qu'Amazon ECS lancera est fixé à 1 par défaut. Cela peut prolonger la durée de vos déploiements, si plusieurs instances sont nécessaires pour placer vos tâches en attente. Vous pouvez augmenter le minimumScalingStepSizevia Amazon ECS API pour augmenter le nombre minimum d'instances qu'ECSAmazon fait évoluer à la fois. Une maximumScalingStepSizevaleur trop faible peut limiter le nombre d'instances de conteneur augmentées ou dédimensionnées à la fois, ce qui peut ralentir vos déploiements.

Note

Cette configuration n'est actuellement disponible que via le CreateCapacityProviderou UpdateCapacityProviderAPIs.

Période de préchauffage de l'instance

La période de préchauffage de l'instance est la période au bout de laquelle une EC2 instance Amazon récemment lancée peut contribuer aux CloudWatch statistiques du groupe Auto Scaling. Une fois la période de préchauffage spécifiée expirée, l'instance est prise en compte dans les mesures agrégées du groupe Auto Scaling, et le dimensionnement automatique du cluster passe à la prochaine itération de calculs pour estimer le nombre d'instances requises.

La valeur par défaut instanceWarmupPeriodest de 300 secondes, que vous pouvez configurer à une valeur inférieure via CreateCapacityProviderou UpdateCapacityProviderAPIspour une mise à l'échelle plus réactive.

Capacité de réserve

Si votre fournisseur de capacité ne dispose d'aucune instance de conteneur pour placer des tâches, il doit augmenter (augmenter) la capacité du cluster en lançant des EC2 instances Amazon à la volée et en attendant qu'elles démarrent avant de pouvoir y lancer des conteneurs. Cela peut réduire considérablement le taux de lancement des tâches. Vous avez deux options.

Dans ce cas, le fait de disposer d'une EC2 capacité Amazon disponible déjà lancée et prête à exécuter des tâches augmentera le taux de lancement effectif des tâches. Vous pouvez utiliser la Target Capacity configuration pour indiquer que vous souhaitez conserver de la capacité inutilisée dans vos clusters. Par exemple, en définissant Target Capacity 80 %, vous indiquez que votre cluster a besoin de 20 % de capacité de réserve à tout moment. Cette capacité inutilisée peut permettre le lancement immédiat de toutes les tâches autonomes, garantissant ainsi que les lancements de tâches ne sont pas ralentis. L'inconvénient de cette approche est l'augmentation potentielle des coûts liés au maintien de la capacité inutilisée des clusters.

Une autre approche que vous pouvez envisager consiste à augmenter la marge de manœuvre de votre service, et non celle du fournisseur de capacité. Cela signifie qu'au lieu de réduire la Target Capacity configuration pour libérer de la capacité inutilisée, vous pouvez augmenter le nombre de répliques dans votre service en modifiant la métrique de dimensionnement du suivi des cibles ou les seuils de dimensionnement par étapes du dimensionnement automatique du service. Notez que cette approche ne sera utile que pour les charges de travail exigeantes, mais n'aura aucun effet lorsque vous déployez de nouveaux services et que vous passez de 0 à N tâches pour la première fois. Pour plus d'informations sur les politiques de dimensionnement associées, consultez Target Tracking Scaling Policies ou Step Scaling Policies dans le manuel Amazon Elastic Container Service Developer Guide.