EC2 Mettre à jour mon AMI existante

18

J'utilise Elastic Load Balancing pour équilibrer la charge de mon groupe Auto Scaling , car j'ai une AMI privée qui contient mon serveur d'applications (Tomcat) et mon application Web déployée comme guerre ... Maintenant, tout fonctionne bien ... quoi si je dois changer ma configuration tomcat sur mon AMI . Cela ne nécessitera pas le lancement de mon AMI -> Connexion + Changer la configuration Tomcat -> Créer une nouvelle AMI -> Supprimer l'ancienne AMI Je ne pense pas que la création d'une nouvelle AMI soit une solution car elle nécessitera la mise à jour de mon échelle automatique Groupe pour ajouter ma nouvelle AMI

Existe-t-il un moyen de mettre à jour les données dans mon AMI existante sans en créer une nouvelle? Je veux juste avoir le même ID AMI

Hadi Salem
la source

Réponses:

5

Vous pouvez mettre à jour votre configuration avec un script de données utilisateur qui est exécuté lorsque vous lancez votre instance.

Ce que vous mettez dans le script dépend de la façon dont vous gérez votre configuration au niveau du système de fichiers. J'ai personnellement mis mes fichiers de configuration dans un dépôt Mercurial et je fais simplement une pullmise à jour.

David Levesque
la source
Je pense que votre réponse est valide, mais à mon avis, elle est hacky ... N'y a-t-il pas un moyen de simplement mettre à jour mon image AMI en conservant le même ID AMI?
Hadi Salem
3
Malheureusement, je ne pense pas que ce soit possible. D'après Amazon doc: "Un ID AMI est associé aux bits physiques d'une image. Pour protéger les utilisateurs des images en cours de modification, nous vous demandons de réenregistrer les AMI d'instance Amazon EC2 après le regroupement."
David Levesque
Il n'est pas possible de modifier une image AMI existante. Vous devez en créer un nouveau.
Matt Houser
IMO déployant la configuration utilisant des données d'utilisateur est plus élégant. Les gens penchent également pour l'installation de services lors de la création d'instances. Vous pouvez également envisager d'utiliser un modèle CloudFormation.
Edwin
Je pense que j'utiliserai BeanStalk avec une AMI personnalisée, cela me facilitera la vie, pas besoin de configurer un équilibreur de charge avec mise à l'échelle automatique, et au cas où je devrais changer la configuration de mon serveur, je créerai mon propre script .. Merci à tous
Hadi Salem
3

Il n'est pas possible de mettre à jour une AMI existante et de conserver le même ID AMI. Vous devrez soit créer une nouvelle AMI personnalisée et mettre à jour votre configuration de lancement pour le groupe Auto Scaling, soit modifier votre configuration pour appliquer des modifications à l'instance après avoir lancé une instance de l'AMI de base comme le suggère @DavidLevesque.

Il s'agit d'une architecture courante pour télécharger l'application, la configuration et les données de, disons, S3 au lancement.

Eric Hammond
la source
+1 pour la note sur l'architecture tid-bit
Jmoney38
0

Cela ressemble à un ancien poste. Mais au cas où vous seriez toujours dans la même situation, vous pouvez envisager d'utiliser une AMI Windows basée sur le magasin d'instances (tâche groupée). Il est également similaire à une AMI, mais vous avez plus de contrôle sur l'image elle-même puisque vous créez pratiquement l'image elle-même et la stockez sur un compartiment S3. Cela vous permettra de mettre à jour l'image sous-jacente de votre AMI de temps en temps lorsque vous en aurez besoin sans avoir à créer une nouvelle AMI (du moins c'est ainsi que je la comprends).

https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/Creating_InstanceStoreBacked_WinAMI.html?icmpid=docs_ec2_console

Rio Bautista
la source
Pour info ... "Les seules AMI Windows qui peuvent être soutenues par le magasin d'instances sont celles de Windows Server 2003. Les instances soutenues par le magasin d'instances n'ont pas l'espace disque disponible requis pour les versions ultérieures de Windows Server."
Rich C