Concepts StackSets - AWS CloudFormation

Concepts StackSets

Lorsque vous utilisezStackSets, vous travaillez avec des StackSets, des instances de pile et des piles.

Comptes d'administrateur et comptes de destination

Un compte administrateur est le Compte AWS dans lequel vous créez des StackSets. Pour les StackSets avec des autorisations gérées par le service, le compte d’administrateur est le compte de gestion de l’organisation ou un compte d’administrateur délégué. Vous pouvez gérer un StackSets en vous connectant au compte administrateur AWS qui a créé le StackSets.

Le compte de destination est le compte dans lequel vous créez, mettez à jour ou supprimez une ou plusieurs piles de votre StackSet. Avant de pouvoir utiliser un StackSet pour créer des piles dans un compte de cible, configurez une relation d’approbation entre l’administrateur et les comptes cibles.

CloudFormationStackSets

Un StackSet sert de conteneur pour plusieurs piles déployées dans des régions et Comptes AWS spécifiés. Chaque pile est basée sur le même modèle CloudFormation, mais vous pouvez personnaliser des piles individuelles à l’aide de paramètres.

Une fois que vous avez défini un StackSet, vous pouvez créer, mettre à jour ou supprimer des piles dans les comptes cibles et les Régions AWS que vous spécifiez. Lorsque vous créez, mettez à jour ou supprimez des piles, vous pouvez également spécifier des préférences d'opération. Par exemple, incluez l'ordre des régions dans lesquelles vous souhaitez effectuer l'opération, le seuil de tolérance aux échecs avant l'arrêt des opérations de pile et le nombre de comptes effectuant des opérations de pile simultanément.

Un StackSet est une ressource régionale. Si vous créez un StackSet dans une Région AWS, vous ne pouvez le voir ou le modifier que lorsque vous consultez cette région.

Modèles d’autorisation pour les StackSets

Vous pouvez créer les StackSets à l’aide d’autorisations autogérées ou d’autorisations gérées par le service.

Avec des autorisations autogérées, vous créez les rôles IAM requis par StackSets pour procéder à des déploiements entre les comptes et les régions. Ces rôles sont nécessaires pour établir une relation de confiance entre le compte à partir duquel vous administrez le StackSet et le compte sur lequel vous déployez des instances de piles. À l'aide de ce modèle d'autorisations, StackSets peut être déployé sur n'importe quel Compte AWS dans lequel vous disposez d'autorisations pour créer un rôle IAM.

Avec les autorisations gérées par le service vous pouvez déployer des instances de piles sur des comptes gérés par AWS Organizations. En utilisant ce modèle d'autorisations, vous n'avez pas à créer les rôles IAM nécessaires. En effet, StackSets crée les rôles IAM en votre nom. Avec ce modèle, vous pouvez également activer les déploiements automatiques sur les comptes qui seront ajoutés ultérieurement à votre organisation.

AWS Organizations s'intègre à CloudFormation et vous aide à gérer et à gouverner de manière centralisée votre environnement à mesure que vous mettez à l'échelle et développez vos ressources AWS.

Pour plus d’informations sur la création et la gestion des StackSets avec des autorisations gérées par le service, consultez les rubriques suivantes :

Instances de piles

Une instance de pile est une référence à une pile d'un compte de destination dans une région. Une instance de pile peut exister sans pile. Par exemple, si la pile n'a pas pu être créée pour une raison ou une autre, l'instance de pile indique le motif de l'échec de la création de la pile. L’instance de pile est associée à un seul StackSet.

La figure suivante illustre les relations logiques entre les StackSets, les opérations de pile et les piles. Lorsque vous mettez à jour un StackSet, toutes les instances de piles associées sont mises à jour dans tous les comptes et toutes les régions.

Un StackSet peut créer, mettre à jour ou supprimer des instances de piles et des piles dans tous les comptes et toutes les régions.

Opérations StackSet

Vous pouvez effectuer les opérations suivantes sur les StackSets.

Créez un StackSet

Pour créer un StackSet, vous devez spécifier un modèle CloudFormation à utiliser pour créer les piles et les comptes cibles dans lesquels créer les piles, puis identifier les Régions AWS dans lesquelles les piles doivent être déployées dans les comptes cibles. Un StackSet assure le déploiement cohérent des mêmes ressources de pile, avec les mêmes paramètres, dans tous les comptes de destination spécifiés et dans les régions que vous choisissez.

