Questions fréquentes (FAQ) AWS CloudFormation

Questions d'ordre général

AWS CloudFormation est un service qui permet aux développeurs et aux entreprises de créer facilement un ensemble de ressources AWS et tierces liées, de les mettre en service et de les gérer de manière ordonnée et prévisible.

Les développeurs peuvent déployer et mettre à jour des ressources de calcul, des bases de données et de nombreuses autres ressources dans un style simple et déclaratif qui élimine la complexité des API de ressources spécifiques. AWS CloudFormation est conçu pour gérer les cycles de vie des ressources de manière reproductible, prévisible et sécurisée, tout en permettant des restaurations automatiques et une gestion des états et des ressources automatisée sur l’ensemble des comptes et régions. Les améliorations et options récentes permettent de créer des ressources de plusieurs manières, notamment en utilisant AWS CDK pour le codage dans des langages plus complexes, en important des ressources existantes, en détectant les dérives de configuration et en créant un nouveau registre qui facilite la création de types personnalisés héritant de nombreux avantages de CloudFormation.

Ces deux services sont complémentaires. AWS Elastic Beanstalk fournit un environnement dans lequel vous pouvez déployer et exécuter facilement des applications dans le cloud. Il est intégré aux outils des développeurs et fournit une solution « tout-en-un » pour la gestion du cycle de vie des applications. Si vos charges de travail d’application peuvent être gérées comme des charges de travail Elastic Beanstalk, vous pouvez profiter d'une expérience davantage clé en main pour la création et la mise à jour des applications. En arrière-plan, Elastic Beanstalk utilise CloudFormation pour créer et maintenir des ressources. Si les exigences de votre application vous imposent un contrôle plus personnalisé, la fonctionnalité supplémentaire de CloudFormation vous propose davantage d'options pour contrôler vos charges de travail.

AWS CloudFormation est un mécanisme de mise en service pratique pour un large éventail de ressources AWS et tierces. Il prend en charge les besoins d'infrastructure de beaucoup de types différents d'applications, notamment les applications d'entreprises existantes, les applications héritées, les applications construites en utilisant une variété de ressources AWS et les solutions basées sur des conteneurs (y compris celles utilisant AWS Elastic Beanstalk).

AWS CloudFormation prend en charge les environnements d'application Elastic Beanstalk en tant que l'un des types de ressources AWS. Cela vous permet, par exemple, de créer et de gérer une application hébergée sur AWS Elastic Beanstalk avec une base de données RDS pour stocker les données d'application. Toutes les autres ressources prises en charge par AWS peuvent être également ajoutées à un groupe.

CloudFormation introduit quatre concepts : un modèle est un fichier de code déclaratif JSON ou YAML qui décrit l'état prévu de toutes les ressources dont vous avez besoin pour déployer votre application. Une pile met en œuvre et gère le groupe de ressources décrit dans votre modèle, et permet de gérer ensemble l'état et les dépendances de ces ressources. Un ensemble de modifications est un aperçu des modifications qui seront exécutées par les opérations sur la pile pour créer, mettre à jour ou supprimer des ressources. Un ensemble de piles est un groupe de piles que vous gérez ensemble et qui peut répliquer un groupe.

Pour obtenir la liste complète des ressources AWS prises en charge et leurs fonctionnalités, consultez la page relative aux services AWS pris en charge dans l'historique de versions de la documentation.

AWS CloudFormation Registryet les ressources personnalisées AWS CloudFormation permettent de gérer des ressources AWS et tierces supplémentaires.

Oui. CloudFormation n'est pas un obstacle ; vous gardez le contrôle total de tous les éléments de votre infrastructure et pouvez continuer d'utiliser tous vos outils AWS et tiers existants pour gérer vos ressources AWS. Toutefois, étant donné que CloudFormation peut prévoir des règles, bonnes pratiques et contrôles de conformité supplémentaires, nous vous recommandons d'autoriser CloudFormation à gérer les modifications apportées à vos ressources. Cette approche prévisible et contrôlée vous aide à gérer des centaines, voire des milliers de ressources sur l'ensemble de votre portefeuille d'applications.

Les modèles CloudFormation sont des fichiers texte au format JSON ou YAML composés de cinq types d'éléments :

