La meilleure manière de démarrer avec AWS CloudFormation est de consulter le Manuel de mise en route qui est inclus dans notre documentation technique. Dans quelques minutes, vous serez capable de déployer l'un des modèles d'exemple et de commencer à créer vos propres configurations d'infrastructure.
Présentation d'AWS CloudFormation

Les modèles CloudFormation présentent plusieurs avantages :

Format courant : un template CloudFormation est un simple fichier texte au format JSON (JavaScript Object Notation) ou YAML qui décrit l'infrastructure AWS nécessaire à l'exécution d'une application ou d'un service ainsi que les éventuelles interconnexions entre les ressources.

Gestion des relations : Les modèles intègrent de manière concise les relations entre les ressources, par exemple dans le cas où des instances EC2 doivent être associées à un programme d'équilibrage de charge Elastic Load Balancing ou si un volume EBS doit se trouver dans la même zone de disponibilité EC2 que l'instance à laquelle il est associé.

Modèles réutilisables : Grâce aux paramètres, un seul modèle peut être utilisé pour plusieurs déploiements d'infrastructure avec des valeurs de configuration différentes (par exemple le nombre d'instances à déployer pour l'application).

Obtention de retours : Les modèles incluent également des propriétés de sortie permettant de communiquer les résultats du déploiement ou des informations relatives à la configuration à l'utilisateur. Par exemple, lorsqu'il est instancié, un modèle peut fournir l'URL du point de terminaison Elastic Load Balancing que le client doit utiliser pour se connecter à l'application qui vient d'être instanciée.

Elimination des collisions : Toutes les ressources AWS incluses dans un modèle sont identifiées à l'aide de noms logiques, ce qui permet de créer plusieurs piles à partir d'un modèle sans risque de collision de noms entre les ressources AWS.

Lancement direct : Utilisez n'importe quelle méthode pour lancer une pile sans avoir à enregistrer le modèle dans AWS CloudFormation au préalable.

Visualisation de la pile (stack) : CloudFormation Designer vous permet de visualiser vos modèles sous forme de diagramme. Vous pouvez visualiser très facilement vos ressources AWS et leurs relations, mais aussi réorganiser leur disposition de façon à ce que le diagramme soit plus pertinent pour vous. Vous pouvez modifier les modèles à l'aide de l'interface par glisser-déposer et de l'éditeur JSON intégré. Les modifications que vous apportez au diagramme sont automatiquement reflétées dans l'éditeur JSON du modèle.                                                                                                                                          

Recherche de ressources : AWS CloudFormation conserve une copie du modèle de la pile. Vous pouvez donc utiliser AWS Management Console, les outils de ligne de commande ou les API pour vérifier les configurations précises des ressources appliquées lors de la création de la pile.

Automatisation : Vous avez la possibilité d'automatiser la création des modèles en utilisant l'outil ou le langage de programmation de votre choix. Vous pouvez aussi automatiser la création de piles à partir des modèles à l'aide des API CloudFormation API, des kits de développement logiciel AWS ou de l'interface de ligne de commande d'AWS.

Un modèle possède la structure JSON de haut niveau suivante :

{

    "Description" : "A text description for the template usage",

    "Parameters": {

        // A set of inputs used to customize the template per deployment

    },

    "Resources" : {

        // The set of AWS resources and relationships between them

    },

    "Outputs" : {

        // A set of values to be made visible to the stack creator

    },

    "AWSTemplateFormatVersion" : "2010-09-09"

}

Le modèle suivant est un simple exemple qui montre comment créer une instance EC2 :

{

    "Description" : "Create an EC2 instance running the Amazon Linux 32 bit AMI.",

    "Parameters" : {

        "KeyPair" : {

            "Description" : "The EC2 Key Pair to allow SSH access to the instance",

            "Type" : "String"

        }

    },

    "Resources" : {

        "Ec2Instance" : {

            "Type" : "AWS::EC2::Instance",

            "Properties" : {

                "KeyName" : { "Ref" : "KeyPair" },

                "ImageId" : "ami-3b355a52"

            }

        }

    },

    "Outputs" : {

        "InstanceId" : {

            "Description" : "The InstanceId of the newly created EC2 instance",

            "Value" : {

                "Ref" : "Ec2Instance"

            }

        }

    },

    "AWSTemplateFormatVersion" : "2010-09-09"

}   

Utilisation d'un modèle AWS CloudFormation pour la création et la gestion de stacks

Une pile est un ensemble de ressources créées lors de l'instanciation d'un modèle. Pour créer une pile, il vous suffit de fournir un modèle et tous les paramètres requis dans AWS CloudFormation. En fonction du modèle et des dépendances qu'il indique, AWS CloudFormation détermine quelles ressources AWS doivent être créées, et dans quel ordre.

Pour mettre à jour une pile, vous devez fournir un modèle indiquant la configuration souhaitée pour toutes les ressources de cette pile. Vous pouvez modifier les propriétés des ressources existantes dans votre pile pour réagir aux modifications dans votre environnement ou aux nouvelles exigences d'application. Par exemple, vous pouvez modifier les seuils d'alarme sur vos alarmes AWS CloudWatch ou mettre à jour l'AMI exécutée sur une instance dans votre pile. AWS CloudFormation se charge d'appliquer ces modifications aux différentes ressources de votre pile. Bien souvent, les changements peuvent être appliqués sans que cela affecte votre application en cours d'exécution. Cependant, en cas de modification ne pouvant pas être appliquée de manière dynamique (par exemple une mise à jour de l'AMI d'une instance EC2), AWS CloudFormation crée une nouvelle ressource et la relie à la pile, puis supprime l'ancienne ressource une fois que le service s'est assuré de la réussite de la mise à jour.