Mettre à jour des StackSets

Lorsque vous mettez à jour un StackSet, vous envoyez les modifications dans les piles du StackSet. Vous pouvez mettre à jour un StackSet de l’une des manières suivantes. Les mises à jour du modèle affectent toujours toutes les piles. Vous ne pouvez pas mettre à jour le modèle de façon sélective pour certaines piles du StackSet et pas pour les autres.

  • Modifiez les paramètres existants dans le modèle ou ajoutez des ressources, par exemple mettez à jour les valeurs des paramètres pour un service spécifique, ou ajoutez des instances Amazon EC2.

  • Remplacez le modèle par un autre modèle.

  • Ajoutez des piles dans les comptes de destination existants ou supplémentaires appartenant aux régions existantes ou aux régions supplémentaires.

Supprimer des piles

Lorsque vous supprimez des piles, vous supprimez chaque pile et toutes les ressources qui lui sont associées des comptes de destination dans les régions que vous spécifiez. Pour supprimer des piles, vous pouvez procéder de différentes façons.

  • Supprimer des piles dans certains comptes de destination tout en laissant les autres piles s'exécuter dans les autres comptes de destination.

  • Supprimer des piles dans certaines régions tout en laissant les piles s'exécuter dans les autres régions.

  • Supprimer des piles dans le StackSet, mais choisir l’option Conserver les piles afin de les enregistrer pour qu’elles continuent à s’exécuter indépendamment du StackSet. Vous pouvez ensuite gérer les piles conservées en dehors de votre StackSet dans CloudFormation.

  • Supprimer toutes les piles dans le StackSet en vue de préparer la suppression du StackSet total.

Supprimer des StackSets

Vous ne pouvez supprimer votre StackSet que s’il ne contient aucune instance de pile.

Options d’opération de StackSet

Les options décrites dans cette section permettent de contrôler la fréquence et le nombre d’échecs autorisés pour réussir les opérations de StackSet, et de vous empêcher de perdre des ressources de pile.

Nombre maximal de comptes en parallèle

Ce paramètre, disponible dans les flux de travail de création, de mise à jour et de suppression, permet de spécifier le nombre ou le pourcentage maximal de comptes cibles dans lequel une opération est effectuée simultanément. Un nombre ou pourcentage faible signifie qu'une opération est effectuée dans peu de comptes de destination à la fois. Les opérations sont effectuées dans une seule région à la fois, dans l'ordre spécifié dans la zone Deployment order (Ordre de déploiement). Par exemple, si vous déployez des piles dans 10 comptes cibles dans deux régions et que vous définissez Maximum concurrent accounts (Nombre maximal de comptes en parallèle) sur 50 et By percentage (Par pourcentage), le logiciel déploie les piles dans cinq comptes dans la première région, puis dans les cinq comptes suivants dans la première région, avant de passer à la région suivante et de lancer le déploiement dans les cinq premiers comptes cibles.

Lorsque vous choisissez By percentage (Par pourcentage), si le pourcentage spécifié ne correspond pas à un nombre entier de comptes spécifiés, CloudFormation arrondit la valeur. Par exemple, si vous déployez des piles dans 10 comptes de destination et que vous définissez Maximum concurrent accounts (Nombre maximal de comptes en parallèle) sur 25 et By percentage (Par pourcentage), CloudFormation arrondit le déploiement simultané de 2,5 piles (qui serait impossible) à 2 piles.

Notez que ce paramètre vous permet de spécifier la valeur maximale pour les opérations. Pour les déploiements importants, dans certaines circonstances, le nombre réel de comptes traités simultanément peut être inférieur en raison de la limitation de service.

Le nombre maximal de comptes simultanés peut dépendre de la valeur de la tolérance aux pannes en fonction de votre mode de simultanéité. Si votre mode de simultanéité est défini sur Tolérance stricte aux pannes, le nombre maximal de comptes simultanés peut être supérieur d’au plus un au paramètre de tolérance aux pannes.

Mode simultané

