J'ai effectué des mises à jour sur mon groupe Auto Scaling, et je n'ai pas obtenu les résultats attendus lors de la mise à jour d'une pile AWS CloudFormation. Comment puis-je obtenir les résultats que je souhaite ?

La ressource AWS::AutoScaling::AutoScalingGroup utilise l'attribut UpdatePolicy pour définir la manière dont un groupe Auto Scaling est mis à jour lors de la mise à jour de la pile AWS CloudFormation. Si vous ne disposez pas de la configuration requise pour l'attribut UpdatePolicy, il est possible que votre mise à jour continue produise des résultats inattendus.

Vous pouvez utiliser la stratégie AutoScalingRollingUpdate pour vérifier comment AWS CloudFormation gère les mises à jour continues pour un groupe Auto Scaling. Cette utilisation courante conserve le même groupe Auto Scaling, puis remplace les anciennes instances à partir des paramètres configurés.

Remarque : la résolution ci-dessous se concentre sur la stratégie AutoScalingRollingUpdate uniquement. Vous pouvez utiliser la stratégie AutoScalingReplacingUpdate pour restaurer immédiatement la pile sans aucune possibilité d'échec. Pour plus d'informations, consultez la Stratégie AutoScalingReplacingUpdate.

La stratégie AutoScalingRollingUpdate prend en charge les options de configuration suivantes :

"UpdatePolicy": {
  "AutoScalingRollingUpdate": {
    "MaxBatchSize": Integer,
    "MinInstancesInService": Integer,
    "MinSuccessfulInstancesPercent": Integer,
    "PauseTime": String,
    "SuspendProcesses": [ List of processes ],
    "WaitOnResourceSignals": Boolean
  }
}

Pour déterminer ce qui empêche votre groupe Auto Scaling de se mettre à jour correctement lors de la mise à jour d'une pile, envisagez les scénarios de dépannage suivants :

Configurer WaitOnResourceSignals et PauseTime pour empêcher tout problème lié à un signal de réussite

Dans votre stratégie AutoScalingRollingUpdate, configurez la propriété WaitOnResourceSignals sur false.

Remarque : si WaitOnResourceSignals est configurée sur true, PauseTime devient une valeur de délai. AWS CloudFormation attend de recevoir un signal de réussite pendant la durée maximale spécifiée par la valeur PauseTime. Si aucun signal n'est reçu, AWS CloudFormation annule la mise à jour. Alors, AWS CloudFormation restaure immédiatement la pile avec les mêmes paramètres, y compris la même valeur PauseTime. Pour plus d'informations, consultez la section Ajouter une UpdatePolicy à un groupe Auto Scaling.

Configurer MinSuccessfulInstancesPercent pour éviter la restauration d'une pile

Si vous remplacez un grand nombre d'instances lors d'une mise à jour continue et que vous attendez un signal de réussite pour chaque instance, procédez comme suit :

Dans votre stratégie AutoScalingRollingUpdate, configurez la valeur de la propriété MinSuccessfulInstancesPercent.

Remarque : configurer la propriété MinSuccessfulInstancesPercent empêche uniquement AWS CloudFormation de restaurer toute la pile en cas d'échec du lancement d'une seule instance. Pour plus d'informations, consultez Attribut UpdatePolicy.

Configurer SuspendProcesses pour éviter toute modification inattendue du groupe Auto Scaling

Pendant une mise à jour continue, interrompez les processus Auto Scaling suivants : HealthCheck, ReplaceUnhealthy, AZRebalance, AlarmNotification et ScheduledActions.

Important : si vous utilisez votre groupe Auto Scaling avec Elastic Load Balancing (ELB), n'interrompez pas les processus suivants : Launch, Terminate et AddToLoadBalancer. Ces processus sont nécessaires pour réaliser des mises à jour continues.

Remarque : si une action de dimensionnement inattendue modifie l'état du groupe Auto Scaling pendant une mise à jour continue, il est possible que la mise à jour échoue. Cet échec peut être dû à un affichage incohérent d'AWS CloudFormation.


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

Date de mise à jour : 11/02/2019