Usar uma atualização de instância com opção de ignorar correspondência - Amazon EC2 Auto Scaling

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

Usar uma atualização de instância com opção de ignorar correspondência

Ignorar a correspondência diz ao Amazon EC2 Auto Scaling para ignorar as instâncias que já tenham as atualizações mais recentes. Assim, você não substituirá mais instâncias do que o necessário. Isso é útil quando você deseja garantir que seu grupo do Auto Scaling usará uma versão específica de seu modelo de execução e substituirá apenas as instâncias que usam outra versão.

As seguintes considerações se aplicam à opção ignorar a correspondência:

  • Se você iniciar uma atualização de instância com a opção de ignorar correspondência e uma configuração desejada, o Amazon EC2 Auto Scaling verificará se alguma instância corresponde à configuração desejada. Em seguida, ele substituirá apenas as instâncias que não correspondam à configuração desejada. Depois que a atualização de instância tem êxito, o Amazon EC2 Auto Scaling atualiza o grupo para refletir a configuração desejada.

  • Se você iniciar uma atualização de instância com opção de ignorar correspondência, mas não especificar a configuração desejada, o Amazon EC2 Auto Scaling verificará se alguma instância corresponde à configuração que você salvou pela última vez no grupo do Auto Scaling. Em seguida, ele substituirá apenas as instâncias que não correspondam à última configuração salva.

  • Você pode usar a opção de ignorar correspondência com um novo modelo de execução, uma nova versão do modelo de execução ou um conjunto de tipos de instância. Se você habilitar ignorar a correspondência, mas nenhum deles for alterado, a atualização da instância será bem-sucedida imediatamente sem substituir nenhuma instância. Se você tiver feito outras alterações na configuração desejada (como alterar a estratégia de alocação spot), o Amazon EC2 Auto Scaling aguardará a atualização de instância ser concluída com êxito. Em seguida, ele atualizará as configurações do grupo do Auto Scaling para refletir a nova configuração desejada.

  • Você não pode usar ignorar a correspondência com uma nova configuração de inicialização.

  • Quando você inicia uma atualização de instância e fornece a configuração desejada, o Amazon EC2 Auto Scaling garante que todas as instâncias usem a configuração desejada. Portanto, quando você especifica uma $Default ou $Latest como a versão desejada para seu modelo de execução e, em seguida, cria uma nova versão do modelo de execução enquanto a atualização da instância está em andamento, todas as instâncias que já foram substituídas serão substituídas novamente.

  • O Skip Matching não sabe se um script de dados do usuário no modelo de lançamento extrairá o código atualizado e o instalará em novas instâncias. Como resultado, ignorar a correspondência pode ignorar a substituição de instâncias com código desatualizado instalado. Nesse caso, você deve desativar o skip matching para garantir que todas as instâncias recebam seu código mais recente, mesmo sem uma atualização da versão do modelo de lançamento.

Esta seção inclui AWS CLI instruções para iniciar uma atualização de instância com a opção skip matching ativada. Para obter instruções sobre como usar o console, consulte Iniciar uma atualização de instância (console).

Siga as etapas desta seção para usar o AWS CLI para fazer o seguinte:

  • Crie o modelo de execução que deseja aplicar às instâncias.

  • Inicie uma atualização de instância para aplicar seu modelo de execução ao grupo do Auto Scaling. Se você não habilitar a opção de ignorar correspondência, todas as instâncias serão substituídas. Isso ocorre mesmo que o modelo de execução usado para provisionar a instância seja o mesmo que você especificou para a configuração desejada.

Para usar a opção de ignorar correspondência com um novo modelo de execução
  1. Use o create-launch-templatecomando para criar um novo modelo de lançamento para seu grupo de Auto Scaling. Inclua a opção --launch-template-data e a entrada JSON que definem os detalhes das instâncias criadas para seu grupo do Auto Scaling.

    Por exemplo, use o comando a seguir para criar um modelo de execução básico com o ID de AMI ami-0123456789abcdef0 e o tipo de instância t2.micro.

    aws ec2 create-launch-template --launch-template-name my-template-for-auto-scaling --version-description version1 \ --launch-template-data '{"ImageId":"ami-0123456789abcdef0","InstanceType":"t2.micro"}'

    Se houver êxito, o comando gerará uma saída semelhante à seguinte.

    { "LaunchTemplate": { "LaunchTemplateId": "lt-068f72b729example", "LaunchTemplateName": "my-template-for-auto-scaling", "CreatedBy": "arn:aws:iam::123456789012:user/Bob", "CreateTime": "2023-01-30T18:16:06.000Z", "DefaultVersionNumber": 1, "LatestVersionNumber": 1 } }

    Para ter mais informações, consulte Exemplos de criação e gerenciamento de modelos de lançamento com o AWS CLI.

  2. Use o start-instance-refreshcomando para iniciar o fluxo de trabalho de substituição da instância e aplicar seu novo modelo de lançamento com o ID lt-068f72b729example. Por ser novo, o modelo de execução tem apenas uma versão. Isso significa que a versão 1 do modelo de execução é o destino dessa atualização de instâncias. Se ocorrer um evento de aumento da escala na horizontal durante a atualização de instâncias e o Amazon EC2 Auto Scaling provisionar novas instâncias usando a versão 1 desse modelo de execução, elas não serão substituídas. Quando a operação for concluída com êxito, o novo modelo de execução será aplicado com êxito ao grupo do Auto Scaling.

    aws autoscaling start-instance-refresh --cli-input-json file://config.json

    Conteúdo de config.json.

    { "AutoScalingGroupName": "my-asg", "DesiredConfiguration": { "LaunchTemplate": { "LaunchTemplateId": "lt-068f72b729example", "Version": "$Default" } }, "Preferences": { "SkipMatching": true } }

    Se houver êxito, o comando gerará uma saída semelhante à seguinte.

    { "InstanceRefreshId": "08b91cf7-8fa6-48af-b6a6-d227f40f1b9b" }

