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 :
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.
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.
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.
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.
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.
La simultanéité réelle reste de 10 même après deux défaillances d'instances de pile supplémentaires.
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.
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.
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-nameexample-stackset\ --accounts123456789012\ --regionseu-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 :