AWS CloudFormation crée ou met à jour l'ensemble de la pile. Si une pile ne peut pas être créée ou modifiée dans son intégralité, AWS CloudFormation annule l'opération. Dans le cadre d'un débogage, la fonction d'annulation peut être désactivée afin de réitérer ultérieurement l'opération de création ou de mise à jour de la pile de façon manuelle.

Vous pouvez également utiliser AWS CloudFormation Designer pour créer ou modifier un modèle de stack, puis le soumettre à AWS CloudFormation afin de créer ou de mettre à jour la stack. AWS CloudFormation Designer est disponible dans AWS Management Console.


Il est facile d'accéder à AWS CloudFormation via AWS Management Console, qui vous procure une interface Web de type pointer-cliquer permettant de déployer et de gérer les piles applicatives. Vous pouvez créer, supprimer et mettre à jour une application directement depuis AWS Management Console, en quelques étapes simples seulement.

Utilisation de l'API d'AWS CloudFormation

AWS CloudFormation fournit un ensemble simple d'API faciles à utiliser et extrêmement flexibles. Pour une liste complète des API AWS CloudFormation disponibles, veuillez consulter le manuel AWS CloudFormation API Reference Guide. Voici une présentation de certaines des API les plus couramment utilisées et de leurs fonctionnalités :

CreateStack : Lance la création d'une pile. Les paramètres d'entrée de cet appel incluent le nom de la pile et le nom de fichier (ou l'URL Amazon S3) du modèle source. Si le processus de création de la pile se termine correctement, la pile obtient l'état CREATE_COMPLETE. Si la création échoue, AWS CloudFormation supprime les ressources créées précédemment, à moins que l'utilisateur n'ait spécifié un indicateur visant à conserver ces éléments à des fins de débogage.

ListStacks : Liste toutes les piles associées à votre compte. Utilisez cette option pour afficher l'ensemble des piles et leur état actuel, et savoir ainsi si une pile est en cours de création ou de mise à jour.

ListStackResources¬: Liste tous les noms de ressources et les identifiants AWS qui ont été créés lors de la création d'une pile. Cet appel vous fournit des informations et peut également être utilisé par une application compatible avec AWS CloudFormation pour connaître son environnement.

DescribeStackEvents : Liste l'ensemble des opérations et événements générés par AWS CloudFormation pour une pile, afin que vous puissiez voir l'avancement de la création ou de la suppression en cours.

UpdateStack : Lance la procédure de mise à jour pour une pile existante. Les paramètres d'entrée de cet appel incluent le nom de la pile et le nom de fichier (ou l'URL Amazon S3) du modèle mis à jour. Si le processus de mise à jour de la pile se termine correctement, la pile obtient l'état UPDATE_COMPLETE. Si la mise à jour de la pile échoue, AWS CloudFormation annule toutes les modifications de ressources qui ont été effectuée afin que la pile revienne à l'état décrit dans le modèle d'origine.

Vous pouvez également utiliser AWS CloudFormation via des kits de développement logiciel (SDK) AWS et l'interface de ligne de commande d'AWS.

AWS CloudFormation est intégré à Amazon Simple Notification Service (Amazon SNS), ce qui vous permet de recevoir des notifications sur les avancements de la création et de la suppression de la pile. Ainsi, vous êtes informé de l'état de la stack, et les autres programmes peuvent réagir en fonction des événements CloudFormation, voire participer au processus de configuration de la stack.

Utilisation des ressources AWS

Le modèle AWS CloudFormation est conçu pour améliorer votre expérience existante avec AWS. Chaque ressource dispose d'un ensemble de paramètres avec des noms qui sont identiques aux noms utilisés pour créer les ressources par le biais de leur API d'origine. L'aperçu de modèle suivant montre comment vous définissez un volume Amazon EBS. Le nom logique du volume dans le modèle est "myVolume" et son type est "AWS::EC2::Volume". Ses propriétés vous sembleront familières si vous avez déjà utilisé des volumes EBS.

"myVolume" : {

    "Type" : "AWS::EC2::Volume",

    "Properties" : {

        "Size" : "10",

        "SnapshotId" : "snap-7b8fd361",

        "AvailabilityZone" : "us-east-1a"

    }

}
Afficher moins >>

Amorçage (bootstrap) des applications et gestion des mises à jour

AWS CloudFormation fournit plusieurs scripts d'aide qui peuvent être déployés sur vos instances EC2. Ces scripts fournissent une manière simple de lire les métadonnées de ressources depuis votre pile et de les utiliser pour configurer votre application, déployer des packages et des fichiers sur votre instance qui est listée dans votre modèle, et réagir aux mises à jours de la pile telles que les modifications de la configuration ou les mises à jour de votre application.

Les scripts suivants sont disponibles :

cfn-get-metadata¬: Récupère les métadonnées jointes à vos ressources dans le modèle.

cfn-init : Télécharge et installe les packages et les fichiers décrits dans votre modèle.

cfn-signal¬: Signale au flux de création de pile que votre application est lancée et prête à prendre du trafic.

cfn-hup¬: Un démon pour écouter les mises à jour de stack qui ont été initiées par le biais de la console AWS, les outils de ligne de commande ou directement via l'API et exécuter vos points d'accroche spécifiques à l'application en conséquence.

Vous pouvez utiliser les scripts CloudFormation seuls ou en les associant à CloudInit, une fonctionnalité disponible dans l'AMI Linux Amazon et certaines autres AMI Linux. Pour plus de détails sur l'amorçage d'applications et la mise à jour des configurations, consultez les ressources pour développeurs relatives à AWS CloudFormation.

Utilisation prévue et restrictions

Votre utilisation de ce service est soumise au Contrat client Amazon Web Services.

 

En savoir plus sur les tarifs d'AWS CloudFormation

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