Choix du mode simultané pour les StackSets CloudFormation - AWS CloudFormation

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.

Choix du mode simultané pour les StackSets CloudFormation

Le Mode simultané est un paramètre de StackSetOperationPreferences permettant de déterminer comment le niveau de simultanéité se comporte pendant les opérations StackSet. Vous pouvez choisir parmi les modes suivants :

  • Tolérance stricte aux pannes : cette option réduit dynamiquement le niveau de simultanéité afin de garantir que le nombre de comptes défaillants ne dépasse jamais la valeur de Tolérance aux pannes + 1. La simultanéité réelle initiale est définie sur la valeur la plus basse entre la valeur du Nombre maximal de comptes en parallèle, ou la valeur de Tolérance aux pannes + 1. La simultanéité réelle est ensuite réduite proportionnellement au nombre de défaillances. Il s’agit du comportement de par défaut.

  • Tolérance souple aux pannes : cette option dissocie la Tolérance aux pannes de la simultanéité réelle. Ce mode permet aux opérations StackSet de s’exécuter au niveau de simultanéité défini par la valeur Comptes simultanés maximum, quel que soit le nombre de pannes rencontrées.

La Tolérance stricte aux pannes réduit la vitesse de déploiement à mesure que des pannes surviennent, car la simultanéité diminue à chaque panne. La Tolérance souple aux pannes privilégie la rapidité du déploiement tout en conservant les mécanismes de sécurité de CloudFormation. Elle permet de diagnostiquer et résoudre les pannes d’opérations StackSet liées à des causes courantes : ressources existantes, Service Quotas, permissions insuffisantes, etc.

Pour plus d'informations sur les défaillances des opérations de pile StackSets, consultez Raisons les plus courantes de l'échec de l'opération de pile.

Pour plus d'informations sur le Nombre maximal de comptes en parallèle et la Tolérance aux pannes, consultez StackSet options de fonctionnement.

Fonctionnement de chaque mode simultané

Les images ci-dessous illustrent le fonctionnement de chaque Mode simultané lors d’une opération StackSet. La chaîne de nœuds représente un déploiement vers une seule Région AWS et chaque nœud est un Compte AWS cible.

Tolérance stricte aux pannes

Lorsque l’opération StackSet utilisant la Tolérance stricte aux pannes a la valeur Tolérance aux pannes définie sur 5 et la valeur Comptes simultanés maximum définie sur 10, la simultanéité réelle est de 6. La simultanéité réelle est de 6, car cette valeur de Tolérance aux pannes de 5 + 1 est inférieure à la valeur du Nombre maximal de comptes en parallèle.

L’image suivante montre l’impact de la valeur Tolérance aux pannes sur la valeur Comptes simultanés maximum, ainsi que l’impact combiné de ces deux valeurs sur la simultanéité réelle d’une opération StackSet :

Une opération StackSet utilisant la tolérance stricte aux pannes. La tolérance aux pannes est définie sur 5, le nombre maximum de comptes simultanés est de 10, et la simultanéité réelle est de 6.

Lorsque le déploiement commence et que des instances de pile sont défaillantes, la simultanéité réelle est réduite pour garantir une expérience de déploiement sûre. La simultanéité réelle passe de 6 à 5 lorsque StackSets ne parvient pas à déployer une instance de pile.

L’opération StackSet utilisant la tolérance stricte aux pannes compte 2 déploiements réussis et 1 échec.
L’opération StackSet utilisant la tolérance stricte aux pannes réduit maintenant la simultanéité réelle à 5 en raison du premier échec.

Le mode Tolérance stricte aux pannes réduit la simultanéité réelle proportionnellement au nombre d'instances de pile défaillantes. Dans l'exemple suivant, la simultanéité réelle passe de 5 à 3 lorsque StackSets ne parvient pas à déployer 2 instances de pile supplémentaires, portant le total des instances de pile défaillantes à 3.

L’opération StackSet utilisant la tolérance stricte aux pannes compte maintenant 3 déploiements échoués. La simultanéité a été réduite à 3.

