7 votes

Un moyen simple de convertir une AMI 32 bits personnalisée en une AMI 64 bits ?

J'ai personnalisé (EBS-backed) AMI pour exécuter une version de démonstration d'une de nos applications. (L'AMI contient Ubuntu 11.04 avec une configuration Tomcat & MySQL pour l'application elle-même, et Jenkins pour une mise à jour facile en un clic de la démo).

Il s'agit d'une AMI 32 bits, ce qui signifie que je dispose des éléments suivants options de type d'instance :

  • Micro (t1.micro)
  • Petit (m1.small)
  • Moyenne à forte CPU (c1.medium)

Nous avons remarqué que nous aimerions avoir un peu plus de performances pour le serveur de démonstration que ce que c1.medium peut offrir. (Plus précisément, je soupçonne que "I/O Performance : Modérée" pourrait être un goulot d'étranglement, bien que je ne sois pas sûr que l'amélioration de cela aiderait étant donné que nous utilisons EBS pour tout).

Quoi qu'il en soit, afin d'utiliser les types d'instance les plus puissants (par exemple "m1.large" ou "c1.xlarge"), J'aurais besoin d'une AMI 64 bits .

Une façon de procéder est de créer une nouvelle instance à partir d'une version 64 bits propre. AMI Ubuntu Ensuite, j'y réinstalle mon système, et enfin je l'enregistre comme une nouvelle AMI. Je pourrais monter un volume avec la configuration actuelle, et ensuite cp -a quelques trucs sur le disque racine de la nouvelle instance, ce qui aiderait un peu. Mais même ainsi, cette approche peut être quelque peu fastidieuse et prendre du temps.

Donc, ma question est, Existe-t-il un moyen plus simple et automatisé de convertir une AMI 32 bits en une AMI 64 bits ?

14voto

codewise Points 436

Les meilleures pratiques :

  1. Chaque fois que vous créez une AMI (ou même que vous configurez une instance), documentez toujours les étapes exactes que vous avez suivies pour installer et configurer le logiciel, ainsi que les données que vous y avez placées et leur emplacement. Cela présente de nombreux avantages, notamment celui de faciliter la reconstruction de la même AMI pour une architecture différente.

    Mieux encore, je recommande d'écrire des scripts pour la plupart ou la totalité des étapes d'installation et de configuration afin d'automatiser la création des AMI. Cela permet de modifier facilement la configuration et de tester les nouvelles versions.

    Voici un exemple de la façon dont je construis une AMI Ubuntu avec Git et gitolite installés pour les serveurs de dépôts Git privés :

    https://github.com/alestic/alestic-git/blob/master/bin/alestic-git-build-ami

  2. La première recommandation ci-dessus concerne la configuration du logiciel, qui se trouve généralement sur le volume racine. Vos données doivent être placées sur un ou plusieurs volumes EBS séparés que vous attachez à votre instance après avoir exécuté l'AMI. Cela présente de nombreux avantages, notamment la possibilité de déplacer les données entre les instances, par exemple lorsque vous souhaitez passer à l'exécution d'une nouvelle AMI. Cela vous permet également de faire des copies de vos volumes de données pour les attacher à des instances de développement.

Vous pensez peut-être que ce conseil arrive trop tard pour vous, mais vous êtes sur le point de construire un autre AMI, alors...

7voto

Bart De Vos Points 17611

Non, il n'y a pas de moyen automatisé. Vous devrez créer une nouvelle AMI en commençant par celle d'Ubuntu-plain.

Il est possible de convertir une installation Unbuntu, mais c'est très compliqué. Il est préférable de créer une nouvelle AMI.

5voto

Filox Points 281

Vous devrez commencer avec une nouvelle AMI je crois, mais vous pouvez générer une liste de paquets sur l'ancienne image en utilisant dpkg :

dpkg --get-selections | awk '{print $1}' > pkgs.old

Utilisez ensuite cette image pour déterminer les paquets que vous devez installer :

dpkg --get-selections | awk '{print $1}' | fgrep -v -f - pkgs.old

Ensuite, copier les fichiers de /etc devrait vous permettre d'atteindre la plupart des objectifs.

Et +1 pour la création de scripts - vous ne configurez presque jamais ces choses une ou deux fois - c'est généralement plusieurs fois. Avoir tout cela automatisé et dans le contrôle de source est crucial.

3voto

MartinUbuntu Points 111

Essayez de faire une rétro-ingénierie de l'AMI 32bit avec blueprint :

https://github.com/devstructure/blueprint

Sauvegardez la sortie comme un bash script et utilisez le crochet de données utilisateur lorsque vous lancez la version 64 bits.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X