AWS CloudFormation vous permet de contrôler le comportement des mises à jour d'une ressource de groupe Auto Scaling à l'aide de l'attribut UpdatePolicy . L'exécution d'une mise à jour propagée sur un groupe Auto Scaling peut entraîner un comportement inattendu si les paramètres n'ont pas été correctement configurés.

La ressource AWS::AutoScaling::AutoScalingGroup prend en charge un attribut UpdatePolicy. Il permet de définir comment une ressource de groupe Auto Scaling est mise à jour lors de la mise à jour d'une pile CloudFormation. Lors de la mise à jour d'un groupe Auto Scaling, l'approche la plus courante consiste à effectuer une mise à jour propagée, en spécifiant la stratégie AutoScalingRollingUpdate. Cela permet de conserver le même groupe Auto Scaling et de remplacer les anciennes instances par de nouvelles, conformément aux paramètres spécifiés.
Remarque : Cet article est axé sur la mise à jour propagée et non sur la stratégie AutoScalingReplacingUpdate.

La stratégie AutoScalingRollingUpdate prend en charge diverses options de configuration ; un exemple de modèle est donné ci-après :

"UpdatePolicy": {

    "AutoScalingRollingUpdate": {

        "MaxBatchSize": Integer,

        "MinInstancesInService": Integer,

        "MinSuccessfulInstancesPercent": Integer

        "PauseTime": String,

        "SuspendProcesses": [ List of processes ],

        "WaitOnResourceSignals": Boolean

     }

}

SuspendProcesses
Lors d'une mise à jour propagée, vous devez suspendre les processus Auto Scaling afin d'éviter toute modification inattendue du groupe. Si une action de dimensionnement inattendue modifie l'état du groupe lors d'une mise à jour propagée, CloudFormation risque d'avoir une vue incohérente du groupe et la mise à jour propagée peut échouer. Les processus à suspendre sont notamment HealthCheck, ReplaceUnhealthy, AZRebalance, AlarmNotification et ScheduledActions.
Remarque
 : Ne suspendez pas les processus suivants, car ils sont requis pour l'exécution de la mise à jour propagée : Launch, Terminate et AddToLoadBalancer (si le groupe Auto Scaling est utilisé avec Elastic Load Balancing).

MinSuccessfulInstancesPercent
Si, au cours d'une mise à jour propagée, vous remplacez un nombre élevé d'instances et que vous attendez également un signal de réussite de chaque instance, il sera peut-être nécessaire de spécifier une valeur MinSuccessfulInstancePercent. Cette valeur est utile, car elle empêche CloudFormation de restaurer la totalité de la pile si le lancement d'une instance échoue. Par exemple, si vous effectuez une mise à jour propagée pour changer votre AMI et remplacer 10 instances, et que les 9 premières instances démarrent correctement mais que la dernière échoue en raison d'un problème temporaire, CloudFormation ne sera pas en mesure de mettre à jour l'ensemble de la pile et tentera de la restaurer. Si vous définissez MinSuccessfulInstancePercent sur 50 %, CloudFormation attendra le signal de réussite de 5 instances, puis marquera la ressource globale du groupe AutoScaling comme UPDATE_COMPLETE, car la nouvelle AMI fonctionne correctement et le service comporte suffisamment d'instances pour assurer le trafic. Si une des instances restantes ne démarre pas, elle sera remplacée par vos vérifications de l'état du groupe Auto Scaling par la suite.

WaitOnResourceSignals + PauseTime
L'activation de WaitOnResourceSignals permet à CloudFormation d'attendre la réception d'un signal de réussite avant d'effectuer la prochaine action de dimensionnement.
Remarque : Il est important de noter que lorsque la valeur de WaitOnResourceSignals est définie sur true, PauseTime devient une valeur de délai. CloudFormation attend le signal de réussite pendant la durée maximale spécifiée par la valeur de PauseTime. Si aucun signal n'est reçu, CloudFormation annule la mise à jour et tente de restaurer la pile. Pour effectuer la restauration, CloudFormation exécute une mise à jour propagée avec les mêmes paramètres et, par conséquent, la même valeur PauseTime est utilisée lors de la restauration. Il est recommandé de spécifier une valeur PauseTime suffisamment élevée pour permettre l'amorçage de vos instances et l'envoi d'un signal de réussite.

CloudFormation, mise à jour propagée, UpdatePolicy, AutoScaling, RollingUpdate


Cette page vous a-t-elle été utile ? Oui | Non

Retour au Centre de connaissances AWS Support

Vous avez besoin d'aide ? Consultez le site du Centre AWS Support

Date de publication : 09/09/2016