Execute atualizações de infraestrutura - AWS Batch

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

Execute atualizações de infraestrutura

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 da função 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 AWSServiceRoleForBatchvinculada ao serviço e uma estratégia de alocação deBEST_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

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

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 EC2 instância usar.

  • bidPercentage— Porcentagem máxima do preço sob demanda para instâncias spot.

  • type— Tipo de ambiente computacional (EC2ouSPOT).

Configuração de AMI e lançamento

  • imageId— AMI específica para usar em instâncias.

  • ec2Configuration— EC2 configuração incluindoimageIdOverride.

  • launchTemplate— configurações EC2 do modelo de lançamento.

  • ec2KeyPair— Par de chaves SSH, por exemplo, acesso.

  • 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 EC2 ambientes computacionais).

  • securityGroupIds— Grupos de segurança para instâncias (para ambientes EC2 computacionais).

  • placementGroup— configuração EC2 do grupo de posicionamento.

Outras configurações

  • instanceRole— Função do IAM para EC2 instâncias.

  • tags— Tags aplicadas às EC2 instâncias.

Importante

Se você modificar qualquer configuração de atualização de infraestrutura junto com as configurações de atualização de escalabilidade (como desiredvCpusmaxvCpus, ouminvCpus), AWS Batch executará uma atualização de infraestrutura. As atualizações de infraestrutura demoram mais do que as atualizações de escalabilidade.

Seleção de AMI durante atualizações de infraestrutura

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 (incomputeResources), imageIdOverride (inec2Configuration) ou no modelo de lançamento especificado emlaunchTemplate. Suponha que nenhuma AMI IDs esteja especificada em nenhuma dessas configurações e a updateToLatestImageVersion configuração sejatrue. 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.

Manipulação do trabalho durante as atualizações

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ê defineterminateJobsOnUpdate=true, os trabalhos em execução são encerrados imediatamente, a jobExecutionTimeoutMinutes configuração é ignorada e a atualização prossegue assim que as instâncias podem ser substituídas. Quando você defineterminateJobsOnUpdate=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 foram encerrados durante uma atualização, configure uma estratégia de repetição de trabalhos. Para obter mais informações, consulte Repetições de trabalho automatizadas.

Performing infrastructure updates using the AWS Management Console
  1. Abra o AWS Batch console em https://console.aws.amazon.com/batch/.

  2. No painel de navegação, escolha Ambientes e depois a guia Ambientes de computação.

  3. Selecione o ambiente computacional a ser atualizado.

  4. Escolha Ações e então Editar.

  5. 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 após a atualização para encerrar trabalhos quando o processo de atualização for executado.

    • Em Tempo limite de execução de Job, insira o número de minutos de espera antes de iniciar o processo de atualização.

  6. Modifique uma ou mais das configurações que exigem atualizações de infraestrutura. Por exemplo:

    • Função da instância

    • Use instâncias EC2 spot

    • Tipos de instância permitidos

    • Grupo de colocação

    • EC2 par de chaves

    • EC2 configuração

    • Modelos de execução

    • Sub-redes

    • Grupos de segurança

  7. Escolha Salvar alterações.

  8. Monitore o status do ambiente computacional. O ambiente será exibido UPDATING durante o processo de atualização.

Performing infrastructure updates using the AWS CLI

Use o update-compute-environment comando com uma alteração em uma ou mais das configurações que exigem atualizações de infraestrutura. 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 para a mais recente AMI otimizada do Amazon ECS:

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

Monitorando atualizações da infraestrutura

Monitore suas atualizações de infraestrutura usando o AWS Batch console para observar a alteração do status do ambiente computacionalUPDATING, 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.