Se você tiver um grupo de Auto Scaling com uma política de instâncias mistas, siga as etapas nesta seção para usar o AWS CLI para iniciar uma atualização de instância com skip matching. Você tem as seguintes opções:

  • Forneça um novo modelo de execução para aplicar a todos os tipos de instância especificados na política.

  • Forneça um conjunto atualizado de tipos de instância alterando ou não o modelo de execução na política. Por exemplo, digamos que você faça uma migração de tipos de instância indesejados. Você usaria o modelo de execução como está, sem alterar a AMI, os grupos de segurança ou outras especificidades das instâncias a serem substituídas.

Siga as etapas em uma das seções a seguir, de acordo com a opção que atenda às suas necessidades.

Para usar a opção de ignorar correspondência com um novo modelo de execução
  1. Use o create-launch-templatecomando para criar um novo modelo de lançamento para seu grupo de Auto Scaling. Inclua a opção --launch-template-data e a entrada JSON que definem os detalhes das instâncias criadas para seu grupo do Auto Scaling.

    Por exemplo, use o comando a seguir para criar um modelo de execução com o ID de AMI ami-0123456789abcdef0.

    aws ec2 create-launch-template --launch-template-name my-new-template --version-description version1 \ --launch-template-data '{"ImageId":"ami-0123456789abcdef0"}'

    Se houver êxito, o comando gerará uma saída semelhante à seguinte.

    { "LaunchTemplate": { "LaunchTemplateId": "lt-04d5cc9b88example", "LaunchTemplateName": "my-new-template", "CreatedBy": "arn:aws:iam::123456789012:user/Bob", "CreateTime": "2023-01-31T15:56:02.000Z", "DefaultVersionNumber": 1, "LatestVersionNumber": 1 } }

    Para ter mais informações, consulte Exemplos de criação e gerenciamento de modelos de lançamento com o AWS CLI.

  2. Para ver a política de instâncias mistas existente para seu grupo de Auto Scaling, execute o describe-auto-scaling-groupscomando. Você precisará dessas informações na próxima etapa, ao iniciar a atualização de instância.

    O comando de exemplo a seguir retorna a política de instâncias mistas configurada para o grupo do Auto Scaling chamado my-asg.

    aws autoscaling describe-auto-scaling-groups --auto-scaling-group-name my-asg

    Se houver êxito, o comando gerará uma saída semelhante à seguinte.

    { "AutoScalingGroups":[ { "AutoScalingGroupName":"my-asg", "AutoScalingGroupARN":"arn", "MixedInstancesPolicy":{ "LaunchTemplate":{ "LaunchTemplateSpecification":{ "LaunchTemplateId":"lt-073693ed27example", "LaunchTemplateName":"my-old-template", "Version":"$Default" }, "Overrides":[ { "InstanceType":"c5.large" }, { "InstanceType":"c5a.large" }, { "InstanceType":"m5.large" }, { "InstanceType":"m5a.large" } ] }, "InstancesDistribution":{ "OnDemandAllocationStrategy":"prioritized", "OnDemandBaseCapacity":1, "OnDemandPercentageAboveBaseCapacity":50, "SpotAllocationStrategy":"price-capacity-optimized" } }, "MinSize":1, "MaxSize":5, "DesiredCapacity":4, ... } ] }
  3. Use o start-instance-refreshcomando para iniciar o fluxo de trabalho de substituição da instância e aplicar seu novo modelo de lançamento com o ID lt-04d5cc9b88example. Por ser novo, o modelo de execução tem apenas uma versão. Isso significa que a versão 1 do modelo de execução é o destino dessa atualização de instâncias. Se ocorrer um evento de aumento da escala na horizontal durante a atualização de instâncias e o Amazon EC2 Auto Scaling provisionar novas instâncias usando a versão 1 desse modelo de execução, elas não serão substituídas. Quando a operação for concluída com êxito, a política de instâncias mistas atualizada será aplicada com êxito ao grupo do Auto Scaling.

    aws autoscaling start-instance-refresh --cli-input-json file://config.json

    Conteúdo de config.json.

    { "AutoScalingGroupName":"my-asg", "DesiredConfiguration":{ "MixedInstancesPolicy":{ "LaunchTemplate":{ "LaunchTemplateSpecification":{ "LaunchTemplateId":"lt-04d5cc9b88example", "Version":"$Default" }, "Overrides":[ { "InstanceType":"c5.large" }, { "InstanceType":"c5a.large" }, { "InstanceType":"m5.large" }, { "InstanceType":"m5a.large" } ] }, "InstancesDistribution":{ "OnDemandAllocationStrategy":"prioritized", "OnDemandBaseCapacity":1, "OnDemandPercentageAboveBaseCapacity":50, "SpotAllocationStrategy":"price-capacity-optimized" } } } }, "Preferences":{ "SkipMatching":true } }

    Se houver êxito, o comando gerará uma saída semelhante à seguinte.

    { "InstanceRefreshId": "08b91cf7-8fa6-48af-b6a6-d227f40f1b9b" }

