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.
Création de votre première pile
Cette rubrique vous guide dans le processus de création de votre première pile CloudFormation à l’aide du AWS Management Console. En suivant ce didacticiel, vous apprendrez à mettre en service des ressources AWS de base, à surveiller les événements liés à la pile et à générer des résultats.
Dans cet exemple, le modèle CloudFormation est écrit en YAML. YAML est un format lisible par l’homme qui est largement utilisé pour définir l’infrastructure en tant que code. Au fur et à mesure que vous vous familiariserez avec CloudFormation, vous rencontrerez peut-être d’autres modèles au format JSON, mais pour ce didacticiel, le format YAML a été choisi pour sa lisibilité.
Note
CloudFormation est gratuit, mais les ressources Amazon EC2 et Amazon S3 que vous créez vous seront facturées. Toutefois, si vous débutez avec AWS, vous pouvez tirer parti de l’offre gratuite
Rubriques
Prérequis
-
Vous devez disposer d’un accès à un Compte AWS avec un utilisateur ou un rôle IAM disposant des autorisations nécessaires pour utiliser Amazon EC2, Amazon S3 et CloudFormation, ou d’un accès utilisateur administratif.
-
Vous devez disposer d’un cloud privé virtuel (VPC) ayant accès à Internet. Ce modèle de procédure pas-à-pas nécessite un VPC par défaut, qui est automatiquement fourni avec les Comptes AWS plus récentes. Si vous ne disposez pas d’un VPC par défaut ou si celui-ci a été supprimé, consultez la section Dépannage de cette rubrique pour trouver d’autres solutions.
Créer une pile CloudFormation à l’aide de la console
Pour créer une pile CloudFormation Hello world à l’aide de la console
-
Ouvrez la console CloudFormation
. -
Sélectionnez Créer une pile.
-
Sur la page Créer une pile, sélectionnez Créer à partir d’Infrastructure Composer, puis Créer dans Infrastructure Composer. Cela vous amène à Infrastructure Composer en mode console CloudFormation, où vous pouvez télécharger et valider le modèle d’exemple.
-
Pour télécharger et valider le modèle d’exemple, procédez comme suit :
-
Sélectionnez Modèles. Ensuite, copiez et collez le modèle CloudFormation suivant dans l’éditeur de modèles :
AWSTemplateFormatVersion: 2010-09-09 Description: CloudFormation Template for WebServer with Security Group and EC2 Instance Parameters: LatestAmiId: Description: The latest Amazon Linux 2 AMI from the Parameter Store Type: 'AWS::SSM::Parameter::Value<AWS::EC2::Image::Id>' Default: '/aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2' InstanceType: Description: WebServer EC2 instance type Type: String Default: t2.micro AllowedValues: - t3.micro - t2.micro ConstraintDescription: must be a valid EC2 instance type. MyIP: Description: Your IP address in CIDR format (e.g. 203.0.113.1/32). Type: String MinLength: '9' MaxLength: '18' Default: 0.0.0.0/0 AllowedPattern: '^(\d{1,3}\.){3}\d{1,3}\/\d{1,2}$' ConstraintDescription: must be a valid IP CIDR range of the form x.x.x.x/x. Resources: WebServerSecurityGroup: Type: AWS::EC2::SecurityGroup Properties: GroupDescription: Allow HTTP access via my IP address SecurityGroupIngress: - IpProtocol: tcp FromPort: 80 ToPort: 80 CidrIp: !Ref MyIP WebServer: Type: AWS::EC2::Instance Properties: ImageId: !Ref LatestAmiId InstanceType: !Ref InstanceType SecurityGroupIds: - !Ref WebServerSecurityGroup UserData: !Base64 | #!/bin/bash yum update -y yum install -y httpd systemctl start httpd systemctl enable httpd echo "<html><body><h1>Hello World!</h1></body></html>" > /var/www/html/index.html Outputs: WebsiteURL: Value: !Join - '' - - http:// - !GetAtt WebServer.PublicDnsName Description: Website URLAvant de passer à l’étape suivante, prenons un moment pour examiner le modèle et comprendre certains concepts clés de CloudFormation.
-
Cette section
Parametersdéclare les valeurs qui peuvent être transmises au modèle lorsque vous créez la pile. Les ressources spécifiées ultérieurement dans le modèle font référence à ces valeurs et utilisent les données. Les paramètres constituent un moyen efficace de spécifier les informations que vous ne souhaitez pas stocker dans le modèle lui-même. Ils permettent également de spécifier des informations qui peuvent être propres à l’application ou à la configuration spécifique que vous déployez. -
Le modèle définit les paramètres suivants :
-
LatestAmiId: récupère le dernier ID AMI Amazon Linux 2 dans le Parameter Store AWS Systems Manager. -
InstanceType: permet de sélectionner le type d’instance EC2 (par défaut :t2.micro, autorisé :t3.micro,t2.micro). -
MyIP: spécifie la plage d’adresses IP pour l’accès HTTP (par défaut : 0.0.0.0/0, permettant l’accès à partir de n’importe quelle adresse IP).
-
-
Cette section
Resourcescontient les définitions des ressources AWS que vous souhaitez créer à l’aide du modèle. Les déclarations de ressource sont un moyen efficace de spécifier tous ces paramètres de configuration simultanément. Lorsque vous incluez des déclarations de ressources dans un modèle, vous pouvez créer et configurer toutes les ressources déclarées en utilisant ce modèle pour créer une pile. Vous pouvez également créer de nouvelles piles à partir du même modèle pour lancer des configurations identiques de ressources. -
Ce modèle crée les ressources suivantes :
-
WebServerSecurityGroup: un groupe de sécurité EC2 qui autorise le trafic HTTP entrant sur le port 80 à partir de la plage d’adresses IP spécifiée. -
WebServer: une instance EC2 avec la configuration suivante :-
Utilise la dernière AMI Amazon Linux 2
-
Applique le type d’instance sélectionné
-
Ajoute le
WebServerSecurityGroupà la propriétéSecurityGroupIds -
Inclut un script de données utilisateur pour installer le serveur HTTP Apache
-
-
-
Un nom logique est spécifié au début de chaque déclaration de ressource et de paramètre. Par exemple,
WebServerSecurityGroupest le nom logique attribué à la ressource du groupe de sécurité EC2. La fonctionRefest ensuite utilisée pour référencer les ressources et les paramètres par leur nom logique dans d’autres parties du modèle. Lorsqu’une ressource fait référence à une autre ressource, cela crée une dépendance entre elles. -
La section
Outputsdéfinit les valeurs personnalisées qui sont renvoyées après la création de la pile. Vous pouvez utiliser les valeurs de sortie pour renvoyer les informations à partir des ressources de la pile, telles que les identificateurs de ressources ou les URL. -
Le modèle définit une sortie :
-
WebsiteURL: l’URL du serveur Web déployé, construite à l’aide du nom DNS public de l’instance EC2. La fonctionJoinpermet de combiner le fixehttp://avec la variablePublicDnsNameen une seule chaîne, ce qui facilite la sortie de l’URL complète du serveur Web.
-
-
-
Choisissez Valider pour vous assurer que le code YAML est valide avant de télécharger le modèle.
-
Ensuite, sélectionnez Créer un modèle pour créer le modèle et l’ajouter à un compartiment S3.
-
Dans la boîte de dialogue qui s’ouvre, notez le nom du compartiment S3 afin de pouvoir le supprimer ultérieurement. Choisissez ensuite Confirmer et passez à CloudFormation. Cela vous amène à la console CloudFormation où le chemin S3 vers votre modèle est désormais spécifié.
-
-
Sur la page Créer une pile choisissez Suivant.
-
Sur la page Spécifier les détails de la pile, saisissez un nom dans le champ Nom de la pile. Le nom de la pile ne peut pas contenir d'espaces. Pour cet exemple, utilisez
MyTestStack. -
Sous Paramètres, spécifiez les valeurs des paramètres comme suit :
-
LatestAMIid : Ce paramètre est défini par défaut sur la dernière AMI Amazon Linux 2.
-
InstanceType : choisissez t2.micro ou t3.micro pour le type d’instance EC2.
Note
Si vous débutez avec AWS, vous pouvez utiliser l’offre gratuite pour lancer et utiliser une instance
t2.microgratuitement pendant 12 mois (dans les régions oùt2.micron’est pas disponible, vous pouvez utiliser une instancet3.microdans le cadre de l’offre gratuite). -
MyIP : Spécifiez votre adresse IP publique réelle à l’aide d’un suffixe
/32. Le suffixe/32est utilisé dans la notation CIDR pour spécifier qu’une seule adresse IP est autorisée. Cela signifie essentiellement autoriser le trafic vers et depuis cette adresse IP spécifique, et aucune autre.
-
-
Sélectionnez deux fois Suivant pour accéder à la page Vérifier et créer. Pour ce didacticiel, vous pouvez laisser les valeurs par défaut de la page Configurer les options de pile telles quelles.
-
Vérifiez les informations de la pile. Lorsque vous êtes satisfait de vos paramètres, choisissez Submit (Envoyer).
Surveiller la création de la pile
Une fois que vous avez sélectionné Soumettre, CloudFormation commence à créer les ressources spécifiées dans le modèle. Votre nouvelle pile, MyTestStack, s'affiche dans la liste, en haut de la console CloudFormation. Son statut devrait être CREATE_IN_PROGRESS. Pour voir l'état détaillé d'une pile, consultez ses événements.
Pour afficher les événements de la pile
-
Dans la console CloudFormation, sélectionnez la pile
MyTestStackdans la liste. -
Dans le volet de détails de la pile, choisissez l'onglet Events (Événements).
La console actualise automatiquement la liste en y ajoutant les événements les plus récents toutes les 60 secondes.
L'onglet Événements affiche chaque étape majeure de création de la pile, triée en fonction de l'heure de chaque événement, avec les derniers événements en tête de liste.
Le premier événement (en bas de la liste d'événements) correspond au début du processus de création de la pile :
2024-12-23 18:54 UTC-7 MyTestStack CREATE_IN_PROGRESS User initiated
Ensuite viennent les événements qui marquent le début et la fin de la création de chaque ressource. Par exemple, la création de l'instance EC2 génère les entrées suivantes :
2024-12-23 18:59 UTC-7 WebServer CREATE_COMPLETE
2024-12-23 18:54 UTC-7 WebServer CREATE_IN_PROGRESS Resource creation
initiated
L'événement CREATE_IN_PROGRESS est consigné quand CloudFormation indique qu'il a commencé à créer la ressource. L'événement CREATE_COMPLETE est enregistré lorsque la ressource a été créée avec succès.
Quand la création de la pile par CloudFormation est terminée, l'événement suivant s'affiche en haut de l'onglet Events (Événements) :
2024-12-23 19:17 UTC-7 MyTestStack CREATE_COMPLETE
Si CloudFormation ne parvient pas à créer une ressource, il indique un événement CREATE_FAILED et, par défaut, annule la pile, puis supprime toutes les ressources qui ont été créées. La colonne Motif du statut affiche le problème qui a provoqué l'échec.
Une fois la pile créée, vous pouvez accéder à l’onglet Ressources pour afficher l’instance EC2 et le groupe de sécurité que vous avez créés.
Tester le service Web
Une fois la pile créée, accédez à l’onglet Sorties dans la console CloudFormation. Recherchez le champ WebsiteURL. Cela contiendra l’URL publique de votre instance EC2.
Ouvrez un navigateur et accédez à l’URL répertoriée sous WebsiteURL. Vous devriez voir un message "Hello World!" simple s’afficher dans le navigateur.
Cela confirme que votre instance EC2 exécute le serveur HTTP Apache et diffuse une page Web de base.
Résolution des problèmes
Si vous rencontrez un retour en arrière lors de la création de la pile, cela peut être dû à l’absence d’un VPC. Voici comment résoudre ce problème.
Aucun VPC par défaut n’est disponible
Le modèle présenté dans cette procédure pas à pas nécessite un VPC par défaut. Si la création de votre pile échoue en raison d’erreurs de disponibilité du VPC ou du sous-réseau, il se peut que vous n’ayez pas de VPC par défaut dans votre compte. Vous avez les options suivantes :
-
Créer un nouveau VPC par défaut : vous pouvez créer un nouveau VPC par défaut via la console Amazon VPC. Pour obtenir des instructions, consultez la section Créer un VPC par défaut dans le Guide de l’utilisateur Amazon VPC.
-
Modifier le modèle pour spécifier un sous-réseau — Si vous avez un VPC autre que celui par défaut, vous pouvez modifier le modèle pour spécifier explicitement le VPC et les ID de sous-réseau. Ajoutez le paramètre suivant au modèle :
SubnetId: Description: The subnet ID to launch the instance into Type: AWS::EC2::Subnet::IdEnsuite, mettez à jour la ressource
WebServerpour inclure l’ID du sous-réseau :WebServer: Type: AWS::EC2::Instance Properties: ImageId: !Ref LatestAmiId InstanceType: !Ref InstanceType SecurityGroupIds: - !Ref WebServerSecurityGroup SubnetId: !Ref SubnetId UserData: !Base64 | #!/bin/bash yum update -y yum install -y httpd systemctl start httpd systemctl enable httpd echo "<html><body><h1>Hello World!</h1></body></html>" > /var/www/html/index.htmlLors de la création de la pile, vous devez spécifier un sous-réseau ayant accès à Internet pour que le serveur Web soit accessible.
Nettoyage
Pour vous assurer que vous n'êtes pas facturé pour des services indésirables, supprimez la pile et ses ressources. Vous pouvez également supprimer le compartiment S3 qui stocke le modèle de la pile.
Pour supprimer la pile et ses ressources
-
Ouvrez la console CloudFormation
. -
Sur la page Piles, sélectionnez l’option à côté du nom de la pile que vous avez créée (
MyTestStack), puis choisissez Supprimer. -
Lorsque vous êtes invité à confirmer l’opération, choisissez Supprimer.
-
Surveillez la progression du processus de suppression de la pile dans l’onglet Événement. L'état de
MyTestStackest remplacé parDELETE_IN_PROGRESS. Quand CloudFormation termine la suppression de la pile, il la supprime de la liste.
Si vous avez terminé d’utiliser le modèle d’exemple et que vous n’avez plus besoin de votre compartiment Amazon S3, supprimez-le. Avant de pouvoir supprimer un compartiment, vous devez d’abord supprimer son contenu. Vider un compartiment supprime tous les objets qu’il contient.
Pour vider et supprimer le compartiment Amazon S3
-
Ouvrez la console Amazon S3
. -
Dans le volet de navigation situé sur le côté gauche de la console, choisissez Compartiments.
-
Dans la liste Compartiments, sélectionnez l’option à côté du nom du compartiment que vous avez créé pour ce didacticiel, puis choisissez Vider.
-
Sur la page Vider le compartiment, confirmez que vous souhaitez vider le compartiment en saisissant
permanently deletedans le champ de texte, puis choisissez Vider. -
Surveillez la progression du processus de vidage du compartiment sur la page Vider le compartiment : état.
-
Pour revenir à votre liste de compartiments, choisissez Quitter.
-
Sélectionnez l’option en regard du nom du compartiment, puis choisissez Supprimer.
-
Lorsque vous êtes invité à confirmer, saisissez le nom du compartiment, puis sélectionnez Supprimer le compartiment.
-
Surveillez la progression du processus de suppression des compartiments à partir de la liste Compartiments. Lorsque Amazon S3 a terminé la suppression du compartiment, il le supprime de la liste.
Étapes suivantes
Félicitations ! Vous avez créé une pile avec succès, surveillé ses créations et utilisé ses résultats.
Pour continuer à apprendre :
-
Apprenez-en davantage sur les modèles afin de pouvoir créer vos propres modèles. Pour de plus amples informations, consultez Utilisation de CloudFormation modèles.
-
Essayez l’atelier Premiers pas avec CloudFormation
pour vous exercer davantage à la création de modèles. -
Pour une version abrégée de Premiers pas avec CloudFormation
, voir Déployez des applications sur Amazon EC2. Cette rubrique décrit le même scénario d’utilisation d’un script d’aide CloudFormation, cfn-init, pour démarrer une instance Amazon EC2.