Como atualizar para a última AMI no AWS Elastic Beanstalk?

17

Estou executando um aplicativo no AWS Elastic Beanstalk e parece que preciso criar um novo ambiente se quiser usar a última AMI.

Se eu soubesse qual era o ID da última AMI, poderia atualizá-lo na configuração do ambiente.

Existe um lugar onde eu poderia encontrar o ID das últimas AMIs do Elastic Beanstalk, ou melhor, é possível ter as instâncias automaticamente substituídas pela nova versão sempre que uma nova versão é lançada?

    
por Benjamin 01.04.2013 / 18:44

6 respostas

1

A maneira recomendada e com suporte para atualizar seu ambiente do AWS Beanstalk está documentada aqui e as atualizações da plataforma gerenciada são discutidas aqui Sinceramente, eu manteria isso se você quiser que as coisas sejam fáceis (e é sobre isso que o Beanstalk é), você teoricamente só receberá as atualizações sem interrupções e a AWS gerenciará o processo para que não haja tempo de inatividade.

Por isso, quero apenas reiterar que as atualizações da plataforma gerenciada provavelmente são o que você ou qualquer outra pessoa vindo do Google desejará, mas se você quiser saber a última AMI fornecida pela AWS para seu ambiente Beanstalk, isso pode ser feito de forma bastante trivial com a AWS CLI (graças a convenções de nomenclatura sãs da Amazon em suas AMIs).

Começando com uma instância do seu ambiente, descreva a instância para obter a AMI atual (pule se você já conhece a AMI atual).

aws ec2 describe-instances --instance-ids i-0909613f35ec0ffee --query 'Reservations[*].Instances[*].ImageId' --output text

ami-35290a56

Pegue o ID da AMI resultante e descreva-o.

aws ec2 describe-images --image-ids ami-35290a56 --query 'Images[*][Architecture, Hypervisor, Name, RootDeviceType, VirtualizationType]' --output json

[
    [
        "x86_64",
        "xen",
        "aws-elasticbeanstalk-amzn-2016.03.0.x86_64-python34-hvm-201603290718",
        "ebs",
        "hvm"
    ]
]

Podemos usar a saída dos itens acima como entrada para um novo% classificadodescribe-images, mas desta vez substituímos os carimbos de data / hora por * de caracteres curinga, da seguinte forma:

aws ec2 describe-images --filters 'Name=architecture,Values=x86_64' 'Name=virtualization-type,Values=hvm' 'Name=owner-alias,Values=amazon' 'Name=name,Values=aws-elasticbeanstalk-amzn-*.x86_64-python34-hvm-*' --query 'sort_by(Images[*], &Name)[-1].ImageId' --output text

ami-1be5de78

Devido ao poder da classificação lexical e ISO 8601, acabamos com a última AMI, que no meu exemplo é ami-1be5de78 .

aws ec2 describe-images --image-ids ami-1be5de78 --query 'Images[*].Name' --output text

aws-elasticbeanstalk-amzn-2016.09.0.x86_64-python34-hvm-201612200708

Mais uma vez, eu não recomendo que você tente mudar para essa AMI manualmente, o Beanstalk tem provisões para fazer tudo isso por você!

    
por 18.01.2017 / 12:39
0

Parece que, mesmo que você altere a AMI, use um AMI ElasticBeanstalk adequado. Não parece funcionar corretamente. Perde todos os arquivos. Não funciona direito.

Acho que você precisa iniciar um novo ambiente do Elastic Beanstalk que tenha a AMI atualizada. Faça tudo funcionar, então troque os URLs do ambiente.

    
por 11.01.2014 / 22:26
0

Você pode usar os recursos de atualizações gerenciadas fornecidos com eb, mas terá que pagar por relatórios de integridade aprimorados para fazer isso. Ou use o comando 'eb platform show'; Em um aplicativo de trabalho tem um cron que é executado CURRENT = eb platform show your_env_name | sed -n '5p' | cut -d: -f2- | tr -d '[[:space:]]' LATEST = eb platform show your_env_name | sed -n '6p' | cut -d: -f2- | tr -d '[[:space:]]'  - Em seguida, compare-os e, se diferente, você pode usar o eb clone (o padrão é a nova versão) e depois o cname swap.

    
por 07.06.2016 / 16:43
0

Navegando até o painel do seu aplicativo, localize 'Configuração' e clique em 'Alterar'

Você deve ver uma lista onde você pode escolher uma plataforma. A versão mais recente é indicada nessa lista. Selecionando a plataforma

O AWS EB usa configurações específicas para diferentes linguagens de programação. Você pode encontrar uma lista das configurações na documentação link

Há tabelas mostrando a você qual versão da AMI cada plataforma usa.

Não encontrei uma maneira de executar essas atualizações automaticamente. Na verdade, prefiro revisar as alterações da plataforma e testá-las antes de implantá-las.

    
por 14.07.2016 / 09:15
0

Selecione seu serviço no Elastic Beanstalk, Você verá a visão geral no Dashboard, No lado direito do painel, você pode ver a configuração da sua AMI, Selecione Alterar atualização ou degradar sua AMI. Neste ponto, você irá substituir sua instância. Então faça o backup ou clone.

    
por 31.08.2016 / 07:39
-2

Consegui atualizar meu aplicativo atual hospedado no Beanstalk para o Amazon Linux AMI mais recente usando as etapas abaixo.

1- Faça o login no AWS Console e navegue até o portal do Beanstalk.

2- Navegue até a página de configuração do seu aplicativo e clique em 'Instances'.

3- Localize o ID da AMI como deveria ser AMI-xxxxxx.

4- Pegue o ID da AMI e volte para o console do EC2 e clique na AMI.

5- Altere a visualização para Public Images e procure a ID da AMI que recupere anteriormente da configuração do Beanstalk.

6- Lançar essa AMI como uma nova instância.

7- Depois de iniciado, faça o login na instância e personalize de acordo com os requisitos das suas aplicações.

8- Uma vez que você tenha satisfeito tudo no lugar como gostaria que fosse, crie uma imagem AMI desta nova instância.

9- Pegue o novo ID de AMI de instância que foi criado na etapa 8 e aplique-o à sua configuração de aplicativo do Beanstalk.

10- Ele não excluirá a instância antiga e criará a nova instância com a personalização da sua AMI e também implantará seu aplicativo mais recente nas novas instâncias.

    
por 28.03.2014 / 20:36