

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.

# Utilisation d'une image machine Amazon (AMI) personnalisée dans votre environnement Elastic Beanstalk
<a name="using-features.customenv"></a>

Cette section explique dans quels cas envisager d'utiliser une AMI personnalisée et fournit les procédures de configuration et de gestion de l'AMI personnalisée dans votre environnement. Lorsque vous créez un AWS Elastic Beanstalk environnement, vous pouvez spécifier une Amazon Machine Image (AMI) à utiliser à la place de l'AMI Elastic Beanstalk standard incluse dans la version de votre plateforme. Une AMI personnalisée peut améliorer les délais de provisionnement lorsque des instances sont lancées dans votre environnement si vous devez installer un grand nombre de logiciels non inclus dans la norme AMIs.

L'utilisation de [fichiers de configuration](ebextensions.md) est efficace pour personnaliser votre environnement rapidement et de manière cohérente. Cependant, l'application des configurations peut commencer à prendre beaucoup de temps lors de la création et des mises à jour de l'environnement. Si vous passez beaucoup de temps sur la configuration serveur dans les fichiers de configuration, vous pouvez résoudre le problème en créant une AMI personnalisée qui dispose déjà du logiciel et de la configuration dont vous avez besoin.

En outre, une AMI personnalisée vous permet d'apporter des modifications aux composants de bas niveau, tels que le noyau Linux, qui sont difficiles à mettre en œuvre et dont l'application dans les fichiers de configuration prend beaucoup de temps. Pour créer une AMI personnalisée, lancez une AMI de plateforme Elastic Beanstalk dans Amazon EC2, personnalisez le logiciel et la configuration selon vos besoins, puis arrêtez l'instance et enregistrez une AMI à partir de cette dernière.

## Création d'une AMI personnalisée
<a name="using-features.customenv.create"></a>