1. Une liste facultative de paramètres de modèles (valeurs d'entrée fournies au moment de la création de la pile)
2. Une liste facultative de valeurs de sortie (ex : l'URL complète vers une application web)
3. Une liste facultative de tables de données utilisées pour vérifier les valeurs de configuration statiques (ex : noms d'AMI)
4. La liste des ressources AWS et leurs valeurs de configuration
5. Un numéro de version de format de fichier modèle

Les paramètres de modèles sont utilisés pour personnaliser certains aspects de votre modèle lors de l'exécution, une fois la pile créée. Vous pouvez, par exemple, transmettre la taille de base de données Amazon RDS, les types d'instance Amazon EC2 et les numéros de port des serveurs web à AWS CloudFormation lors de la création de la pile. Chaque paramètre peut avoir une valeur par défaut et une description, et peut être marqué « NoEcho » afin de masquer la valeur actuelle que vous saisissez sur l'écran, et dans les journaux d'évènements AWS CloudFormation. Lorsque vous créez une pile AWS CloudFormation, AWS Management Console fera automatiquement la synthèse et présentera un formulaire de dialogue dans un pop-up, afin que vous puissiez modifier les valeurs des paramètres.

Les valeurs de sortie constituent une manière pratique de présenter les ressources principales d'une pile (comme l'adresse d'un programme d'équilibrage de charge Elastic Load Balancing ou d'une base de données Amazon RDS) à l'utilisateur par le biais d'AWS Management Console ou des outils de ligne de commande. Vous pouvez utiliser des fonctions simples pour concaténer les littéraux de chaînes et les valeurs d'attributs associées aux ressources AWS. Un modèle peut également exploiter les types de ressources du registre, vos propres types privés personnalisés, vos propres macros et les paramètres de récupération de configuration via AWS Secrets Manager et le stockage de paramètres d’AWS System Manager.

Vous pouvez assigner des noms logiques aux ressources AWS dans un modèle. Quand une pile est créée, AWS CloudFormation lie le nom logique au nom de la ressource AWS correspondante. Les noms de ressources sont une combinaison des noms de pile et de ressources logiques. Cela permet la création de plusieurs piles à partir d'un modèle sans craindre des collisions de nom entre ressources AWS.

Bien qu'AWS CloudFormation vous permette de nommer certaines ressources (comme les compartiments Amazon S3), CloudFormation ne l'autorise pas pour toutes les ressources. Le nommage de ressources restreint le caractère réutilisable des modèles et provoque des conflits de noms lorsqu'une ressource est remplacée lors d'une mise à jour. Pour réduire ces problèmes, CloudFormation prend en charge la dénomination des ressources au cas par cas.

Oui. AWS CloudFormation fournit un ensemble de scripts d'amorçage d'application, qui vous permettent d'installer des packages, des fichiers et des services sur vos instances EC2 ; il suffit de les décrire dans votre modèle CloudFormation. Pour plus d'informations et pour découvrir la procédure, consultez Amorçage d'applications via AWS CloudFormation.

CloudFormation peut également être intégré dans Systems Manager pour piloter et maintenir les installations logicielles avec les documents d'automatisation de Systems Manager.

Oui. AWS CloudFormation peut être utilisé pour amorcer à la fois les logiciels Chef Server et Chef Client sur vos instances EC2. Pour plus d'informations et pour découvrir la procédure, consultez Intégration d'AWS CloudFormation dans Chef.

Oui. AWS CloudFormation peut être utilisé pour amorcer à la fois les logiciels Puppet Master et Puppet Client sur vos instances EC2. Pour plus d'informations et la procédure, consultez la section Intégration d'AWS CloudFormation dans Puppet.

Oui. CloudFormation peut amorcer votre moteur Terraform sur vos instances EC2, et vous pouvez utiliser les fournisseurs de ressources Terraform pour créer des ressources en piles, en tirant parti de la gestion de l'état des piles, des dépendances, de la stabilisation et de la restauration.

Oui. Les ressources Amazon EC2 qui prennent en charge la fonction de balisage peuvent aussi être balisées dans un modèle AWS. Les valeurs des balises peuvent faire référence aux paramètres du modèle, aux noms d'autres ressources, à des valeurs d'attributs de ressource (ex. : adresses) ou à des valeurs calculées par des fonctions simples (ex. : une liste concaténée de chaînes). CloudFormation balise automatiquement les volumes Amazon EBS et les instances Amazon EC2 en indiquant le nom de la pile CloudFormation dont ils font partie.

Oui. Vous pouvez utiliser des fonctions simples pour concaténer les littéraux de chaînes et les valeurs d'attributs des ressources AWS et les envoyer aux champs de données utilisateur dans votre modèle. Veuillez vous référer à nos modèles d'exemples pour en apprendre plus sur ces fonctions faciles à utiliser.

Par défaut, la fonction « restauration automatique sur erreur » est activée. CloudFormation pourra alors uniquement créer ou mettre à jour toutes les ressources de votre pile si toutes les opérations individuelles réussissent. Dans le cas contraire, CloudFormation rétablit la pile à la dernière configuration stable connue. Cela est utile quand, par exemple, vous dépassez accidentellement votre limite par défaut d'adresses IP Elastic ou que vous n'avez pas accès à une AMI EC2 que vous essayez d'exécuter. Avec cette fonction, vous pouvez être sûr que les piles sont soit totalement créées, soit pas du tout, ce qui simplifie l'administration du système et des solutions superposées construites sur CloudFormation.

Oui. L'une des options fournies par CloudFormation est une ressource WaitCondition qui agit comme un bouclier, bloquant la création d'autres ressources jusqu'à la réception du signal d'achèvement d'une source externe comme votre application ou système de gestion. Les autres options possibles sont la création d'une logique personnalisée avec les fonctions AWS Lambda.

Oui. CloudFormation vous permet de définir les politiques de suppression des ressources dans le modèle. Vous pouvez spécifier que les instantanés doivent être créés pour les instances de volumes EBS Amazon ou de base de données Amazon RDS avant d'être supprimés. Vous pouvez aussi spécifier qu'une ressource doit être conservée, mais pas supprimée quand la pile est supprimée. C'est utile pour conserver des compartiments Amazon S3 quand la pile est supprimée.

Oui. CloudFormation prend en charge la création de VPC, sous-réseaux, passerelles, tables de routage et ACL réseau, ainsi que la création de ressources telles que des adresses IP Elastic, des instances Amazon EC2, des groupes de sécurité EC2, des groupes Auto Scaling, des Elastic Load Balancers, des instances de base de données Amazon RDS et des groupes de sécurité Amazon RDS dans un VPC.

Oui. Vous pouvez utiliser CloudFormation pour modifier et mettre à jour les ressources dans vos piles existantes de manière contrôlée et prévisible. En utilisant des modèles pour gérer les modifications de votre pile, vous avez la possibilité d'assurer un contrôle de version de votre infrastructure AWS similaire à celui que vous réalisez pour les logiciels qui y sont exécutés.

Oui, bien sûr ! Grâce à la fonctionnalité d'importation de ressources, vous pouvez intégrer une ressource existante à la gestion d'AWS CloudFormation à l'aide de l'importation des ressources.

Mise en route

Pour vous inscrire à CloudFormation, cliquez sur Créer un compte gratuit sur la page du produit CloudFormation. Une fois l'inscription terminée, consultez la documentation de CloudFormation qui comprend notre Guide de démarrage.

L'inscription à CloudFormation exige que vous ayez un numéro de téléphone et une adresse e-mail valides dans nos archives AWS au cas où nous devrions vous contacter. La vérification de votre numéro de téléphone ne prend que quelques minutes. Vous recevrez un appel automatique pendant le processus d'inscription et vous devrez entrer un code d'identification PIN à l'aide des touches de votre téléphone.

La meilleure manière de démarrer avec CloudFormation est de consulter le Guide de démarrage qui est inclus dans notre documentation technique. En quelques minutes, vous pouvez déployer et utiliser l'un de nos exemples de modèles qui explique comment créer l'infrastructure nécessaire pour exécuter des applications comme WordPress. Il existe plusieurs autres sources de formation CloudFormation, des fournisseurs de programmes tiers aux didacticiels et articles sur le web. Pour plus d'informations, consultez les ressources CloudFormation.

Oui, CloudFormation contient des exemples de modèles que vous pouvez utiliser pour tester et explorer ses fonctionnalités. Nos exemples de modèles indiquent comment interconnecter et utiliser plusieurs ressources AWS conjointement, en respectant les bonnes pratiques liées à la redondance sur plusieurs zones de disponibilité, au dimensionnement et aux alarmes. Pour démarrer, accédez simplement à AWS Management Console, cliquez sur Créer une pile, et suivez les différentes étapes pour choisir et lancer l'un des exemples de modèles. Une fois la création terminée, sélectionnez votre pile dans la console et accédez aux onglets Modèle et Paramètre pour consulter les informations relatives au fichier de modèle utilisé pour créer la pile. Des exemples de modèles sont également disponibles sur GitHub.

AWS CloudFormation Registry

AWS CloudFormation Registry est un service géré qui vous permet d'enregistrer, d'utiliser et de découvrir les types de ressources AWS et tiers. Les types de ressources tiers doivent être enregistrés pour pouvoir les utiliser pour mettre en service des ressources avec des modèles AWS CloudFormation. Pour plus de détails, consultez la section Utilisation du registre AWS CloudFormation dans notre documentation.

Un fournisseur de ressources est un ensemble de types de ressources avec des spécifications et des gestionnaires qui contrôlent le cycle de vie des ressources sous-jacentes via des opérations de création, de lecture, de mise à jour, de suppression et de liste. Vous pouvez utiliser des fournisseurs de ressources pour modéliser et mettre en service des ressources à l'aide de CloudFormation. Par exemple, AWS::EC2: Instance est un type de ressource du fournisseur Amazon EC2. Vous pouvez utiliser ce type pour modéliser et mettre en service une instance Amazon EC2 à l'aide de CloudFormation. À l'aide de CloudFormation Registry, vous pouvez créer et utiliser des fournisseurs de ressources pour modéliser et mettre en service des ressources tierces telles que des ressources de surveillance SaaS, de productivité d'équipe ou de gestion de code source.

La différence entre AWS et les fournisseurs de ressources tiers réside dans leur origine. Les fournisseurs de ressources AWS sont créés et gérés par Amazon et AWS pour gérer les ressources et les services AWS. Par exemple, trois fournisseurs de ressources AWS vous aident à gérer les ressources Amazon DynamoDB, AWS Lambda et Amazon EC2. Ces fournisseurs contiennent des types de ressources tels que AWS::DynamoDB::Table, AWS::Lambda::Function et AWS::EC2::Instance. Pour une référence complète, consultez notre documentation.

Les fournisseurs de ressources tiers sont créés par une autre société, organisation ou communauté de développeurs. Ils peuvent vous aider à gérer les ressources AWS et non-AWS, telles que les ressources d'application AWS et les services logiciels non-AWS SaaS, tels que des outils de surveillance, de productivité d'équipe, de gestion des incidents ou de contrôle de version.

Un schéma de ressource définit un type de ressource dans un format structuré et cohérent. Ce schéma est également utilisé pour valider la définition d'un type de ressource. Il inclut tous les paramètres et attributs pris en charge pour un type de ressource donné, ainsi que les autorisations requises pour créer la ressource avec le moins de privilèges possible.

Utilisez l'interface de ligne de commande (CLI) AWS CloudFormation pour créer des fournisseurs de ressources. Vous commencez par définir un schéma déclaratif simple pour vos ressources, qui inclut les autorisations requises et les relations avec d'autres ressources. Vous utilisez ensuite l'interface CLI CloudFormation pour générer l’échafaudage des gestionnaires de cycle de vie des ressources (Créer, Lire, Mettre à jour, Supprimer et Liste), ainsi que des modules de remplacement de test pour les tests d’unité et d’intégration.

Vous pouvez utiliser l'interface de ligne de commande (CLI) AWS CloudFormation ou appeler directement le type de registre et les API de registre associées disponibles via les kits SDK AWS et l'interface CLI AWS. Pour plus de détails, consultez la section Utilisation du registre AWS CloudFormation dans notre documentation. Les fournisseurs de ressources AWS sont disponibles immédiatement et ne nécessitent aucune étape d'inscription supplémentaire avant l'utilisation.

Registre public AWS CloudFormation

Le registre CloudFormation lancé en novembre 2019 est composé d'un liste privée qui permet aux clients d'étendre CloudFormation en fonction de leur usage privé. Le registre public étend le registre CloudFormation et ajoute un emplacement public, consultable et central pour partager, rechercher, consommer et gérer les types de ressources et modules <>, ce qui facilite beaucoup la configuration et la gestion cohérentes de l'infrastructure et des applications des produits AWS et tiers.

Oui. Dans le registre public AWS CloudFormation, vous avez accès au contenu organisé des éditeurs vérifiés. Nous commençons par vérifier l'identité de chaque utilisateur au moyen d'AWS Marketplace ou des tiers tels que GitHub et Bitbucket.

Le registre public CloudFormation est un nouveau catalogue d'extensions consultable et géré qui contient des types de ressources (logique d'allocation) et des modules publiés par les partenaires du réseau de partenaires AWS et la communauté de développeurs. Le registre public CloudFormation permet désormais à quiconque de publier des types de ressources et modules dans le registre. Les clients peuvent facilement découvrir et utiliser ces types de ressources et modules publiés éliminant ainsi la nécessité de les créer et de les maintenir par eux-mêmes.

Un type de ressources est un package de code contenant une logique de mise en service qui vous permet de gérer le cycle de vie d'une ressource comme une instance Amazon EC2 ou une table Amazon DynamoDB de sa création à sa suppression, en faisant abstraction des interactions API complexes. Les types de ressources contiennent un schéma qui définit le format et les propriétés d'une ressource et la logique nécessaire pour allouer, mettre à jour, supprimer et décrire une ressource. Voici quelques exemples de type de ressources tiers dans le registre public CloudFormation : un contrôleur Datadog, un projet MongoDB Atlas ou un utilisateur Atlassian Opsgenie.

Les modules sont des blocs de construction qui peuvent être réutilisés dans plusieurs modèles CloudFormation et sont utilisés juste comme une ressource CloudFormation native. Ces blocs de construction peuvent être destinés à une seule ressource comme les bonnes pratiques pour définir une instance Amazon Elastic Compute Cloud (Amazon EC2) ou à plusieurs ressources pour définir des modèles communs d'une architecture d'application.

Vous pouvez vous référer à ce lien pour développer et ajouter ma propre ressource ou module au registre AWS CloudFormation. Vos pouvez choisir de le publier en privé ou dans le registre public.

Facturation

L'utilisation d'AWS CloudFormation avec des fournisseurs de ressources dans les espaces de noms suivants est gratuite : AWS::*, Alexa::* et Custom::*. Dans ce cas, vous payez pour les ressources AWS (telles que les instances Amazon EC2, les équilibreurs de charge Elastic Load Balancing, etc.) créées à l'aide d'AWS CloudFormation exactement de la même manière que si vous les aviez créées manuellement. Vous payez uniquement ce que vous utilisez et en fonction de votre consommation ; il n'y a pas de frais minimums et aucun engagement initial n'est requis.

Lorsque vous utilisez des fournisseurs de ressources avec AWS CloudFormation en dehors des espaces de noms mentionnés ci-dessus, vous payez des frais par opération de gestionnaire. Les opérations de gestionnaire consistent à créer, mettre à jour, supprimer, lire ou répertorier des actions sur une ressource. Pour en savoir plus, reportez-vous à notre page Tarification.

Oui. Les frais pour les ressources AWS créées pendant l'instanciation d'un modèle s'appliquent, que la pile ait pu être créée dans son ensemble ou on.

Limites et restrictions

Pour plus d'informations sur le nombre maximum de piles AWS CloudFormation que vous pouvez créer, consultez Piles dans Quotas AWS CloudFormation. Pour demander une augmentation de limite, remplissez le formulaire disponible ici. Nous vous répondrons dans les deux jours ouvrables.

Pour plus d'informations, consultez Description des modèles dans Quotas AWS CloudFormation, ainsi que Paramètres, Ressources et Sorties dans la documentation AWS.

Pour plus d'informations sur le nombre de paramètres et de sorties que vous pouvez spécifier dans un modèle, consultez les sections Paramètres et Sorties dans Quotas AWS CloudFormation.

Pour plus d'informations sur le nombre de ressources que vous pouvez déclarer dans un modèle, consultez Ressources dans Quotas AWS CloudFormation. La création de modèles et de piles de plus petite taille, ainsi que la modularisation de votre application sur plusieurs piles sont de bonnes pratiques pour réduire le rayon d'impact de vos modifications apportées aux ressources. Ces démarches sont également recommandées pour résoudre plus rapidement les problèmes liés aux dépendances de ressources multiples, puisque les groupes de ressources de plus petite taille ont des dépendances moins complexes que les groupes de plus grande taille.

Régions et points de terminaison

Les points de terminaison de chaque région sont disponibles dans la section Points de terminaison AWS CloudFormation dans la documentation technique.

Pour plus d'informations sur la disponibilité de CloudFormation par région, reportez-vous à la section Produits et services régionaux.

En savoir plus sur la tarification d'AWS CloudFormation

Visiter la page de tarification AWS CloudFormation
Prêt à créer ?
Démarrer avec AWS CloudFormation
D'autres questions ?
Contactez-nous