Atualizações de ambiente imutáveis - AWS Elastic Beanstalk

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Atualizações de ambiente imutáveis

Atualizações de ambiente imutável são uma alternativa a atualizações contínuas. As atualizações de ambiente imutável garantem que as alterações de configuração que exigem a substituição de instâncias sejam aplicadas de forma eficiente e segura. Se uma atualização de ambiente imutável falhar, o processo de reversão precisará apenas do encerramento de um grupo de Auto Scaling. Uma atualização contínua com falha, por outro lado, requer a execução de uma atualização contínua adicional para reverter as alterações.

Para executar uma atualização de ambiente imutável, o Elastic Beanstalk cria um segundo grupo temporário de Auto Scaling por trás do balanceador de carga do ambiente para conter as novas instâncias. Primeiro, o Elastic Beanstalk inicia uma única instância com a nova configuração no novo grupo. Essa instância serve o tráfego junto com todas as instâncias no grupo original de Auto Scaling que estão executando a configuração anterior.

Depois que a primeira instância passa pelas verificações de integridade, o Elastic Beanstalk executa instâncias adicionais com a nova configuração que correspondem ao número de instâncias em execução no grupo original de Auto Scaling. Quando todas as novas instâncias passam por verificações de integridade, o Elastic Beanstalk as transfere para o grupo original de Auto Scaling e encerra o grupo temporário de Auto Scaling e as instâncias antigas.

nota

Durante a atualização de ambiente imutável, a capacidade do ambiente dobra por um curto período quando as instâncias no novo grupo de Auto Scaling começam a atender às solicitações e antes de as instâncias do grupo original de Auto Scaling serem encerradas. Se o ambiente tiver muitas instâncias ou você tiver uma cota de instância sob demanda baixa, verifique se há capacidade suficiente para executar uma atualização de ambiente imutável. Se você estiver perto da cota, considere o uso de atualizações contínuas.

As atualizações imutáveis exigem um relatório de integridade aprimorada para avaliar a integridade de seu ambiente durante a atualização. Relatórios de integridade aprimorados combinam verificações de integridade padrão do load balancer com monitoramento de instância. Desse modo, ele verifica se as instâncias com a nova configuração estão atendendo às solicitações com êxito.

Você também pode usar as atualizações imutáveis para implantar novas versões do seu aplicativo, como uma alternativa para implantações contínuas. Quando você configura o Elastic Beanstalk para usar as atualizações imutáveis para implantações de aplicações, ele substitui todas as instâncias no ambiente cada vez que uma nova versão da aplicação é implantada. Se uma implantação de aplicação imutável falhar, o Elastic Beanstalk reverterá as alterações imediatamente ao encerrar o novo grupo de Auto Scaling. Isso pode impedir as implantações de frota parcial, que podem ocorrer quando uma implantação contínua falha após alguns lotes terem sido concluídos.

Atenção

Algumas políticas substituem todas as instâncias durante a implantação ou a atualização. Por conta disso, todo o equilíbrio de intermitência do Amazon EC2 é perdido. Isso acontece nos seguintes casos:

  • Atualizações de plataforma gerenciada com substituição de instância habilitada

  • Atualizações imutáveis

  • Implantações com atualizações imutáveis ou divisão de tráfego habilitada

Se uma atualização imutável falhar, as novas instâncias farão upload de logs do pacote para o Amazon S3 antes que o Elastic Beanstalk as encerre. O Elastic Beanstalk deixa logs de uma atualização imutável com falha no Amazon S3 por uma hora antes de excluí-los, em vez de o padrão de 15 minutos para logs finais e em pacote.

nota

Se você usar as atualizações imutáveis para implantações de versão do aplicativo, mas não para a configuração, poderá encontrar um erro se tentar implantar uma versão do aplicativo com alterações de configuração que normalmente acionariam uma atualização contínua (por exemplo, configurações que alteram o tipo de instância). Para evitar isso, faça a alteração de configuração em uma atualização separada ou configure as atualizações imutáveis tanto para implantações quanto para alterações de configuração.

Não é possível realizar uma atualização imutável em conjunto com as alterações de configuração de recurso. Por exemplo, não é possível alterar as configurações que exigem substituição de instância e, ao mesmo tempo, atualizar outras configurações ou realizar uma implantação imutável com arquivos de configuração que alteram as definições de configuração ou recursos adicionais em seu código-fonte. Se você tentar alterar as configurações de recurso (por exemplo, as configurações do balanceador de carga) e simultaneamente executar uma atualização imutável, o Elastic Beanstalk retornará um erro.

Se as alterações de configuração de recurso não são dependente de alteração em seu código-fonte ou na configuração de instância, execute-as em duas atualizações. Se elas são dependentes, realize uma implantação azul/verde.

Configurar as atualizações imutáveis

É possível habilitar e configurar atualizações imutáveis no console do Elastic Beanstalk.

Para habilitar as atualizações imutáveis (console)
  1. Abra o console do Elastic Beanstalk e, na lista Regions (Regiões), selecione a sua Região da AWS.

  2. No painel de navegação, selecione Ambientes e selecione o nome do ambiente na lista.

    nota

    Se você tiver muitos ambientes, use a barra de pesquisa para filtrar a lista de ambientes.

  3. No painel de navegação, escolha Configuration (Configuração).

  4. Na categoria de configuração Rolling updates and deployments (Atualizações e implantações contínuas), escolha Edit (Editar).

  5. Na seção Configuration Updates, defina o Rolling update type para Immutable.

    A seção de atualizações de configuração na página de modificação de atualizações e implantações contínuas
  6. Para salvar as alterações, escolha Apply (Aplicar) na parte inferior da página.

O namespace aws:autoscaling:updatepolicy:rollingupdate

Você também pode usar as opções de configuração no namespace aws:autoscaling:updatepolicy:rollingupdate para configurar as atualizações imutáveis. O exemplo de arquivo de configuração a seguir permite atualizações imutáveis para alterações de configuração.

exemplo .ebextensions/immutable-updates.config
option_settings: aws:autoscaling:updatepolicy:rollingupdate: RollingUpdateType: Immutable

O exemplo a seguir permite atualizações imutáveis tanto para alterações de configuração quanto para implantações.

exemplo .ebextensions/immutable-all.config
option_settings: aws:autoscaling:updatepolicy:rollingupdate: RollingUpdateType: Immutable aws:elasticbeanstalk:command: DeploymentPolicy: Immutable

A CLI do EB e o console do Elastic Beanstalk aplicam os valores recomendados para as opções anteriores. Se quiser usar arquivos de configuração para definir a mesma coisa, você precisa remover essas configurações. Para mais detalhes, consulte Valores recomendados.