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.
Choisissez le mode de simultanéité pour AWS CloudFormation StackSets
Le mode de simultanéité est un paramètre StackSetOperationPreferencesqui vous permet de choisir le comportement du niveau de simultanéité 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. Cela permet aux StackSet opérations de s'exécuter au niveau de simultanéité défini par la valeur Maximum de comptes simultanés, quel que soit le nombre d'échecs.
La tolérance stricte aux défaillances réduit la vitesse de déploiement en cas StackSet d'échec des opérations, car la simultanéité diminue à chaque échec. Soft Failure Tolerance donne la priorité à la vitesse de déploiement tout en tirant parti des capacités CloudFormation de sécurité. Cela vous permet d'examiner et de résoudre les défaillances StackSet opérationnelles pour les problèmes courants tels que ceux liés aux ressources existantes, aux quotas de service et aux autorisations.
Pour plus d'informations sur les échecs des opérations de StackSets pile, consultezRaisons 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 fournissent une représentation visuelle du fonctionnement de chaque mode de simultanéité au cours d'une StackSet opération. La chaîne de nœuds représente un déploiement vers un seul Région AWS et chaque nœud est une cible Compte AWS.
- Tolérance stricte aux pannes
-
Lorsqu'une StackSet opération utilisant la tolérance d'échec stricte a une valeur de tolérance d'échec définie sur 5 et que la valeur maximale de comptes simultanés est 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 de tolérance aux défaillances sur la valeur maximale de comptes simultanés, ainsi que l'impact de ces deux valeurs sur la simultanéité réelle de l' StackSet opération :
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 en cas d' StackSets échec du déploiement d'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 en cas d' StackSets échec du déploiement de 2 instances de pile supplémentaires, portant le total des instances de pile défaillantes à 3.
StackSets échoue lorsque le StackSet nombre d'instances de pile défaillantes est égal à la valeur définie de Tolérance de défaillance +1. Dans l'exemple suivant, l'opération StackSets échoue lorsqu'il y a 6 instances de pile défaillantes et que la valeur de tolérance de défaillance est de 5.
Dans cet exemple, 9 instances de stack CloudFormation ont été déployées (3 ont réussi et 6 ont échoué) avant d'arrêter l' StackSet opération.
- Tolérance souple aux pannes
-
Lorsque la valeur de tolérance d'échec d'une StackSet opération utilisant Soft Failure Tolerance est définie sur 5 et que la valeur maximale de comptes simultanés est 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 échoue lorsque les StackSet instances de pile défaillantes dépassent la valeur de tolérance de défaillance. 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 d'échec 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 qui se trouvent déjà 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, 8 instances de pile ont échoué car la file d'attente de simultanéité avait encore 7 opérations à effectuer, même si l' StackSet opération avait atteint la tolérance d'échec de 5.
Dans cet exemple, 15 instances de pile StackSets ont été déployées (7 ont réussi et 8 ont échoué) 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 les modes de tolérance de défaillance stricte et de tolérance de défaillance souple dépend de la vitesse préférée de votre StackSet déploiement et du nombre autorisé d'échecs de déploiement.
Les tableaux suivants montrent comment chaque mode de simultanéité gère une StackSet opération qui échoue lors d'une tentative de 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.
Bien que les files d'attente soient StackSets en fait des comptes sous la forme d'une fenêtre coulissante (voirFonctionnement 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 défaillantes, ce qui réduit la simultanéité réelle du lot suivant de 20 jusqu'à ce que l' StackSet opération atteigne la valeur de tolérance d'échec 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 de défaillance stricte a permis d'effectuer 305 déploiements d'instances de pile en 5 lots au moment où l' StackSet opération a atteint la tolérance d'échec de 100 instances de pile. L' StackSet opération 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. Les StackSet opérations conservent la même simultanéité réelle jusqu'à ce qu'elle atteigne la valeur de tolérance de défaillance 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 maximale des comptes simultanés est définie sur 250 et le mode de tolérance de défaillance souple StackSets permet 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' StackSet opération déploie avec succès 400 instances de pile avant d'échouer.
Choix de votre mode de simultanéité (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 le mode simultané, choisissez Tolérance de défaillance stricte ou Tolérance de défaillance souple.
Choix de votre mode de simultanéité ()AWS CLI
Vous pouvez utiliser le ConcurrencyMode
paramètre avec les StackSets commandes 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 en utilisant le STRICT_FAILURE_TOLERANCE
ConcurrencyMode
, avec un FailureToleranceCount
ensemble de 10 et un MaxConcurrentCount
ensemble de 5.
aws cloudformation create-stack-instances \ --stack-set-name
example-stackset
\ --accounts123456789012
\ --regionseu-west-1
\ --operation-preferences ConcurrencyMode=STRICT_FAILURE_TOLERANCE,FailureToleranceCount=10,MaxConcurrentCount=5
Note
Pour connaître les procédures détaillées relatives à la création et à la mise à jour d'un StackSet, consultez les rubriques suivantes :