EC2 Atualizar minha AMI existente

18

Estou usando o Elastic Load Balancing para equilibrar a carga do meu Auto Scaling Group , pois tenho uma AMI privada que mantém meu servidor de aplicativos (Tomcat) e meu aplicativo da Web implantado como guerra ... Agora tudo funciona bem ... o que se eu precisar alterar minha configuração do tomcat na minha AMI . Isso não exigirá o lançamento da minha AMI -> Login + Alterar configuração do Tomcat -> Criar uma nova AMI -> Excluir AMI antiga Não acho que criar uma nova AMI seja uma solução, pois será necessário atualizar minha Auto Scale Grupo para adicionar minha nova AMI

Existe uma maneira de atualizar os dados na minha AMI existente sem criar uma nova? Eu só quero ter o mesmo ID da AMI

Hadi Salem
fonte

Respostas:

5

Você pode atualizar sua configuração com um script de dados do usuário que é executado quando você inicia sua instância.

O que você coloca no script depende de como você gerencia sua configuração no nível do sistema de arquivos. Pessoalmente, coloquei meus arquivos de configuração em um repositório Mercurial e simplesmente o fiz pullpara atualizá-lo.

David Levesque
fonte
Acho que sua resposta é válida, mas, na minha opinião, é hacky ... Não existe uma maneira de atualizar minha imagem AMI mantendo o mesmo ID da AMI?
Hadi Salem
3
Infelizmente, acho que não é possível. No documento da Amazon: "Um ID da AMI está associado aos bits físicos em uma imagem. Para proteger os usuários das imagens que estão sendo modificadas, solicitamos que você registre novamente novamente as AMIs da instância do Amazon EC2 após a redefinição".
David Levesque 22/09
Não é possível modificar uma imagem AMI existente. Você deve criar um novo.
precisa
A configuração de implantação da IMO usando dados do usuário é mais elegante. As pessoas também estão inclinadas a instalar serviços na criação da instância. Você também pode querer usar um modelo do CloudFormation.
Edwin
Acho que vou usar o BeanStalk com uma AMI personalizada, isso facilitará minha vida, não será necessário configurar um balanceador de carga com dimensionamento automático e, caso precise alterar a configuração do servidor, criarei meu próprio script .. Obrigado a todos
Hadi Salem
3

Não é possível atualizar uma AMI existente e manter o mesmo ID da AMI. Você precisará criar uma nova AMI personalizada e atualizar sua configuração de inicialização para o grupo Auto Scaling ou alterar sua configuração para aplicar alterações à instância depois de iniciar uma instância da AMI base, como sugere @DavidLevesque.

É uma arquitetura comum fazer o download de aplicativos, configurações e dados do, digamos, S3 no lançamento.

Eric Hammond
fonte
+1 para a nota sobre a arquitetura tid-bit
Jmoney38
0

Parece um post antigo. No entanto, caso você ainda esteja na mesma situação, considere usar uma AMI do Windows (Instante em Tarefa) suportada por armazenamento de instância . Também é semelhante a uma AMI, mas você tem mais controle sobre a própria imagem, já que praticamente cria a própria imagem e a armazena em um bucket S3. Isso permitirá que você atualize a imagem subjacente da sua AMI de vez em quando quando precisar, sem precisar criar uma nova AMI (pelo menos é assim que eu a entendo).

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

Rio Bautista
fonte
FYI ... "As únicas AMIs do Windows que podem ser suportadas pelo armazenamento de instâncias são as do Windows Server 2003. As instâncias suportadas pelo armazenamento de instância não têm o espaço em disco disponível necessário para versões posteriores do Windows Server."
9136 Rich C #