

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á.

# Realizar atualizações da infraestrutura
<a name="infrastructure-updates"></a>

As atualizações de infraestrutura substituem as instâncias em seu ambiente computacional por novas instâncias com configurações atualizadas. Essa estratégia de atualização leva mais tempo do que escalar as atualizações e exige configurações específicas do perfil de serviço e da estratégia de alocação. As atualizações de infraestrutura fornecem uma maneira de modificar as configurações fundamentais do ambiente computacional e, ao mesmo tempo, manter a disponibilidade do serviço.

**Importante**  
As atualizações de infraestrutura exigem a função *AWSServiceRoleForBatch*vinculada ao serviço e uma estratégia de alocação de`BEST_FIT_PROGRESSIVE`, `SPOT_CAPACITY_OPTIMIZED` ou. `SPOT_PRICE_CAPACITY_OPTIMIZED` Se seu ambiente não atender a esses requisitos, use blue/green atualizações em vez disso.

## Mudanças que acionam atualizações de infraestrutura
<a name="infrastructure-updates-triggers"></a>

Quando você modifica qualquer uma das configurações a seguir, AWS Batch executa uma atualização de infraestrutura. As atualizações de infraestrutura também ocorrem quando você modifica essas configurações junto com as configurações de atualização de escala.

As configurações a seguir acionam atualizações de infraestrutura:

**Configuração de computação**
+ `allocationStrategy`— Determina como AWS Batch seleciona os tipos de instância.
+ `instanceTypes`: especifica quais tipos de instância do EC2 usar.
+ `bidPercentage`: porcentagem máxima do preço sob demanda para instâncias spot.
+ `type`: tipo de ambiente computacional (`EC2` ou `SPOT`).

**Configuração da AMI e lançamento**
+ `imageId`: AMI específica para usar em instâncias.
+ `ec2Configuration`: configuração do EC2, incluindo `imageIdOverride`.
+ `launchTemplate`: configurações do modelo de execução do EC2.
+ `ec2KeyPair`: par de chaves SSH para acesso a instância.
+ `updateToLatestImageVersion`: configuração de atualizações automáticas da AMI.

**Redes e segurança**
+ `subnets`: sub-redes VPC em que as instâncias são lançadas (para ambientes de computação EC2).
+ `securityGroupIds`: grupos de segurança para instâncias (para ambientes de computação EC2).
+ `placementGroup`: configuração do grupo de posicionamento do EC2.

**Outras configurações**
+ `instanceRole`: perfil do IAM para instâncias do EC2.
+ `tags`: tags aplicadas a instâncias do EC2.

**Importante**  
Se você modificar qualquer configuração de atualização de infraestrutura junto com as configurações de atualização de escalabilidade (como `desiredvCpus`, `maxvCpus` ou `minvCpus`), AWS Batch executará uma atualização de infraestrutura. Atualizações de infraestrutura levam mais tempo do que atualizações de escalabilidade.

## Seleção da AMI durante atualizações de infraestrutura
<a name="updating-compute-environments-ami"></a>

Durante uma atualização de infraestrutura, o ID da AMI do ambiente computacional pode mudar, dependendo se AMIs está especificado em qualquer uma dessas três configurações. AMIs são especificados em `imageId` (in`computeResources`), `imageIdOverride` (in`ec2Configuration`) ou no modelo de lançamento especificado em`launchTemplate`. Suponha que nenhuma AMI IDs esteja especificada em nenhuma dessas configurações e a `updateToLatestImageVersion` configuração seja`true`. Em seguida, a AMI otimizada mais recente do Amazon ECS suportada pela AWS Batch é usada para qualquer atualização de infraestrutura.

Se uma ID de AMI for especificada em pelo menos uma dessas configurações, a atualização dependerá de qual configuração forneceu a ID de AMI usada antes da atualização. Quando você cria um ambiente de computação, a prioridade para selecionar uma ID de AMI é primeiro o modelo de execução, depois a configuração `imageId` e, finalmente, a configuração `imageIdOverride`. No entanto, se a ID da AMI usado for do modelo de execução, a atualização das configurações `imageIdOverride` ou `imageId` não a atualizará. A única maneira de atualizar uma ID de AMI selecionada no modelo de execução é atualizando o modelo de execução. Se o parâmetro de versão do modelo de execução for `$Default` ou `$Latest`, a versão padrão ou mais recente do modelo de execução especificado será avaliada. Se uma ID de AMI diferente for selecionada por padrão ou se a versão mais recente do modelo de execução for selecionada, essa ID de AMI será usada na atualização.

Se o modelo de execução não foi usado para selecionar a ID da AMI, a ID da AMI especificada nos parâmetros `imageId` ou `imageIdOverride` será usada. Se ambos forem especificados, a ID da AMI especificada no parâmetro `imageIdOverride` será usada.

Suponha que o ambiente de computação use uma ID de AMI especificada pelos parâmetros `imageId`, `imageIdOverride`, ou `launchTemplate` e você queira usar a AMI otimizada mais recente do Amazon ECS compatível com AWS Batch. Em seguida, a atualização deve remover as configurações que forneceram a AMI IDs. Para `imageId`, isso requer a especificação de uma string vazia para esse parâmetro. Para `imageIdOverride`, isso requer a especificação de uma string vazia para o parâmetro `ec2Configuration`.

