

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 configuração de ambiente contínuas do Elastic Beanstalk
<a name="using-features.rollingupdates"></a>

Quando uma [alteração de configuração exige a substituição de instâncias](environments-updating.md), o Elastic Beanstalk pode executar a atualização em lotes para evitar tempo de inatividade enquanto a modificação é propagada. Durante uma atualização contínua, a capacidade só é reduzida pelo tamanho de um único lote, o qual você pode configurar. O Elastic Beanstalk coloca um lote de instâncias fora de serviço e as encerra, para, depois, iniciar um lote com a nova configuração. Depois que o novo lote começar a atender a solicitações, o Elastic Beanstalk passa para o próximo lote.

Os lotes de atualização contínua da configuração podem ser processados periodicamente (com base no tempo), com um atraso entre cada lote ou de acordo com a integridade. Para atualizações contínuas baseadas no tempo, você pode configurar a quantidade de tempo que o Elastic Beanstalk aguarda depois de concluir a inicialização de um lote de instâncias antes de passar para o próximo. Essa pausa permite que seu aplicativo faça o bootstrap e comece a atender às solicitações.

De acordo com as atualizações contínuas baseadas na integridade, o Elastic Beanstalk aguarda até que as instâncias em um lote passem por verificações de integridade antes de mudar para o próximo lote. A integridade de uma instância é determinada pelo sistema de relatórios de integridade, o qual pode ser básico ou aprimorado. Com a [integridade básica](using-features.healthstatus.md), um lote é considerado íntegro assim que todas as suas instâncias passem nas verificações de integridade do Elastic Load Balancing (ELB).

Com os [relatórios de integridade aprimorada](health-enhanced.md), todas as instâncias em um lote devem passar por várias verificações de integridade consecutivas antes que o Elastic Beanstalk vá para o próximo lote. Além das verificações de integridade do ELB, que verificam somente suas instâncias, a integridade aprimorada monitora os logs do aplicativo e o estado de outros recursos do ambiente. Em um ambiente de servidor web com integridade aprimorada, todas as instâncias devem passar por 12 verificações de integridade durante o período de dois minutos (18 verificações em três minutos para ambientes de operador). Se qualquer instância falhar em uma verificação de integridade, a contagem recomeça.