StackSets interrompt l’opération StackSet lorsque le nombre d’instances de pile échouées atteint la valeur définie de Tolérance aux pannes + 1. Dans l'exemple suivant, StackSets échoue lorsque 6 instances de pile sont défaillantes et que la valeur de Tolérance aux pannes est de 5.

L’opération StackSet utilisant la tolérance stricte aux pannes compte maintenant 6 déploiements échoués. L’opération StackSet échoue.

Dans cet exemple, CloudFormation a déployé 9 instances de pile (3 réussies et 6 échouées) avant d’interrompre l’opération StackSet.

Tolérance souple aux pannes

Lorsqu’une opération StackSet utilisant la Tolérance souple aux pannes a la valeur Tolérance aux pannes définie sur 5 et la valeur Comptes simultanés maximum définie sur 10, la simultanéité réelle est de 10.

Une opération StackSet utilisant la tolérance souple aux pannes. La tolérance aux pannes est de 5 ; les comptes simultanés maximum et la simultanéité réelle sont de 10.

Lorsque le déploiement commence et que des instances de pile sont défaillantes, la simultanéité réelle ne change pas. Dans l'exemple suivant, une opération de pile est défaillante, mais la simultanéité réelle reste de 10.

L’opération StackSet utilisant la tolérance souple aux pannes rencontre le premier échec. La simultanéité réelle demeure à 10.

La simultanéité réelle reste de 10 même après deux défaillances d'instances de pile supplémentaires.

L’opération StackSet utilisant la tolérance souple aux pannes a maintenant 2 réussites et 3 échecs, mais la simultanéité réelle demeure à 10.

StackSets interrompt l’opération StackSet lorsque le nombre d’instances de pile échouées dépasse la valeur de Tolérance aux pannes. Dans l'exemple suivant, l'opération StackSets échoue lorsqu'il y a 6 instances de pile défaillantes et que le nombre de Tolérances aux pannes est de 5. Toutefois, l'opération ne se terminera pas tant que les autres opérations de la file d'attente de simultanéité ne seront pas terminées.

L’opération StackSet utilisant la tolérance souple aux pannes atteint 6 échecs, mais doit terminer les opérations restantes dans la file d’attente de simultanéité.

StackSets continue de déployer des instances de pile déjà présentes dans la file d'attente de simultanéité. Cela signifie que le nombre d'instances de piles défaillantes peut être supérieur à la Tolérance aux pannes. Dans l’exemple suivant, il y a 8 instances de pile échouées, car la file d’attente de simultanéité contenait encore 7 opérations à exécuter, même si l’opération avait déjà atteint la Tolérance aux pannes de 5.

L’opération StackSet compte un total de 8 échecs parce qu’il restait 7 déploiements dans la file d’attente après l’atteinte du seuil d’échec.

Dans cet exemple, StackSets a déployé 15 instances de pile (7 réussites et 8 échecs) avant d'arrêter l'opération de pile.

Sélection de la tolérance stricte aux pannes et de la tolérance souple aux pannes en fonction de la vitesse de déploiement

Le choix entre la Tolérance stricte aux pannes et la Tolérance souple aux pannes dépend de la vitesse souhaitée pour votre déploiement StackSet et du nombre d’échecs acceptable pendant le déploiement.

Les tableaux suivants montrent comment chaque mode simultané gère une opération StackSet qui échoue lors du déploiement de 1 000 instances de pile au total. Dans chaque scénario, la valeur de tolérance aux pannes est fixée à 100 instances de pile et la valeur du Nombre maximal de comptes en parallèle est fixée à 250 instances de pile.

Alors que StackSets met en file d'attente les comptes sous forme de fenêtre coulissante (conslutez Fonctionnement de chaque mode simultané), cet exemple montre le fonctionnement par lots pour démontrer la rapidité de chaque mode.

Tolérance stricte aux pannes

Cet exemple d'utilisation du mode de Tolérance stricte aux pannes réduit la simultanéité réelle par rapport au nombre de défaillances survenues dans chaque lot précédent. Chaque lot comporte 20 instances échouées, ce qui réduit ensuite la simultanéité réelle du lot suivant de 20 % jusqu’à ce que l’opération StackSet atteigne une valeur de Tolérance aux pannes de 100.