Ce paramètre, disponible dans les workflows de création, de mise à jour et de suppression, vous permet de choisir le comportement du niveau de concurrence pendant les opérations StackSet. Pour de plus amples informations, consultez Choix du mode simultané pour les StackSets CloudFormation.

Tolérance aux pannes

Ce paramètre, disponible dans les flux de travail de création, de mise à jour et de suppression, permet de spécifier le nombre ou le pourcentage maximal d'échecs d'opérations de pile par région, au-delà duquel le service CloudFormation arrête une opération automatiquement. Si le nombre ou le pourcentage est faible, l'opération est effectuée sur peu de piles, mais vous pouvez commencer plus rapidement à résoudre les problèmes d'échec des opérations. Par exemple, si vous mettez à jour 10 piles dans 10 comptes de destination dans trois régions, et que vous définissez Failure tolerance (Tolérance aux pannes) sur 20 et By percentage (Par pourcentage), cela signifie que l'opération peut se poursuivre si le nombre d'échecs de mises à jour de pile ne dépasse pas deux échecs. Si une troisième pile échoue dans la même région, le service CloudFormation arrête l'opération. Si une pile n'a pas pu être mise à jour dans la première région, l'opération de mise à jour continue dans cette région, puis passe à la région suivante. Si deux piles ne peuvent pas être mises à jour dans la deuxième région, la tolérance aux pannes de 20 % est atteinte. Si la mise à jour d'une troisième pile échoue dans la région, le service CloudFormation arrête l'opération de mise à jour et ne passe pas aux régions suivantes.

Lorsque vous choisissez By percentage (Par pourcentage), si le pourcentage spécifié ne correspond pas à un nombre entier de piles dans chaque région, le service CloudFormation arrondit la valeur au nombre entier inférieur. Par exemple, si vous déployez des piles dans 10 comptes de destination dans trois régions et que vous définissez Failure tolerance (Tolérance aux pannes) sur 25 et By percentage (Par pourcentage), le service CloudFormation arrondit la tolérance aux pannes de 2,5 piles (qui serait impossible) à 2 piles par région.

Conserver les piles

Ce paramètre, disponible dans les flux de travail de suppression de pile, vous permet de laisser les piles et leurs ressources s’exécuter même après avoir été supprimées du StackSet. Lorsque vous conservez les piles, CloudFormation laisse intactes les piles placées dans des comptes et régions individuels. Les piles sont dissociées du StackSet, mais enregistrent la pile et ses ressources. Une fois que l'opération de suppression des piles est terminée, vous gérez les piles conservées dans CloudFormation, dans le compte cible (et non le compte d'administrateur) qui a créé les piles.

Region concurrency (Simultanéité de région)

Ce paramètre, disponible dans Create, update, and delete workflows (Créer, mettre à jour et supprimer des flux de travail), vous permet de choisir le mode de déploiement de StackSets dans les régions.

Sequential (Séquentiel) : déployez l'opération StackSets dans une région à la fois, tel que spécifié par la zone Deployment order (Ordre de déploiement) régionale, tant que les échecs de déploiement d'une région ne dépassent pas une tolérance d'échec spécifiée. Le déploiement séquentiel est la sélection par défaut.

Parallèle : déployez simultanément les opérations StackSets dans toutes les régions spécifiées tant que les défaillances de déploiement d'une région ne dépassent pas une tolérance aux pannes spécifiée.

Balises

Pour ajouter des balises lors de la création et la mise à jour du StackSet, spécifiez des paires clé-valeur. Les balises servent à trier et filtrer les ressources du StackSet pour la facturation et la répartition des coûts. Pour plus d’informations sur l’utilisation des balises dans AWS, consultez la section Organisation et suivi des coûts à l’aide des balises de répartition des coûts AWS dans le Guide de l’utilisateur AWS Billing and Cost Management. Une fois que vous avez spécifié la paire clé-valeur, choisissez + pour enregistrer la balise. Vous pouvez supprimer des balises que vous n'utilisez plus en sélectionnant le X rouge à droite d'une balise.

Les balises que vous appliquez aux StackSets s’appliquent à toutes les piles et aux ressources créées par vos piles. Dans CloudFormation, les balises ne peuvent être ajoutées qu’au niveau de la pile, mais ne peuvent pas s’afficher dans StackSets.

