Não, não há maneira automatizada. Você terá que criar uma nova AMI começando com o Ubuntu.
É possível converter uma instalação do Unbuntu, mas é muito confuso. É melhor você fazer uma AMI fresca.
Eu personalizei a AMI (suportada pelo EBS) para executar uma versão demo de uma aplicação nossa. (A AMI contém o Ubuntu 11.04 com uma configuração do Tomcat e MySQL para o aplicativo em si, e o Jenkins para atualização fácil de um clique da demonstração).
Esta é uma AMI de 32 bits, o que significa que tenho as seguintes opções de tipo de instância :
Notamos que gostaríamos de um pouco mais de desempenho para o servidor de demonstração do que o que o c1.medium pode oferecer. (Especificamente, suspeito que "Desempenho de E / S: Moderado" possa ser um gargalo, embora não tenha certeza se isso ajudaria, já que usamos o EBS para tudo.)
De qualquer forma, para usar os tipos de instância mais poderosos (por exemplo, "m1.large" ou "c1.xlarge"), eu precisaria de uma AMI de 64 bits .
Uma maneira de fazer isso é criar uma nova instância a partir da AMI do Ubuntu de 64 bits limpa. , em seguida, re-configurar meu sistema lá e, finalmente, salvá-lo como uma nova AMI. Eu poderia montar um volume com a configuração atual e, em seguida, cp -a
algumas coisas para o disco raiz da nova instância, o que ajudaria um pouco. Mas, mesmo assim, essa abordagem pode ser um tanto tediosa e demorada.
Então, minha pergunta é, existe alguma maneira mais fácil e automatizada de converter uma AMI de 32 bits em uma de 64 bits?
Práticas recomendadas:
Sempre que você cria uma AMI (ou mesmo configura uma instância) sempre documenta as etapas exatas que você realizou para instalar e configurar o software e quais dados você colocou nele e onde. Isso tem muitos benefícios, incluindo facilitar a reconstrução da mesma AMI para uma arquitetura diferente.
Melhor ainda, recomendo a criação de scripts para a maioria ou todas as etapas de instalação e configuração, para que você possa automatizar a criação das AMIs. Isso facilita ajustar a configuração e testar novas versões.
Aqui está uma amostra de como eu construo uma AMI do Ubuntu com Git e gitolite instalado para servidores privados de repositório Git:
https://github.com/alestic/alestic-git/blob/master/bin/alestic-git-build-ami
A primeira recomendação acima é para configurar o software que geralmente está no volume raiz. Seus dados devem ser colocados em volumes separados do EBS que você anexa à sua instância depois de executar a AMI. Isso tem muitos benefícios, incluindo a capacidade de mover os dados entre as instâncias, como quando você deseja alternar para a execução de uma nova AMI. Também permite que você faça cópias de seus volumes de dados para anexar a instâncias de desenvolvimento.
Você pode pensar que este conselho é tarde demais para você, mas você está prestes a construir outra AMI, então ...
Você precisará começar com uma nova AMI, mas você pode gerar uma lista de pacotes na imagem antiga usando o dpkg:
dpkg --get-selections | awk '{print $1}' > pkgs.old
Em seguida, use isso na nova imagem para descobrir quais pacotes você precisa instalar:
dpkg --get-selections | awk '{print $1}' | fgrep -v -f - pkgs.old
Então, provavelmente, copiar arquivos de / etc deve levar você até o fim.
E o +1 para criar scripts - você dificilmente define essas coisas uma ou duas vezes - geralmente é muitas vezes. Ter tudo isso automatizado e no controle de origem é crucial.
Tente fazer engenharia reversa na AMI de 32 bits com blueprint:
Salve a saída como um script bash e use o gancho de dados do usuário ao ativar a versão de 64 bits.