2
respostas

Dúvida sobre atualização de AMI

BOm dia, seria mais para eu ter uma base de como seria realizado o trabalho rsrs

Vamos supor tenho uma aplicação OpenSource, onde quando eu atualizo a AMI... é necessário realizar o processo de update da própria aplicação, visando uma aplicação neste sentido, como que seria o melhor cenário de atualização, de modo a evitar indisponibilidade?

2 respostas

Bom dia, Fernando!

Para garantir que sua aplicação OpenSource na AWS seja atualizada sem causar indisponibilidade, você pode considerar algumas estratégias baseadas na escalabilidade e automação que a AWS oferece. Aqui estão algumas opções que podem te ajudar:

  1. Atualização manual com novas AMIs:

    • Sempre que você atualizar sua aplicação, crie uma nova AMI que reflita essas mudanças.
    • Atualize o modelo de execução do seu Auto Scaling Group (ASG) para usar essa nova AMI.
    • Realize uma rotação das instâncias no ASG, substituindo as antigas pelas novas. Isso pode ser feito manualmente, mas garante que todas as instâncias estejam na mesma versão.
  2. Automatização com CI/CD:

    • Implemente uma pipeline de CI/CD que automatize a criação de novas AMIs e a atualização do ASG. Ferramentas como AWS CodeDeploy e AWS CodePipeline são ótimas para isso.
    • Com essa abordagem, você reduz a intervenção manual e garante que todas as instâncias sejam atualizadas de forma consistente.
  3. Estratégias de atualização Blue/Green ou Canary:

    • Blue/Green Deployment: Crie um ambiente paralelo com a nova versão da aplicação. Após validar, redirecione o tráfego do ambiente antigo para o novo.
    • Canary Deployment: Lance a nova versão para um pequeno grupo de instâncias. Se tudo correr bem, expanda gradualmente para todas as instâncias.

Essas estratégias ajudam a minimizar o impacto de uma atualização e reduzem o risco de interrupção do serviço. A escolha da abordagem certa dependerá da complexidade da sua aplicação e dos recursos disponíveis.

Bons estudos!

Mas acho que devido a precisar atualizar o layout do banco de dados, teria que ser uma pipeline de CI/CD neh? Onde ja faço o deploy rodanso o comando de update.