

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.

# Commencer avec CloudFormation
<a name="GettingStarted"></a>

Vous pouvez commencer à utiliser CloudFormation le en AWS Management Console créant une pile à partir d'un exemple de modèle, qui vous aidera à apprendre les bases de la création de piles. Un *modèle* est un fichier texte qui définit toutes les ressources d’une pile. Une *pile* est le déploiement d'un CloudFormation modèle. À partir d’un seul modèle, vous pouvez créer plusieurs piles. Chaque pile contient un ensemble de AWS ressources qui peuvent être gérées comme une seule unité.

CloudFormation est un service gratuit ; toutefois, les AWS ressources que vous incluez dans vos piles vous sont facturées aux taux en vigueur pour chacune d'entre elles. Pour plus d'informations sur AWS les prix, rendez-vous sur la page détaillée de chaque produit sur [http://aws.amazon.com](https://aws.amazon.com/).

**Vidéo : Commencer avec CloudFormation**  
La vidéo suivante est une introduction à la création de CloudFormation piles à partir du AWS Management Console.

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/1h-GPXQrLZw?si=MYHlJvBkE3DspKcL/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/1h-GPXQrLZw?si=MYHlJvBkE3DspKcL)


**Topics**
+ [

# Comment CloudFormation fonctionne
](cloudformation-overview.md)
+ [

# S'inscrire à un Compte AWS
](cfn-sign-up-for-aws.md)
+ [

# Création de votre première pile
](gettingstarted.walkthrough.md)

# Comment CloudFormation fonctionne
<a name="cloudformation-overview"></a>

Cette rubrique décrit son CloudFormation fonctionnement et vous présente les concepts clés que vous devez connaître au fur et à mesure de son utilisation.

