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
Skip matching faz com que o Amazon EC2 Auto Scaling ignore instâncias que já tenham suas 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 skip matching e com a configuração desejada, o Amazon Auto EC2 Scaling verifica 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 da instância for bem-sucedida, o Amazon Auto EC2 Scaling atualiza o grupo para refletir a configuração desejada.
-
Se você iniciar uma atualização de instância com skip matching, mas não especificar a configuração desejada, o Amazon Auto EC2 Scaling verifica se alguma instância corresponde à configuração que você salvou pela última vez no grupo 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ê fez outras alterações na configuração desejada (como alterar sua estratégia de alocação spot), o Amazon EC2 Auto Scaling espera que a atualização da instância seja bem-sucedida. 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
$Default
ou$Latest
como a versão desejada para o seu modelo de execução e, em seguida, cria uma nova versão do modelo de execução enquanto uma atualização de instância está em andamento, todas as instâncias que já foram substituídas serão substituídas novamente. -
A ignorância de correspondência não sabe se um script de dados do usuário no modelo de execução extrairá o código atualizado e o instalará em novas instâncias. Como resultado, a ignorância de correspondência pode ignorar a substituição de instâncias que tenham códigos desatualizados instalados. Nesse caso, você deve desativar a ignorância de correspondência para garantir que todas as instâncias recebam o código mais recente, mesmo sem uma atualização da versão do modelo de execução.
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
-
Use o create-launch-template
comando 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
e o tipo de instânciaami-0123456789abcdef0
.t2.micro
aws ec2 create-launch-template --launch-template-name
my-template-for-auto-scaling
--version-descriptionversion1
\ --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 obter mais informações, consulte Exemplos para criar e gerenciar modelos de lançamento com o AWS CLI.
-
Use o start-instance-refresh
comando para iniciar o fluxo de trabalho de substituição da instância e aplicar seu novo modelo de lançamento com o ID
. Por ser novo, o modelo de execução tem apenas uma versão. Isso significa que a versãolt-068f72b729example
1
do modelo de execução é o destino dessa atualização de instâncias. Se ocorrer um evento de escalabilidade horizontal durante a atualização da instância e o Amazon EC2 Auto Scaling provisionar novas instâncias usando a versão desse modelo1
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
-
Use o create-launch-template
comando 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-descriptionversion1
\ --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 obter mais informações, consulte Exemplos para criar e gerenciar modelos de lançamento com o AWS CLI.
-
Para ver a política de instâncias mistas existente para seu grupo de Auto Scaling, execute o describe-auto-scaling-groups
comando. 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, ... } ] } -
Use o start-instance-refresh
comando para iniciar o fluxo de trabalho de substituição da instância e aplicar seu novo modelo de lançamento com o ID
. Por ser novo, o modelo de execução tem apenas uma versão. Isso significa que a versãolt-04d5cc9b88example
1
do modelo de execução é o destino dessa atualização de instâncias. Se ocorrer um evento de escalabilidade horizontal durante a atualização da instância e o Amazon EC2 Auto Scaling provisionar novas instâncias usando a versão desse modelo1
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
-
Para ver a política de instâncias mistas existente para seu grupo de Auto Scaling, execute o describe-auto-scaling-groups
comando. 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, ... } ] } -
Use o start-instance-refresh
comando 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
. 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.m5a.large
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 } }