Bien que StackSets n'ajoute pas actuellement de balises définies par le système, vous ne devez pas faire commencer les noms de clés des balises par la chaîne aws:.

Codes d’état des StackSets

Les StackSets CloudFormation génèrent des codes d’état pour les opérations StackSet.

Le tableau suivant décrit les codes d’état pour les opérations de StackSet.

RUNNING

L'opération est actuellement en cours.

SUCCEEDED

L'opération s'est terminée sans dépasser la tolérance aux pannes autorisée pour l'opération.

FAILED

Le nombre de piles sur lesquelles l'opération a échoué a dépassé le seuil de tolérance aux pannes défini par l'utilisateur. La valeur de tolérance aux pannes que vous avez définie pour une opération est appliquée pour chaque région lors de la création et de la mise à jour des piles. Si le nombre de piles en échec dans une région dépasse la valeur de tolérance aux pannes, l'état de l'opération dans la région passe à FAILED. L'état de l'opération globale est également défini sur FAILED. Le service CloudFormation annule l'opération dans les régions restantes.

QUEUED

[Service-managed permissions] Pour les déploiements automatiques nécessitant une séquence d'opérations, l'opération est mise en file d'attente afin d'être exécutée. Par exemple :

  • Le déplacement d'un compte d'une unité d'organisation (UO), OU1, vers une autre, OU2, déclenche un déploiement automatique. StackSets exécute une opération de suppression pour supprimer l'instance de pile du compte OU1 cible dans la région cible et met en file d'attente une opération de création pour ajouter une instance de pile au compte OU2 cible dans la région cible.

  • L'ajout d'un compte AccountA à une unité d'organisation déclenche un déploiement automatique. StackSets exécute une opération de création pour ajouter une instance de pile à AccountA dans la région cible. Si vous ajoutez un autre compte AccountB à l'unité d'organisation pendant l'exécution de cette opération de création, StackSets met en file d'attente une seconde opération de création. Lorsque la première opération de création est terminée, StackSets exécute la deuxième opération de création afin d'ajouter une instance de pile à AccountB dans la région cible.

STOPPING

L'opération est en cours d'arrêt, à la demande de l'utilisateur.

STOPPED

L'opération s'est arrêtée à la demande de l'utilisateur.

Codes d'état de l'instance de pile

Les StackSets CloudFormation génèrent des codes d’état pour les instances de piles.

Le tableau suivant décrit les codes d'état des instances de piles présentes dans les StackSets.

CURRENT

La pile est à jour avec le StackSet.

OUTDATED

La pile n’est pas à jour avec le StackSet pour l’une des raisons suivantes.

INOPERABLE

Une opération DeleteStackInstances a échoué et a laissé la pile dans un état instable. Les piles affichant cet état sont exclues des opérations UpdateStackSet suivantes. Vous devrez peut-être effectuer une opération DeleteStackInstances, avec RetainStacks défini sur true, pour supprimer l’instance de pile, puis supprimer la pile manuellement.

CANCELLED

L'opération dans le compte et la région spécifiés a été annulée. Cela se produit, soit car un utilisateur a arrêté l’opération du StackSet, soit parce que la tolérance aux échecs des opérations de StackSet a été dépassée.

FAILED

Échec de l'opération dans le compte et la région spécifiés. Si l’opération StackSet échoue dans suffisamment de comptes au sein d’une région, la tolérance d’échec de l’opération StackSet dans son ensemble peut être dépassée.

FAILED_IMPORT

L’importation de l’instance de pile dans le compte et la région spécifiés a échoué et a laissé la pile dans un état instable. Une fois les problèmes à l’origine de l’échec résolus, l’opération d’importation peut être réessayée. Si un nombre suffisant d’opérations StackSet échouent dans un nombre suffisant de comptes au sein d’une région, la tolérance aux pannes pour l’opération StackSet dans son ensemble pourrait être dépassée.

PENDING

L'opération dans le compte et la région spécifiés n'a pas encore démarré.

RUNNING

L'opération dans le compte et la région spécifiés est en cours.

SKIPPED_SUSPENDED_ACCOUNT

L'opération dans le compte et la région spécifiés a été ignorée, car le compte était suspendu au moment de l'opération.

SUCCEEDED

L'opération dans le compte et la région spécifiés s'est déroulée avec succès.