Se um lote não se tornar íntegro dentro do tempo limite da atualização contínua (o padrão é 30 minutos), a atualização será cancelada. O timeout de atualização contínua é uma [opção de configuração](command-options.md) que está disponível no namespace `aws:autoscaling:updatepolicy:rollingupdate`. Caso a aplicação não passe nas verificações de integridade com o status `Ok`, mas esteja estável em outro nível, você pode definir a opção `HealthCheckSuccessThreshold` no namespace [`aws:elasticbeanstalk:healthreporting:system`](command-options-general.md#command-options-general-elasticbeanstalkhealthreporting) para alterar o nível no qual o Elastic Beanstalk considera uma instância como íntegra.

Se o processo de atualização contínua falhar, o Elastic Beanstalk iniciará outra atualização contínua para retornar à configuração anterior. Uma atualização contínua pode falhar devido a verificações de integridade com falha ou caso a execução de novas instâncias fizer com que você exceda as cotas na sua conta. Se você atingir uma cota no número de EC2 instâncias da Amazon, por exemplo, a atualização contínua pode falhar ao tentar provisionar um lote de novas instâncias. Nesse caso, a reversão também falhará.

Uma de reversão com falha encerra o processo de atualização e deixa o ambiente em um estado não íntegro. Os lotes não processados ainda estão executando instâncias com a configuração antiga, enquanto todos os lotes concluídos com êxito têm a nova configuração. Para corrigir um ambiente após uma reversão com falha, primeiro resolva o problema subjacente que causou a falha da atualização e, depois, inicie outra atualização do ambiente.

Um método alternativo é implantar a nova versão do aplicativo em um ambiente diferente e, depois, executar uma troca do CNAME para redirecionar o tráfego sem qualquer inatividade. Consulte [Implantações azuis/verdes com o Elastic Beanstalk](using-features.CNAMESwap.md) para obter mais informações.

## Atualizações contínuas versus implantações contínuas
<a name="environments-cfg-rollingupdates-deployments"></a>

As atualizações contínuas ocorrem quando você altera as configurações que exigem que novas EC2 instâncias da Amazon sejam provisionadas para o seu ambiente. Isso inclui alterações na configuração do grupo de Auto Scaling como as configurações do tipo de instância e do par de chaves, bem como alterações nas configurações da VPC. Em uma atualização contínua, cada lote de instâncias é encerrado antes que um novo lote seja provisionado para substituí-lo.

As [implantações contínuas](using-features.rolling-version-deploy.md) ocorrem sempre que você implanta a aplicação e normalmente podem ser executadas sem a substituição de instâncias no ambiente. O Elastic Beanstalk coloca cada lote fora de serviço, implanta a nova versão da aplicação e, depois, coloca-o novamente em serviço.

A exceção é se você alterar as configurações que exigem a substituição da instância enquanto implanta uma nova versão do aplicativo. Por exemplo, se você alterar as configurações de [nome da chave](command-options-general.md#command-options-general-autoscalinglaunchconfiguration) em um [arquivo de configuração](ebextensions.md) em seu pacote de origem e o implantar em seu ambiente, vai acionar uma atualização contínua. Em vez de implantar a nova versão do aplicativo para cada lote de instâncias existentes, um novo lote de instâncias é provisionado com a nova configuração. Nesse caso, uma implantação separada não ocorre, pois as novas instâncias são ativadas com a nova versão do aplicativo.

Sempre que novas instâncias são provisionadas como parte de uma atualização de ambiente, há uma fase de implantação em que o código-fonte do aplicativo é implantado nas novas instâncias, e qualquer definição da configuração que modifica o sistema operacional ou o software em instâncias é aplicada. As [Configurações de verificação de integridade da implantação](using-features.rolling-version-deploy.md#environments-cfg-rollingdeployments-console) (**Ignore health check** (Ignorar verificação de integridade), **Healthy threshold** (Limite da integridade) **Command timeout** (Tempo limite do comando)) também se aplicam a atualizações contínuas baseadas na integridade e a atualizações imutáveis durante a fase de implantação.

## Configurar atualizações contínuas
<a name="rollingupdates-configure"></a>

É possível habilitar e configurar atualizações contínuas no console do Elastic Beanstalk.

**Para habilitar atualizações contínuas**

1. Abra o console do [Elastic](https://console.aws.amazon.com/elasticbeanstalk) Beanstalk e, **na** lista Regiões, selecione sua. Região da AWS

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

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

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

1. Na seção **Configuration updates (Atualizações da configuração)**, para **Rolling update type (Tipo de atualização contínua)**, selecione uma das opções de **Rolling (Contínua)**.  
![\[A seção de atualizações de configuração na página de modificação de atualizações e implantações contínuas\]](http://docs.aws.amazon.com/pt_br/elasticbeanstalk/latest/dg/images/aeb-config-rolling-updates-health.png)

1. Selecione as configurações **Batch size (Tamanho do lote)**, **Minimum capacity (Capacidade mínima)**, e **Pause time (Tempo de pausa)**.

1. Para salvar as alterações, escolha **Apply (Aplicar)** na parte inferior da página.

A seção **Configuration updates (Atualizações da configuração)** da página **Rolling updates and deployments (Atualizações contínuas e implantações)** tem as seguintes opções para atualizações contínuas:
+ **Rolling update type (Tipo de atualização contínua)**: o Elastic Beanstalk aguarda a conclusão da atualização de um lote de instâncias para passar para o próximo lote e permitir que essas instâncias concluam o bootstrapping e comecem a atender ao tráfego. Escolha uma das seguintes opções:
  + **Rolling based on Health (Contínua com base na integridade)**: aguarde até que as instâncias no lote atual se tornem íntegras antes de colocar instâncias em serviço e iniciar o próximo lote.
  + **Rolling based on Time (Contínua com base no tempo)**: especifique um tempo de espera entre o início de novas instâncias e sua colocação em serviço para iniciar o próximo lote.
  + **Immutable (Imutável)**: aplique a alteração de configuração a um novo grupo de instâncias executando uma [atualização imutável](environmentmgmt-updates-immutable.md).
+ **Batch size (Tamanho do lote)**: o número de instâncias a serem substituídas em cada lote, entre **1** e **10000**. Por padrão, esse valor é um terço do tamanho mínimo do grupo de Auto Scaling arredondado para um número inteiro.
+ **Minimum capacity (Capacidade mínima)**: o número mínimo de instâncias para manter em execução enquanto outras instâncias estão sendo atualizadas, entre **0** e **9999**. O valor padrão é o tamanho mínimo do grupo de Auto Scaling ou um a menos do que o tamanho máximo do grupo de Auto Scaling, qualquer que seja o número menor.
+ **Pause time (Tempo de pausa)** (somente baseado no tempo): a quantidade de tempo de espera após um lote ser atualizado antes de passar para o próximo lote para permitir que a aplicação comece a receber tráfego. Entre zero segundo e uma hora.

## O namespace aws:autoscaling:updatepolicy:rollingupdate
<a name="rollingupdate-namespace"></a>

Você também pode usar as [opções de configuração](command-options.md) no namespace `aws:autoscaling:updatepolicy:rollingupdate` para configurar as atualizações contínuas. 

Use a opção `RollingUpdateEnabled` para habilitar atualizações contínuas e `RollingUpdateType` para escolher o tipo de atualização. Os valores a seguir são compatíveis com `RollingUpdateType`:
+ `Health` – aguarde até que as instâncias no lote atual se tornem íntegras antes de colocá-las em serviço e iniciar o próximo lote.
+ `Time` – especifique um tempo de espera entre a inicialização das novas instâncias e sua colocação em serviço para iniciar o próximo lote.
+ `Immutable`: aplique a alteração de configuração a um novo grupo de instâncias executando uma [atualização imutável](environmentmgmt-updates-immutable.md).

Quando você habilitar as atualizações constantes, defina as opções `MaxBatchSize` e `MinInstancesInService` para configurar o tamanho de cada lote. Para atualizações contínuas baseadas no tempo, também é possível configurar `PauseTime` e `Timeout`, respectivamente.

Por exemplo, para iniciar até cinco instâncias por vez mantendo pelo menos duas instâncias em serviço e aguardar cinco minutos e 30 segundos entre cada lote, especifique as opções e os valores a seguir.

**Example .ebextensions/timebased.config**  

```
option_settings:
  aws:autoscaling:updatepolicy:rollingupdate:
    RollingUpdateEnabled: true
    MaxBatchSize: 5
    MinInstancesInService: 2
    RollingUpdateType: Time
    PauseTime: PT5M30S
```

Para habilitar atualizações contínuas baseadas na integridade, com um tempo limite de 45 minutos para cada lote, especifique as opções e os valores a seguir.

**Example .ebextensions/healthbased.config**  

```
option_settings:
  aws:autoscaling:updatepolicy:rollingupdate:
    RollingUpdateEnabled: true
    MaxBatchSize: 5
    MinInstancesInService: 2
    RollingUpdateType: Health
    Timeout: PT45M
```

`Timeout`e `PauseTime` os valores devem ser especificados em [ISO8601 duration](http://en.wikipedia.org/wiki/ISO_8601#Durations):`PT#H#M#S`, onde cada \$1 é o número de horas, minutos ou segundos, respectivamente.

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](command-options.md#configuration-options-recommendedvalues).