Dans le tableau suivant, la simultanéité initiale réelle du premier lot est de 101 instances de pile. La simultanéité réelle est de 101, car il s'agit de la valeur inférieure du Nombre maximal de comptes en parallèle (250) ou de la Tolérance aux pannes (100) + 1. Chaque lot contient 20 déploiements d'instances de pile défaillants, ce qui réduit ensuite la simultanéité réelle de chaque lot suivant de 20 instances de pile.

Tolérance stricte aux pannes Lot 1 Lot 2 Lot 3 Lot 4 Lot 5 Lot 6
Nombre réel de simultanéités 101 81 61 41 21 -
Nombre d'instances défaillantes 20 20 20 20 20 -
Nombre d'instances de piles réussies 81 61 41 21 1 -

L’opération utilisant la Tolérance stricte aux pannes a exécuté 305 déploiements d’instances de pile en 5 lots lorsque l’opération StackSet a atteint la Tolérance aux pannes de 100 instances de pile. L’opération StackSet déploie avec succès 205 instances de pile avant d’échouer.

Tolérance souple aux pannes

Cet exemple d'utilisation du mode de Tolérance souple aux pannes maintient le même nombre de simultanéités réelles définies par la valeur Nombre maximal de comptes en parallèle de 250 instances de pile, quel que soit le nombre d'instances défaillantes. L’opération StackSet conserve la même simultanéité réelle jusqu’à atteindre la Tolérance aux pannes de 100 instances.

Dans le tableau suivant, la simultanéité initiale réelle du premier lot est de 250 instances de pile. La simultanéité réelle est de 250, car la valeur du Nombre maximal de comptes en parallèle est définie sur 250 et le mode de Tolérance souple aux pannes permet à StackSets d'utiliser cette valeur comme simultanéité réelle, quel que soit le nombre de défaillances. Même s'il y a 50 défaillances dans chacun des lots pour cet exemple, la simultanéité réelle demeure inchangée.

Tolérance souple aux pannes Lot 1 Lot 2 Lot 3 Lot 4 Lot 5 Lot 6
Nombre réel de simultanéités 250 250 - - - -
Nombre d'instances défaillantes 50 50 - - - -
Nombre d'instances de piles réussies 200 200 - - - -

En utilisant la même valeur Nombre maximal de comptes en parallèle et la même valeur de Tolérance aux pannes, l'opération utilisant le mode de Tolérance souple aux pannes a permis de réaliser 500 déploiements d'instances de pile en 2 lots. L’opération StackSet déploie avec succès 400 instances de pile avant d’échouer.

Choix du mode simultané (console)

Lors de la création ou de la mise à jour d’un StackSet, sur la page Définir les options de déploiement, pour Mode simultané, choisissez Tolérance stricte aux pannes ou Tolérance souple aux pannes.

Choix du mode simultané (AWS CLI)

Vous pouvez utiliser le paramètre ConcurrencyMode avec les commandes StackSets suivantes :

Ces commandes contiennent un paramètre existant appelé --operation-preferences qui peut utiliser le paramètre ConcurrencyMode. ConcurrencyMode peut être défini sur l'une des valeurs suivantes :

  • STRICT_FAILURE_TOLERANCE

  • SOFT_FAILURE_TOLERANCE

L’exemple suivant crée une instance de pile utilisant le ConcurrencyMode STRICT_FAILURE_TOLERANCE, avec un FailureToleranceCount défini sur 10 et un MaxConcurrentCount défini sur 5.

aws cloudformation create-stack-instances \ --stack-set-name example-stackset \ --accounts 123456789012 \ --regions eu-west-1 \ --operation-preferences ConcurrencyMode=STRICT_FAILURE_TOLERANCE,FailureToleranceCount=10,MaxConcurrentCount=5
Note

Pour les procédures détaillées de création et de mise à jour d’un StackSet, consultez les rubriques suivantes :