Vous pouvez utiliser [EC2 Image](https://aws.amazon.com/image-builder) Builder pour créer et gérer des fichiers AMIs personnalisés comme alternative à ces procédures. Pour plus d'informations, consultez le [guide de l'utilisateur d'Image Builder](https://docs.aws.amazon.com/imagebuilder/latest/userguide/what-is-image-builder.html).

**Pour identifier l'AMI Elastic Beanstalk de base**

1. Dans une fenêtre de commande, exécutez une commande similaire à celle-ci. Pour plus d’informations, consultez [describe-platform-version](https://docs.aws.amazon.com/cli/latest/reference/elasticbeanstalk/describe-platform-version.html) dans la *Référence des commandes de l’AWS CLI *. 

   Spécifiez la AWS région dans laquelle vous souhaitez utiliser votre AMI personnalisée et remplacez l'ARN et le numéro de version de la plateforme par la plateforme Elastic Beanstalk sur laquelle repose votre application.

     
**Example - Système d'exploitation Mac / Linux**  

   ```
   $ aws elasticbeanstalk describe-platform-version --region {{us-east-2}} \
         --platform-arn "arn:aws:elasticbeanstalk:{{us-east-2}}::platform/{{Node.js 20 running on 64bit Amazon Linux 2023}}/{{6.1.7}}" \
         --query PlatformDescription.CustomAmiList
   [
       {
           "VirtualizationType": "pv",
           "ImageId": ""
       },
       {
           "VirtualizationType": "hvm",
           "ImageId": "{{ami-020ae06fdda6a0f66}}"
       }
   ]
   ```  
**Example - Système d'exploitation Windows**  

   ```
   C:\> aws elasticbeanstalk describe-platform-version --region {{us-east-2}} --platform-arn"arn:aws:elasticbeanstalk:{{us-east-2}}::platform/{{
   IIS 10.0 running on 64bit Windows Server 2022}}/{{2.15.3}}" --query PlatformDescription.CustomAmiList
   [
       {
           "VirtualizationType": "pv",
           "ImageId": ""
       },
       {
           "VirtualizationType": "hvm",
           "ImageId": "{{ami-020ae06fdda6a0f66}}"
       }
   ]
   ```

1. Notez la valeur `ImageId` qui ressemble à `ami-020ae06fdda6a0f66` dans le résultat.

La valeur est l'AMI Elastic Beanstalk standard correspondant à la version de plateforme, à l'architecture AWS de l'instance EC2 et à la région pertinentes pour votre application. Si vous devez créer AMIs pour plusieurs plateformes, architectures ou AWS régions, répétez ce processus pour identifier l'AMI de base appropriée pour chaque combinaison.

**Note**  
Ne créez pas d'AMI à partir d'une instance qui a été lancée dans un environnement Elastic Beanstalk. Elastic Beanstalk apporte des modifications aux instances au cours de la mise en service, ce qui peut générer des problèmes dans l'AMI enregistrée. En outre, si vous enregistrez une image à partir d'une instance d'un environnement Elastic Beanstalk, la version de votre application ayant été déployée dans l'instance sera transformée en partie fixe de l'image.

Pour Linux, vous pouvez également créer une AMI personnalisée à partir d'une AMI de la communauté qui n'a pas été publiée par Elastic Beanstalk. Vous pouvez utiliser la dernière AMI [Linux Amazon](https://aws.amazon.com/amazon-linux-ami/) comme point de départ. Lorsque vous lancez un environnement avec une AMI Linux non gérée par Elastic Beanstalk, Elastic Beanstalk tente d'installer des logiciels de plateforme (langage, cadre, serveur proxy, etc.) et des composants supplémentaires pour prendre en charge des fonctionnalités telles que les [rapports sur l'état amélioré](health-enhanced.md). 

**Note**  
La personnalisation AMIs basée sur Windows Server nécessite le `describe-platform-version` retour de l'AMI Elastic Beanstalk d'origine, comme indiqué précédemment à l'étape 1.

Bien qu'Elastic Beanstalk puisse utiliser une AMI qui n'est pas gérée par Elastic Beanstalk, l'augmentation du temps de mise en service résultant de l'installation de composants manquants par Elastic Beanstalk peut réduire ou éliminer les avantages de la création d'une AMI personnalisée. D'autres distributions Linux peuvent fonctionner, avec des solutions de dépannage, mais elles ne sont pas officiellement prises en charge. Si votre application nécessite une distribution Linux spécifique, une alternative consiste à créer une image Docker et à l'exécuter sur la [plateforme Docker](docker.md) ou la [plateforme Docker multi-conteneurs](create_deploy_docker_ecs.md) d'Elastic Beanstalk.

**Pour créer une AMI personnalisée**

1. Ouvrez la console Amazon EC2 à l’adresse [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Choisissez **Launch Instances** (Lancer les instances).

1. Si vous avez identifié une AMI Elastic Beanstalk de base (en utilisant `describe-platform-version`) ou une AMI Amazon Linux, entrez son ID dans la zone de recherche. Appuyez ensuite sur **Entrée**.

   Vous pouvez également explorer la liste d'une autre AMI de communauté qui répond à vos besoins.
**Note**  
Nous vous recommandons de choisir une AMI qui utilise la virtualisation HVM. Ils AMIs indiquent le **type de virtualisation : hvm** dans leur description.  
Pour plus d'informations, consultez [la section Types de virtualisation](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ComponentsAMIs.html#virtualization_types) dans le guide de l'*utilisateur Amazon EC2*.

1. Choisissez **Sélectionner** pour sélectionner l'AMI.

1. Sélectionnez un type d'instance, puis choisissez **Suivant : Configurer les détails de l'instance**.

1. **(Pour les plateformes Amazon Linux AMI (AL1) retirées)** Ignorez cette étape si votre environnement s'exécute sur une plate-forme Linux prise en charge ou sur une plate-forme Windows.

   Développez la section **Détails avancés** et collez le texte suivant dans le champ **Données utilisateur**.

   ```
   #cloud-config
     repo_releasever: {{repository version number}}
     repo_upgrade: none
   ```

   Le *numéro de version du référentiel* correspond à l'année et au mois de la version dans le nom de l'AMI. Par exemple, sur la AMIs base de la version de mars 2015 d'Amazon, Linux possède un numéro de version du référentiel`2015.03`. Pour une image Elastic Beanstalk, cela correspond à la date indiquée dans le nom de la pile de solution pour votre [version de plateforme](concepts.platforms.md) basée sur l'AMI Amazon Linux (antérieure à Amazon Linux 2).
**Note**  
Le `repo_releasever` paramètre configure la lock-on-launch fonctionnalité d'une AMI Amazon Linux. L'AMI utilise alors une version de référentiel fixe et spécifique lors de son lancement. Cette fonctionnalité n'est pas prise en charge sur Amazon Linux 2. Ne la spécifiez pas si votre environnement utilise une branche de plateforme Amazon Linux 2 actuelle. Ce paramètre est requis si vous utilisez une AMI personnalisée avec Elastic Beanstalk uniquement sur les branches de plateforme AMI Amazon Linux (antérieure à Amazon Linux 2).  
Ce paramètre `repo_upgrade` désactive l'installation automatique des mises à jour de sécurité. Il est nécessaire d'utiliser une AMI personnalisée avec Elastic Beanstalk.

1. Suivez les étapes de l'assistant pour [lancer l'instance EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/launching-an-instance.html). Lorsque vous y êtes invité, sélectionnez une paire de clés à laquelle vous avez accès afin de pouvoir vous connecter à l'instance pour suivre les prochaines étapes.

1.  [Connectez-vous à l'instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstances.html) avec SSH ou RDP.

1. Effectuez toutes les personnalisations de votre choix.

1. **(Plateformes Windows)** Exécutez le service EC2 Config Sysprep. Pour plus d'informations sur EC2 Config, consultez [Configuration d'une instance Windows à l'aide du service EC2 Config](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/UsingConfig_WinAMI.html). Assurez-vous que Sysprep est configuré pour générer un mot de passe aléatoire pouvant être extrait de AWS Management Console.

1. Dans la console Amazon EC2, arrêtez l'instance EC2. Ensuite, dans le menu **Instance Actions (Actions d'instance)**, choisissez **Créer l'image (EBS AMI)**.

1. Pour éviter d'encourir des AWS frais supplémentaires, [mettez fin à l'instance EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html).

**Pour utiliser votre AMI personnalisée dans un environnement Elastic Beanstalk**

1. Ouvrez la console [Elastic Beanstalk](https://console.aws.amazon.com/elasticbeanstalk), puis **dans la liste des régions, sélectionnez votre**. Région AWS

1. Dans le panneau de navigation, choisissez **Environments** (Environnements), puis choisissez le nom de votre environnement dans la liste.

1. Dans le panneau de navigation, choisissez **Configuration**.

1. Dans la catégorie de configuration **Capacity** (Capacité), choisissez **Edit** (Modifier).

1. Pour l'**ID d’AMI**, entrez votre ID d’AMI personnalisé.

1. Pour enregistrer les modifications, cliquez sur **Appliquer** en bas de la page.

Lorsque vous créez un nouvel environnement avec l'AMI personnalisée, vous devez utiliser la même version de plateforme que celle utilisée comme base pour créer l'AMI. 

## Gestion d'un environnement à l'aide d'une AMI personnalisée
<a name="using-features.customenv.managing"></a>

### Mises à jour de plateforme
<a name="using-features.customenv.platform-updates."></a>

Lors de l'utilisation d'une AMI personnalisée, Elastic Beanstalk continuera à utiliser la même AMI personnalisée dans un environnement lorsque la version de sa plate-forme est mise à jour, que la mise à jour soit appliquée manuellement ou via des mises à jour de plate-forme gérées. L'environnement **ne sera pas** réinitialisé pour utiliser l'AMI d'origine de la nouvelle version de la plateforme.

Nous vous recommandons de créer une nouvelle AMI personnalisée basée sur l'AMI standard de la nouvelle version de la plateforme. Cela permettra d'appliquer les correctifs disponibles dans la nouvelle version de la plateforme et de minimiser les échecs de déploiement dus à des versions de packages ou de bibliothèques incompatibles.

Pour plus d'informations sur la création d'une nouvelle AMI personnalisée, consultez la section [Création d'une AMI personnalisée](#using-features.customenv.create) précédente de cette rubrique.

### Supprimer une AMI personnalisée
<a name="using-features.customenv.platform-updates."></a>

Si vous souhaitez supprimer une AMI personnalisée d'un environnement et la réinitialiser pour qu'elle utilise l'AMI de base correspondant à la version de plate-forme de l'environnement, utilisez la commande CLI suivante.

```
aws elasticbeanstalk update-environment \
  --application-name {{my-application}} \
  --environment-name {{my-environment}} \
  --region {{us-east-1 }}\
  --options-to-remove Namespace=aws:autoscaling:launchconfiguration,OptionName=ImageId
```

**Note**  
Pour éviter toute interruption de service, testez votre application avec une AMI standard avant d'appliquer cette modification à votre environnement de production.

## Nettoyage d'une AMI personnalisée
<a name="using-features.customenv.cleanup"></a>

Lorsque vous avez fini d'utiliser une AMI personnalisée et que vous n'en avez plus besoin pour lancer des environnements Elastic Beanstalk, nettoyez-la afin de réduire les coûts de stockage. Le nettoyage d'une AMI personnalisée implique l'annulation de son enregistrement dans Amazon EC2 et la suppression des autres ressources associées. Pour de plus amples informations, veuillez consulter [Annulation de l'inscription de votre AMI Linux](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/deregister-ami.html) ou [Annuler l'inscription de votre AMI Windows](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/deregister-ami.html).