No próximo procedimento, você fornecerá um conjunto atualizado de tipos de instância sem alterar o modelo de execução.

Para usar a opção de ignorar correspondência com um conjunto atualizado de tipos de instância
  1. Para ver a política de instâncias mistas existente para seu grupo de Auto Scaling, execute o describe-auto-scaling-groupscomando. Você precisará dessas informações na próxima etapa, ao iniciar a atualização de instância.

    O comando de exemplo a seguir retorna a política de instâncias mistas configurada para o grupo do Auto Scaling chamado my-asg.

    aws autoscaling describe-auto-scaling-groups --auto-scaling-group-name my-asg

    Se houver êxito, o comando gerará uma saída semelhante à seguinte.

    { "AutoScalingGroups":[ { "AutoScalingGroupName":"my-asg", "AutoScalingGroupARN":"arn", "MixedInstancesPolicy":{ "LaunchTemplate":{ "LaunchTemplateSpecification":{ "LaunchTemplateId":"lt-073693ed27example", "LaunchTemplateName":"my-template-for-auto-scaling", "Version":"$Default" }, "Overrides":[ { "InstanceType":"c5.large" }, { "InstanceType":"c5a.large" }, { "InstanceType":"m5.large" }, { "InstanceType":"m5a.large" } ] }, "InstancesDistribution":{ "OnDemandAllocationStrategy":"prioritized", "OnDemandBaseCapacity":1, "OnDemandPercentageAboveBaseCapacity":50, "SpotAllocationStrategy":"price-capacity-optimized" } }, "MinSize":1, "MaxSize":5, "DesiredCapacity":4, ... } ] }
  2. Use o start-instance-refreshcomando para iniciar o fluxo de trabalho de substituição de instâncias e aplicar suas atualizações. Para substituir instâncias que usam tipos de instância específicos, a configuração desejada deve especificar a política de instâncias mistas somente com os tipos de instância que você deseja. Você pode escolher se deseja adicionar novos tipos de instância no lugar deles.

    O comando de exemplo a seguir inicia uma atualização de instância sem o tipo de instância indesejado m5a.large. Quando um tipo de instância de seu grupo não corresponde a um dos três tipos de instância restantes, as instâncias são substituídas. (Uma atualização de instância não escolhe os tipos de instância dos quais provisionar as novas instâncias; são as estratégias de alocação que fazem isso.) Quando a operação for concluída com êxito, a política de instâncias mistas atualizada será aplicada com êxito ao grupo do Auto Scaling.

    aws autoscaling start-instance-refresh --cli-input-json file://config.json

    Conteúdo de config.json

    { "AutoScalingGroupName":"my-asg", "DesiredConfiguration":{ "MixedInstancesPolicy":{ "LaunchTemplate":{ "LaunchTemplateSpecification":{ "LaunchTemplateId":"lt-073693ed27example", "Version":"$Default" }, "Overrides":[ { "InstanceType":"c5.large" }, { "InstanceType":"c5a.large" }, { "InstanceType":"m5.large" } ] }, "InstancesDistribution":{ "OnDemandAllocationStrategy":"prioritized", "OnDemandBaseCapacity":1, "OnDemandPercentageAboveBaseCapacity":50, "SpotAllocationStrategy":"price-capacity-optimized" } } } }, "Preferences":{ "SkipMatching":true } }