Utilisation d'une Amazon Machine Image (AMI) personnalisée - AWS Elastic Beanstalk

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 Amazon Machine Image (AMI) personnalisée

Lorsque vous créez un environnement AWS Elastic Beanstalk, vous pouvez spécifier une Amazon Machine Image (AMI) à utiliser à la place de l'AMI Elastic Beanstalk standard incluse dans votre version de plateforme. Une AMI personnalisée peut améliorer le temps de mise en service lorsque les instances sont lancées dans votre environnement, si vous avez besoin d'installer de nombreux logiciels qui ne sont pas inclus dans les AMI standards.

Nous vous recommandons d'utiliser des fichiers de configuration pour configurer et personnaliser votre environnement rapidement et assurer la cohérence. Toutefois, l'application de configurations peut 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

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 la section describe-platform-version du Guide de référence des commandes de l'AWS CLI.

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

    Exemple - Système d'exploitation Mac / Linux
    $ aws elasticbeanstalk describe-platform-version --region us-east-2 \ --platform-arn "arn:aws:elasticbeanstalk:us-east-2::platform/Tomcat 8.5 with Java 8 running on 64bit Amazon Linux/3.1.6" \ --query PlatformDescription.CustomAmiList [ { "VirtualizationType": "pv", "ImageId": "" }, { "VirtualizationType": "hvm", "ImageId": "ami-020ae06fdda6a0f66" } ]
    Exemple - 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 2019/2.6.4" --query PlatformDescription.CustomAmiList [ { "VirtualizationType": "pv", "ImageId": "" }, { "VirtualizationType": "hvm", "ImageId": "ami-020ae06fdda6a0f66" } ]
  2. Notez la valeur ImageId qui ressemble à ami-020ae06fdda6a0f66 dans le résultat.

La valeur est l'AMI Elastic Beanstalk standard pour la version de plateforme, l'architecture de l'instance EC2 et la région AWS qui s'avèrent pertinentes pour votre application. Si vous souhaitez créer des AMI pour plusieurs plateformes, architectures ou régions AWS, répétez la procédure afin d'identifier l'AMI de base appropriée pour chaque combinaison.

Remarques
  • 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.

  • Nous vous recommandons de toujours utiliser la dernière version de la plateforme. Lorsque vous effectuez une mise à jour vers une nouvelle version de plateforme, nous vous recommandons également de rebaser votre AMI personnalisée vers l'AMI de la nouvelle version de plateforme. Cela réduit les échecs de déploiement dus à des versions de package ou de bibliothèque incompatibles.

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

Note

Les AMI personnalisées basées sur Windows Server nécessitent l'AMI Elastic Beanstalk standard renvoyée par describe-platform-version, 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 ou la plateforme Docker multi-conteneurs d'Elastic Beanstalk.

Pour créer une AMI personnalisée
  1. Ouvrez la console Amazon EC2 sur https://console.aws.amazon.com/ec2/.

  2. Choisissez Launch Instances (Lancer les instances).

  3. Choisissez AMI de la communauté.

  4. 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. Ces AMI indiquent Type de virtualisation : hvm dans leur description.

    
              AMI avec le type de virtualisation HVM répertorié sur la console EC2

    Pour plus d'informations sur les types de virtualisation d'instance, consultez la section Types de virtualisation d'AMI Linux du Guide de l'utilisateur Amazon EC2 pour les instances Linux ou la section Types de virtualisation d'AMI Windows du Guide de l'utilisateur Amazon EC2 pour les instances Windows.

  5. Choisissez Sélectionner pour sélectionner l'AMI.

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

  7. (Pour les plateformes Linux) Développez la section Advanced Details (Détails avancés) et saisissez le texte suivant dans le champ User Data (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, les AMI basées sur la version de mars 2015 d'Amazon Linux comportent le numéro de version de référentiel suivant : 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 basée sur l'AMI Amazon Linux (antérieure à Amazon Linux 2).

    Note

    Ce paramètre repo_releasever configure la fonction de verrouillage au lancement 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.

  8. Suivez les étapes de l'assistant pour lancer l'instance EC2. 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.

  9. Connectez-vous à l'instance avec SSH ou RDP.

  10. Effectuez toutes les personnalisations de votre choix.

  11. (Plateformes Windows) Exécutez Sysprep avec le service EC2Config. Pour de plus amples informations sur EC2Config, veuillez consulter Configuration d'une instance Windows à l'aide du service EC2Config. Assurez-vous que Sysprep est configuré pour générer un mot de passe aléatoire pouvant être extrait de AWS Management Console.

  12. 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).

  13. Pour éviter de payer des frais AWS supplémentaires, arrêtez l'instance EC2.

Pour utiliser votre AMI personnalisée dans un environnement Elastic Beanstalk
  1. Ouvrez la console Elastic Beanstalk et, dans la liste Regions (Régions), sélectionnez votre Région AWS.

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

    Note

    Si vous avez plusieurs environnements, utilisez la barre de recherche pour filtrer la liste des environnements.

  3. Dans le panneau de navigation, choisissez Configuration.

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

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

  6. 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. Si vous appliquez ultérieurement une mise à jour de plateforme à un environnement à l'aide d'une AMI personnalisée, Elastic Beanstalk tente d'appliquer les mises à jour de configuration et des bibliothèques pendant le processus d'action d'amorçage.

Nettoyage d'une AMI personnalisée

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 ou Annuler l'inscription de votre AMI Windows.