**Topics**
+ [

## Concepts clés
](#cfn-whatis-concepts)
+ [

## Comment CloudFormation fonctionne
](#cfn-whatis-howdoesitwork)
+ [

## Façons de démarrer avec CloudFormation
](#ways-to-get-started)

## Concepts clés
<a name="cfn-whatis-concepts"></a>

Lorsque vous les utilisez CloudFormation, vous travaillez avec des *modèles* et des *piles*. Vous créez des modèles pour décrire vos AWS ressources et leurs propriétés. Chaque fois que vous créez une pile, CloudFormation provisionnez les ressources décrites dans votre modèle.

**Topics**
+ [

### Modèles
](#cfn-concepts-templates)
+ [

### Piles
](#cfn-concepts-stacks)
+ [

### Jeux de modifications
](#cfn-concepts-change-sets)

### Modèles
<a name="cfn-concepts-templates"></a>

Un CloudFormation modèle est un fichier texte au format YAML ou JSON. Vous pouvez enregistrer ces fichiers avec n'importe quelle extension, telle que `.yaml``.json`,`.template`, ou`.txt`. CloudFormation utilise ces modèles comme modèles pour développer vos AWS ressources. Par exemple, dans un modèle, vous pouvez décrire une instance Amazon EC2, telle que le type d'instance, l'ID d'AMI, les mappages de périphérique de stockage en mode bloc et le nom de sa paire de clés Amazon EC2. Chaque fois que vous créez une pile, vous spécifiez également un modèle que CloudFormation utilise pour créer ce que vous avez décrit dans le modèle.

Par exemple, si vous avez créé une pile avec le modèle suivant, CloudFormation approvisionne une instance avec un ID `ami-0ff8a91507f77f867` AMI, un type d'`t2.micro`instance, un nom de paire de `testkey` clés et un volume Amazon EBS.

#### YAML
<a name="t2-micro-example.yaml"></a>

```
AWSTemplateFormatVersion: 2010-09-09
Description: A sample template
Resources:
  MyEC2Instance:
    Type: AWS::EC2::Instance
    Properties:
      ImageId: ami-0ff8a91507f77f867
      InstanceType: t2.micro
      KeyName: testkey
      BlockDeviceMappings:
        - DeviceName: /dev/sdm
          Ebs:
            VolumeType: io1
            Iops: 200
            DeleteOnTermination: false
            VolumeSize: 20
```

#### JSON
<a name="t2-micro-example.json"></a>

```
{
    "AWSTemplateFormatVersion": "2010-09-09",
    "Description": "A sample template",
    "Resources": {
        "MyEC2Instance": {
            "Type": "AWS::EC2::Instance",
            "Properties": {
                "ImageId": "ami-0ff8a91507f77f867",
                "InstanceType": "t2.micro",
                "KeyName": "testkey",
                "BlockDeviceMappings": [
                    {
                        "DeviceName": "/dev/sdm",
                        "Ebs": {
                            "VolumeType": "io1",
                            "Iops": 200,
                            "DeleteOnTermination": false,
                            "VolumeSize": 20
                        }
                    }
                ]
            }
        }
    }
}
```

Vous pouvez également spécifier plusieurs ressources dans un modèle unique et les configurer pour interagir les unes avec les autres. Par exemple, vous pouvez modifier le modèle précédent pour inclure une adresse IP Elastic (EIP) et l'associer à l'instance Amazon EC2, comme illustré dans l'exemple suivant :

#### YAML
<a name="multiple-resources-single-template.yaml"></a>

```
AWSTemplateFormatVersion: 2010-09-09
Description: A sample template
Resources:
  MyEC2Instance:
    Type: AWS::EC2::Instance
    Properties:
      ImageId: ami-0ff8a91507f77f867
      InstanceType: t2.micro
      KeyName: testkey
      BlockDeviceMappings:
        - DeviceName: /dev/sdm
          Ebs:
            VolumeType: io1
            Iops: 200
            DeleteOnTermination: false
            VolumeSize: 20
  MyEIP:
    Type: AWS::EC2::EIP
    Properties:
      InstanceId: !Ref MyEC2Instance
```

#### JSON
<a name="multiple-resources-single-template.json"></a>

```
{
    "AWSTemplateFormatVersion": "2010-09-09",
    "Description": "A sample template",
    "Resources": {
        "MyEC2Instance": {
            "Type": "AWS::EC2::Instance",
            "Properties": {
                "ImageId": "ami-0ff8a91507f77f867",
                "InstanceType": "t2.micro",
                "KeyName": "testkey",
                "BlockDeviceMappings": [
                    {
                        "DeviceName": "/dev/sdm",
                        "Ebs": {
                            "VolumeType": "io1",
                            "Iops": 200,
                            "DeleteOnTermination": false,
                            "VolumeSize": 20
                        }
                    }
                ]
            }
        },
        "MyEIP": {
            "Type": "AWS::EC2::EIP",
            "Properties": {
                "InstanceId": {
                    "Ref": "MyEC2Instance"
                }
            }
        }
    }
}
```

Les modèles précédents sont centrés sur une seule instance Amazon EC2 ; toutefois, les CloudFormation modèles possèdent des fonctionnalités supplémentaires que vous pouvez utiliser pour créer des ensembles complexes de ressources et réutiliser ces modèles dans plusieurs contextes. Par exemple, vous pouvez ajouter des paramètres d'entrée dont les valeurs sont spécifiées lorsque vous créez une CloudFormation pile. En d’autres termes, vous pouvez définir une valeur telle que le type d’instance lorsque vous créez une pile au lieu de lorsque vous créez le modèle, ce qui facilite la réutilisation du modèle dans différentes situations.

### Piles
<a name="cfn-concepts-stacks"></a>

Lorsque vous utilisez CloudFormation, vous gérez les ressources associées en tant qu'unité unique appelée pile. Pour créer, mettre à jour et supprimer un ensemble de ressources, vous créez, mettez à jour et supprimez des piles. Toutes les ressources d'une pile sont définies par le CloudFormation modèle de la pile. Supposons que vous ayez créé un modèle qui inclut un groupe Auto Scaling, un équilibreur de charge Elastic Load Balancing et une instance de base de données Amazon Relational Database Service (Amazon RDS). Pour créer ces ressources, vous créez une pile en soumettant le modèle que vous avez créé et en CloudFormation provisionnant toutes ces ressources pour vous.

### Jeux de modifications
<a name="cfn-concepts-change-sets"></a>

Si vous avez besoin de modifier les ressources en cours d’exécution d’une pile, vous mettez à jour cette dernière. Avant d'apporter des modifications à vos ressources, vous pouvez générer un jeu de modifications, qui représente un résumé de ces modifications. Les jeux de modification vous permettent d'avoir un aperçu de l'impact possible des modifications d'une pile sur les ressources exécutées (y compris les ressources critiques) avant d'appliquer ces modifications.

Par exemple, si vous modifiez le nom d'une instance de base de données Amazon RDS, vous CloudFormation créerez une nouvelle base de données et supprimerez l'ancienne. Vous perdrez les données de l'ancienne base de données, sauf si vous les avez sauvegardées. Si vous générez un jeu de modifications, vous constaterez que votre modification entraînera le remplacement de votre base de données. Dès lors, vous pourrez prendre les mesures nécessaires avant que de mettre à jour la pile. 

## Comment CloudFormation fonctionne
<a name="cfn-whatis-howdoesitwork"></a>

Lorsque vous créez CloudFormation votre stack, CloudFormation vous effectuez des appels de service sous-jacents AWS pour provisionner et configurer les ressources décrites dans votre modèle. Vous devez disposer des autorisations nécessaires pour créer ces ressources. Par exemple, pour créer des instances EC2 à l'aide de CloudFormation, vous devez disposer d'autorisations pour créer des instances. Vous gérez ces autorisations avec [Gestion des identités et des accès AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/) (IAM).

Les appels effectués CloudFormation sont tous déclarés par votre modèle. Par exemple, supposons que votre modèle décrit une instance EC2 avec un type d'instance `t2.micro`. Lorsque vous utilisez ce modèle pour créer une pile, CloudFormation appelez l'API de création d'instance Amazon EC2 et spécifiez le type d'instance en tant que. `t2.micro` Le schéma suivant résume le flux de travail CloudFormation permettant de créer des piles.

![\[Un modèle existant ou nouvellement créé, enregistré localement ou dans un compartiment, utilisé pour créer une pile.\]](http://docs.aws.amazon.com/fr_fr/AWSCloudFormation/latest/UserGuide/images/create-stack-diagram.png)


**Pour créer une pile**

1. Utilisez un éditeur de texte pour créer un CloudFormation modèle au format YAML ou JSON. Le modèle CloudFormation décrit les ressources que vous voulez ainsi que leurs paramètres. Utilisez [Compositeur d'infrastructure](infrastructure-composer-for-cloudformation.md) pour visualiser et valider votre modèle. Cela vous aide à vous assurer que votre modèle est bien structuré et exempt d’erreurs de syntaxe. Pour de plus amples informations, veuillez consulter [Utilisation de CloudFormation modèles](template-guide.md).

1. Enregistrez le modèle localement ou dans un compartiment Amazon S3.

1. Créez une CloudFormation pile en spécifiant l'emplacement de votre fichier modèle, tel qu'un chemin sur votre ordinateur local ou une URL Amazon S3. Si le modèle contient des paramètres, vous pouvez spécifier des valeurs d’entrée lorsque vous créez la pile. Les paramètres vous permettent de transmettre des valeurs à votre modèle afin de permettre la personnalisation des ressources chaque fois que vous créez une pile.
**Note**  
Si vous spécifiez un fichier modèle stocké localement, CloudFormation il est chargé dans un compartiment S3 de votre AWS compte. CloudFormation crée un compartiment pour chaque région dans laquelle vous téléchargez un fichier modèle. Les buckets sont accessibles à toute personne disposant des autorisations Amazon Simple Storage Service (Amazon S3) sur votre compte. AWS Si un bucket créé par CloudFormation est déjà présent, le modèle est ajouté à ce bucket.  
Pour utiliser votre propre compartiment et gérer ses autorisations, vous pouvez importer manuellement les modèles dans Amazon S3. Ensuite, chaque fois que vous créerez ou mettrez à jour une pile, spécifiez l’URL Amazon S3 d’un fichier de modèle.

Une fois que toutes les ressources ont été créées, CloudFormation indique que votre pile a été créée. Vous pouvez ainsi commencer à en utiliser les ressources. Si la création de la pile échoue, CloudFormation restaure vos modifications en supprimant les ressources qu'il a créées.

### Mise à jour d’une pile avec un jeu de modifications
<a name="updating-stack-with-change-sets"></a>

Lorsque vous devez mettre à jour les ressources d’une pile, vous pouvez modifier le modèle correspondant. Vous n’avez pas besoin de créer une autre pile et de supprimer l’ancienne. Pour mettre à jour une pile, créez un ensemble de modifications en soumettant une version modifiée du modèle de pile d'origine, des valeurs de paramètres d'entrée différentes, ou les deux. CloudFormation compare le modèle modifié avec le modèle d'origine et génère un ensemble de modifications. Ce dernier répertorie les modifications proposées. Après avoir passé en revue les modifications, vous pouvez démarrer le jeu de modifications pour mettre à jour la pile ou vous pouvez en créer un autre. Le schéma suivant résume le flux de travail de mise à jour d’une pile.

![\[Modèle utilisant un jeu de modifications pour afficher la valeur modifiée avant d’exécuter le jeu de modifications afin de mettre la pile à jour.\]](http://docs.aws.amazon.com/fr_fr/AWSCloudFormation/latest/UserGuide/images/update-stack-diagram.png)


**Pour mettre à jour une pile avec un jeu de modifications**

1. Vous pouvez modifier un modèle de CloudFormation pile à l'aide [Compositeur d'infrastructure](infrastructure-composer-for-cloudformation.md) d'un éditeur de texte. Pour de plus amples informations, veuillez consulter [Mettre à jour votre modèle de pile](using-cfn-updating-stacks-get-template.md).

   Lorsque vous mettez votre modèle à jour, gardez à l’esprit que certaines mises à jour peuvent provoquer des interruptions. En fonction de la ressource et des propriétés concernées, une mise à jour peut interrompre, voire remplacer, une ressource existante. Pour de plus amples informations, veuillez consulter [Comprendre les comportements de mise à jour des ressources d’une pile](using-cfn-updating-stacks-update-behaviors.md).

1. Enregistrez le CloudFormation modèle localement ou dans un compartiment S3.

1. Pour créer un jeu de modifications, spécifiez la pile que vous souhaitez mettre à jour et l’emplacement du modèle modifié (par exemple, le chemin d’accès sur votre ordinateur local ou une URL Amazon S3). Pour plus d'informations sur la création de jeux de modifications, consultez [Mettre à jour CloudFormation les piles à l'aide d'ensembles de modifications](using-cfn-updating-stacks-changesets.md).
**Note**  
Si vous spécifiez un modèle stocké sur votre ordinateur local, le télécharge CloudFormation automatiquement dans un compartiment S3 de votre Compte AWS.

1. Consultez l'ensemble de modifications pour vérifier qu'il CloudFormation effectuera les modifications attendues. Par exemple, vérifiez si des ressources critiques CloudFormation seront remplacées. Vous pouvez créer autant de jeux de modifications que nécessaire pour inclure toutes les modifications que vous voulez.
**Important**  
Les jeux de modification n’indiquent pas si la mise à jour de la pile réussira. Par exemple, un jeu de modifications ne vérifie pas si vous dépassez un [quota](cloudformation-limits.md) défini dans votre compte, si vous mettez à jour une [ressource](control-access-with-iam.md) non compatible avec ce type de modification ou si vous disposez des autorisations suffisantes pour modifier une ressource, ce qui peut entraîner l’échec de la mise à jour de la pile.

1. Initiez l'ensemble de modifications que vous souhaitez appliquer à votre pile. CloudFormation met à jour votre pile en ne mettant à jour que les ressources que vous avez modifiées et indique que votre pile a été mise à jour avec succès. Si les mises à jour de la pile CloudFormation échouent, annulez les modifications pour rétablir le dernier état de fonctionnement connu de la pile.

## Façons de démarrer avec CloudFormation
<a name="ways-to-get-started"></a>

Pour créer une CloudFormation pile Hello World avec la console, consultez[Création de votre première pile](gettingstarted.walkthrough.md).

Pour un apprentissage guidé, essayez l’atelier [Mise en route avec CloudFormation](https://catalog.us-east-1.prod.workshops.aws/workshops/df7f72cf-4f10-4664-acb6-b30dc8d4bcf0/en-US), qui propose une expérience pratique du développement de modèles.

# S'inscrire à un Compte AWS
<a name="cfn-sign-up-for-aws"></a>

Lorsque vous vous inscrivez AWS, vous êtes automatiquement Compte AWS inscrit à tous les services de AWS, y compris CloudFormation. Si vous en avez Compte AWS déjà un, passez au sujet suivant. Si vous n'en avez pas Compte AWS, utilisez la procédure suivante pour en créer un.

## Inscrivez-vous pour un Compte AWS
<a name="sign-up-for-aws"></a>

Si vous n'en avez pas Compte AWS, procédez comme suit pour en créer un.

**Pour vous inscrire à un Compte AWS**

1. Ouvrez l'[https://portal.aws.amazon.com/billing/inscription.](https://portal.aws.amazon.com/billing/signup)

1. Suivez les instructions en ligne.

   Dans le cadre de la procédure d’inscription, vous recevrez un appel téléphonique ou un SMS et vous saisirez un code de vérification en utilisant le clavier numérique du téléphone.

   Lorsque vous vous inscrivez à un Compte AWS, un *Utilisateur racine d'un compte AWS*est créé. Par défaut, seul l’utilisateur racine a accès à l’ensemble des Services AWS et des ressources de ce compte. La meilleure pratique de sécurité consiste à attribuer un accès administratif à un utilisateur, et à utiliser uniquement l’utilisateur racine pour effectuer les [tâches nécessitant un accès utilisateur racine](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks).

AWS vous envoie un e-mail de confirmation une fois le processus d'inscription terminé. À tout moment, vous pouvez consulter l'activité actuelle de votre compte et gérer votre compte en accédant à [https://aws.amazon.com/](https://aws.amazon.com/)et en choisissant **Mon compte**.

## Création d’un utilisateur doté d’un accès administratif
<a name="create-an-admin"></a>

Une fois que vous vous êtes inscrit à un utilisateur administratif Compte AWS, que vous Utilisateur racine d'un compte AWS l'avez sécurisé AWS IAM Identity Center, que vous l'avez activé et que vous en avez créé un, afin de ne pas utiliser l'utilisateur root pour les tâches quotidiennes.

**Sécurisez votre Utilisateur racine d'un compte AWS**

1.  Connectez-vous en [AWS Management Console](https://console.aws.amazon.com/)tant que propriétaire du compte en choisissant **Utilisateur root** et en saisissant votre adresse Compte AWS e-mail. Sur la page suivante, saisissez votre mot de passe.

   Pour obtenir de l’aide pour vous connecter en utilisant l’utilisateur racine, consultez [Connexion en tant qu’utilisateur racine](https://docs.aws.amazon.com/signin/latest/userguide/console-sign-in-tutorials.html#introduction-to-root-user-sign-in-tutorial) dans le *Guide de l’utilisateur Connexion à AWS *.

1. Activez l’authentification multifactorielle (MFA) pour votre utilisateur racine.

   Pour obtenir des instructions, voir [Activer un périphérique MFA virtuel pour votre utilisateur Compte AWS root (console)](https://docs.aws.amazon.com/IAM/latest/UserGuide/enable-virt-mfa-for-root.html) dans le guide de l'utilisateur *IAM*.

**Création d’un utilisateur doté d’un accès administratif**

1. Activez IAM Identity Center.

   Pour obtenir des instructions, consultez [Activation d’ AWS IAM Identity Center](https://docs.aws.amazon.com//singlesignon/latest/userguide/get-set-up-for-idc.html) dans le *Guide de l’utilisateur AWS IAM Identity Center *.

1. Dans IAM Identity Center, octroyez un accès administratif à un utilisateur.

   Pour un didacticiel sur l'utilisation du Répertoire IAM Identity Center comme source d'identité, voir [Configurer l'accès utilisateur par défaut Répertoire IAM Identity Center](https://docs.aws.amazon.com//singlesignon/latest/userguide/quick-start-default-idc.html) dans le *Guide de AWS IAM Identity Center l'utilisateur*.

**Connexion en tant qu’utilisateur doté d’un accès administratif**
+ Pour vous connecter avec votre utilisateur IAM Identity Center, utilisez l’URL de connexion qui a été envoyée à votre adresse e-mail lorsque vous avez créé l’utilisateur IAM Identity Center.

  Pour obtenir de l'aide pour vous connecter en utilisant un utilisateur d'IAM Identity Center, consultez la section [Connexion au portail AWS d'accès](https://docs.aws.amazon.com/signin/latest/userguide/iam-id-center-sign-in-tutorial.html) dans le *guide de l'Connexion à AWS utilisateur*.

**Attribution d’un accès à d’autres utilisateurs**

1. Dans IAM Identity Center, créez un ensemble d’autorisations qui respecte la bonne pratique consistant à appliquer les autorisations de moindre privilège.

   Pour obtenir des instructions, consultez [Création d’un ensemble d’autorisations](https://docs.aws.amazon.com//singlesignon/latest/userguide/get-started-create-a-permission-set.html) dans le *Guide de l’utilisateur AWS IAM Identity Center *.

1. Attribuez des utilisateurs à un groupe, puis attribuez un accès par authentification unique au groupe.

   Pour obtenir des instructions, consultez [Ajout de groupes](https://docs.aws.amazon.com//singlesignon/latest/userguide/addgroups.html) dans le *Guide de l’utilisateur AWS IAM Identity Center *.

**Note**  
Pour plus d’informations sur la gestion des accès, consultez [Contrôlez CloudFormation l'accès avec Gestion des identités et des accès AWS](control-access-with-iam.md).

# Création de votre première pile
<a name="gettingstarted.walkthrough"></a>

Cette rubrique vous explique comment créer votre première CloudFormation pile à l'aide du AWS Management Console. En suivant ce didacticiel, vous apprendrez à mettre en service des AWS ressources de base, à surveiller les événements liés à la pile et à générer des résultats.

Dans cet exemple, le CloudFormation modèle 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 en apprendrez plus CloudFormation, vous pourrez également rencontrer d'autres modèles au format JSON, mais pour ce didacticiel, 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 êtes nouveau dans ce AWS domaine, vous pouvez profiter du [niveau gratuit](https://aws.amazon.com/free/) pour minimiser ou éliminer les coûts au cours de ce processus d'apprentissage.

**Topics**
+ [

## Conditions préalables
](#getting-started-prerequisites)
+ [

## Création d'une CloudFormation pile avec la console
](#getting-started-create-stack)
+ [

## Surveiller la création de la pile
](#getting-started-monitor-stack-creation)
+ [

## Tester le service Web
](#getting-started-test-web-server)
+ [

## Résolution des problèmes
](#getting-started-troubleshooting)
+ [

## Nettoyage
](#getting-started-clean-up)
+ [

## Étapes suivantes
](#getting-started-next-steps)

## Conditions préalables
<a name="getting-started-prerequisites"></a>
+ Vous devez avoir accès Compte AWS à un utilisateur ou à un rôle IAM autorisé à utiliser Amazon EC2, CloudFormation Amazon S3 et/ou 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éation d'une CloudFormation pile avec la console
<a name="getting-started-create-stack"></a>

**Pour créer une CloudFormation pile Hello World avec la console**

1. Ouvrez la [CloudFormation console](https://console.aws.amazon.com/cloudformation/).

1. Sélectionnez **Créer une pile**.

1. 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 CloudFormation console où vous pouvez télécharger et valider l'exemple de modèle.

1. Pour télécharger et valider le modèle d’exemple, procédez comme suit :

   1. Sélectionnez **Modèles**. Copiez et collez ensuite le CloudFormation modèle 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 URL
      ```

      Avant de passer à l'étape suivante, prenons un moment pour examiner le modèle et comprendre certains CloudFormation concepts clés.
      + Cette section **`Parameters`** dé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).
      + La **`Resources`**section contient les définitions des AWS ressources que vous souhaitez créer avec le 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, `WebServerSecurityGroup` est le nom logique attribué à la ressource du groupe de sécurité EC2. La fonction `Ref` est 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 **`Outputs`** dé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 des informations provenant des ressources de la pile, telles que les identificateurs de ressources ou URLs.
      + 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 fonction `Join` permet de combiner le fixe `http://` avec la variable `PublicDnsName` en une seule chaîne, ce qui facilite la sortie de l’URL complète du serveur Web.

   1. Choisissez **Valider** pour vous assurer que le code YAML est valide avant de télécharger le modèle.

   1. Ensuite, sélectionnez **Créer un modèle** pour créer le modèle et l’ajouter à un compartiment S3.

   1. 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 CloudFormation console où le chemin S3 vers votre modèle est désormais spécifié.

1. Sur la page **Créer une pile** choisissez **Suivant**.

1. 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**.

1. 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 êtes nouveau dans ce AWS domaine, vous pouvez utiliser le niveau gratuit pour lancer et utiliser une `t2.micro` instance gratuitement pendant 12 mois (dans les régions où elle n'`t2.micro`est pas disponible, vous pouvez utiliser une `t3.micro` instance dans le cadre du niveau gratuit).
   + **MyIP** : Spécifiez votre adresse IP publique réelle à l’aide d’un suffixe `/32`. Le suffixe `/32` est 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.

1. 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.

1. 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
<a name="getting-started-monitor-stack-creation"></a>

Après avoir choisi **Soumettre**, CloudFormation commence à créer les ressources spécifiées dans le modèle. Votre nouvelle pile apparaît dans la liste en haut de la **CloudFormation**console. **MyTestStack** 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**

1. Sur la CloudFormation console, choisissez la pile **MyTestStack** dans la liste.

1. 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'`CREATE_IN_PROGRESS`événement est enregistré lorsqu'il CloudFormation est indiqué 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.

Une CloudFormation fois la pile créée avec succès, vous verrez l'événement suivant en haut de l'onglet **Événements** :

`2024-12-23 19:17 UTC-7 MyTestStack CREATE_COMPLETE`

S'il n'est pas CloudFormation possible de créer une ressource, il signale un `CREATE_FAILED` événement et, par défaut, annule la pile et supprime toutes les ressources 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
<a name="getting-started-test-web-server"></a>

Une fois la pile créée avec succès, accédez à l'onglet **Sorties** de la CloudFormation console. 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\$1" 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
<a name="getting-started-troubleshooting"></a>

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
<a name="getting-started-troubleshooting-no-default-vpc"></a>

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](https://docs.aws.amazon.com/vpc/latest/userguide/work-with-default-vpc.html#create-default-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 le sous-réseau. IDs Ajoutez le paramètre suivant au modèle :

  ```
    SubnetId:
      Description: The subnet ID to launch the instance into
      Type: AWS::EC2::Subnet::Id
  ```

  Ensuite, mettez à jour la ressource `WebServer` pour 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.html
  ```

  Lors 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
<a name="getting-started-clean-up"></a>

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**

1. Ouvrez la [CloudFormation console](https://console.aws.amazon.com/cloudformation/).

1. Sur la page **Piles**, sélectionnez l’option à côté du nom de la pile que vous avez créée (**MyTestStack**), puis choisissez **Supprimer**.

1. Lorsque vous êtes invité à confirmer l’opération, choisissez **Supprimer**.

1. Surveillez la progression du processus de suppression de la pile dans l’onglet **Événement**. L'état de **MyTestStack** est remplacé par `DELETE_IN_PROGRESS`. Lorsque la suppression de la pile est CloudFormation terminée, elle supprime la pile 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**

1. Ouvrez la [console Amazon S3](https://console.aws.amazon.com/s3/).

1. Dans le volet de navigation situé sur le côté gauche de la console, choisissez **Compartiments**.

1. Dans la liste **Compartiments**, sélectionnez l’option à côté du nom du compartiment que vous avez créé pour ce didacticiel, puis choisissez **Vider**.

1. Sur la page **Vider le compartiment**, confirmez que vous souhaitez vider le compartiment en saisissant **permanently delete** dans le champ de texte, puis choisissez **Vider**.

1. Surveillez la progression du processus de vidage du compartiment sur la page **Vider le compartiment : état**. 

1. Pour revenir à votre liste de compartiments, choisissez **Quitter**.

1. Sélectionnez l’option en regard du nom du compartiment, puis choisissez **Supprimer**.

1. Lorsque vous êtes invité à confirmer, saisissez le nom du compartiment, puis sélectionnez **Supprimer le compartiment**.

1. 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
<a name="getting-started-next-steps"></a>

Félicitations \$1 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, veuillez consulter [Utilisation de CloudFormation modèles](template-guide.md).
+ Essayez l’atelier [Premiers pas avec CloudFormation](https://catalog.us-east-1.prod.workshops.aws/workshops/df7f72cf-4f10-4664-acb6-b30dc8d4bcf0/en-US) pour vous exercer davantage à la création de modèles.
+ Pour une version abrégée de [Getting Started with CloudFormation](https://catalog.us-east-1.prod.workshops.aws/workshops/df7f72cf-4f10-4664-acb6-b30dc8d4bcf0/en-US), voir[Déploiement d’applications sur Amazon EC2](deploying.applications.md). Cette rubrique décrit le même scénario d'utilisation d'un script CloudFormation d'assistance pour démarrer une instance Amazon EC2. `cfn-init`