Se o ID da AMI veio do modelo de lançamento, você pode mudar para a AMI otimizada mais recente do Amazon ECS que é suportada AWS Batch por uma das seguintes formas:
+ Remova o modelo de execução especificando uma string vazia para o parâmetro `launchTemplateId` ou `launchTemplateName`. Isso remove todo o modelo de lançamento, em vez de apenas a ID da AMI.
+ Se a versão atualizada do modelo de lançamento não especificar uma ID de AMI, o parâmetro `updateToLatestImageVersion` deverá ser definido como `true`.

## Manuseio de trabalhos durante atualizações
<a name="infrastructure-updates-job-handling"></a>

Configure como os trabalhos em execução são tratados durante uma atualização de infraestrutura usando a política de atualização. Quando você define `terminateJobsOnUpdate=true`, os trabalhos em execução são encerrados imediatamente, a configuração `jobExecutionTimeoutMinutes` é ignorada e a atualização prossegue assim que as instâncias podem ser substituídas. Quando você define `terminateJobsOnUpdate=false`, os trabalhos em execução continuam pelo período de tempo limite especificado com um tempo limite padrão de 30 minutos, e os trabalhos são encerrados se excederem o tempo limite.

**nota**  
Para repetir trabalhos que são encerrados durante uma atualização, configure uma estratégia de repetição do trabalho. Para obter mais informações, consulte [Repetições de trabalho automatizadas](job_retries.md).

------
#### [ Performing infrastructure updates using the Console de gerenciamento da AWS ]

**nota**  
Para apenas atualizar para a versão mais recente da AMI no console, consulte[Atualização das versões da AMI](managing-ami-versions.md#updating-ami-versions).

1. Abra o AWS Batch console em [https://console.aws.amazon.com/batch/](https://console.aws.amazon.com/batch/).

1. No painel de navegação, escolha **Ambientes** e, em seguida, **Ambientes de computação**.

1. Selecione o ambiente computacional a atualizar.

1. Escolha **Ações** e então **Editar**.

1. Na seção **Atualizar comportamento**, configure como os trabalhos em execução são tratados:
   + Escolha **Atualizar AMI para a versão mais recente** para atualizar a AMI para a versão mais recente.
   + Escolha **Encerrar trabalhos imediatamente na atualização** para encerrar trabalhos quando o processo de atualização for executado.
   + Em **Tempo limite de execução do trabalho**, insira o número de minutos de espera antes de iniciar o processo de atualização.

1. Modifique uma ou mais das [configurações que exigem atualizações de infraestrutura](#infrastructure-updates-triggers). Por exemplo:
   + **Função da instância**
   + **Usar instâncias spot EC2**
   + **Tipos de instância permitidos**
   + **Grupo de colocação**
   + **EC2 key pair**
   + **Configuração do EC2**
   + **Modelos de inicialização**
   + **Sub-redes**
   + **Grupos de segurança**

1. Escolha **Salvar alterações**.

1. Monitore o status do ambiente de computação. O ambiente exibirá `UPDATING` durante o processo de atualização.

------
#### [ Performing infrastructure updates using the AWS CLI ]

Use o comando **update-compute-environment** com uma alteração em uma ou mais das [configurações que exigem atualizações de infraestrutura](#infrastructure-updates-triggers). Os três exemplos a seguir são operações comuns de infraestrutura.
+ Este exemplo atualiza os tipos de instância e configura a política de atualização:

  ```
  aws batch update-compute-environment \
      --compute-environment your-compute-environment-name \
      --compute-resources instanceTypes=default_x86_64 \
      --update-policy terminateJobsOnUpdate=false,jobExecutionTimeoutMinutes=30
  ```
+ Este exemplo atualiza as sub-redes e os grupos de segurança da VPC:

  ```
  aws batch update-compute-environment \
      --compute-environment your-compute-environment-name \
      --compute-resources subnets=subnet-abcd1234,subnet-efgh5678 securityGroupIds=sg-abcd1234 \
      --update-policy terminateJobsOnUpdate=true
  ```
+ Este exemplo permite atualizações automáticas da AMI mais recente, otimizada para o Amazon ECS:

  ```
  aws batch update-compute-environment \
      --compute-environment your-compute-environment-name \
      --compute-resources updateToLatestImageVersion=true \
      --update-policy terminateJobsOnUpdate=false,jobExecutionTimeoutMinutes=60
  ```

------

## Monitorando as atualizações da infraestrutura
<a name="infrastructure-updates-monitoring"></a>

Monitore suas atualizações de infraestrutura usando o AWS Batch console para observar a alteração do status do ambiente computacional`UPDATING`, monitorar o progresso da substituição da instância e verificar se há falhas nas atualizações. A atualização é bem-sucedida quando o estado do ambiente computacional é `VAILD`. Você também pode usar CloudWatch para rastrear eventos de encerramento de instâncias e monitorar os estados do trabalho durante a atualização. Com o AWS CLI, use o **describe-compute-environments** comando para verificar o status e monitorar os eventos do ciclo de vida da instância.