Exemplos de atualização de instâncias que permitem ignorar correspondência com a AWS Command Line Interface (AWS CLI) - Amazon EC2 Auto Scaling

Exemplos de atualização de instâncias que permitem ignorar correspondência com a AWS Command Line Interface (AWS CLI)

Por padrão, o Amazon EC2 Auto Scaling pode substituir qualquer instância em um grupo do Auto Scaling durante uma atualização de instância. Ao habilitar o recurso de ignorar correspondência, você pode evitar a substituição de instâncias que já têm a configuração desejada.

Ignorar a correspondência torna mais eficiente:

  • Migrar de uma configuração de execução para a versão padrão ou mais recente de um modelo de execução após iniciar uma ou mais instâncias de teste.

  • Migre de tipos de instância indesejados para tipos de instância que são mais adequados à sua aplicação.

  • Reverter alterações após uma ou mais instâncias serem substituídas como parte de uma atualização de instância com falha ou cancelada.

nota

O recurso de ignorar correspondência não poderá ser usado para atualizar um grupo do Auto Scaling que usa uma configuração de execução, a menos que um modelo de execução seja especificado para a configuração desejada.

Os exemplos da AWS CLI a seguir demonstram alguns cenários para o uso do recurso de ignorar correspondência. Se encontrar um erro enquanto executa esses comandos, verifique se você atualizou a AWS CLI localmente para a versão mais recente.

Migrar para a versão padrão do modelo de execução

O exemplo a seguir mostra um comando start-instance-refresh que atualiza um grupo do Auto Scaling para a versão padrão do modelo de execução. Se houver instâncias que já estejam usando a versão padrão do modelo de execução especificado, elas não serão substituídas.

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 bem-sucedido, o comando gerará uma resposta JSON que contém o ID da atualização da instância.

Migrar para a versão mais recente do modelo de execução

O exemplo a seguir mostra um comando start-instance-refresh que atualiza um grupo do Auto Scaling para a versão mais recente do modelo de execução. Se houver instâncias que já estejam usando a versão mais recente do modelo de execução especificado, elas não serão substituídas.

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": "$Latest" } }, "Preferences": { "SkipMatching": true } }

Se bem-sucedido, o comando gerará uma resposta JSON que contém o ID da atualização da instância.

Ignorar correspondências e grupos de instâncias mistas

Para atualizar um grupo de instâncias mistas, você deverá especificar configurações para uma política de instâncias mistas em sua configuração desejada. Para quaisquer parâmetros de política de instâncias mistas não fornecidos na configuração desejada, o Amazon EC2 Auto Scaling redefine o valor do parâmetro para um valor padrão.

Migrar para a versão padrão do modelo de execução

O exemplo a seguir mostra um comando start-instance-refresh que atualiza um grupo de instâncias mistas para a versão padrão do modelo de execução. Se houver instâncias que já estejam usando a versão padrão do modelo de execução especificado, elas não serão substituídas.

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-068f72b729example", "Version":"$Default" }, "Overrides":[ ... existing instance types ... ] }, "InstancesDistribution":{ "OnDemandPercentageAboveBaseCapacity":50, "SpotAllocationStrategy":"capacity-optimized" } } }, "Preferences":{ "SkipMatching":true } }

Se bem-sucedido, o comando gerará uma resposta JSON que contém o ID da atualização da instância.

Migrar para a versão mais recente do modelo de execução

O exemplo a seguir mostra um comando start-instance-refresh que atualiza um grupo de instâncias mistas para a versão mais recente do modelo de execução. Se houver instâncias que já estejam usando a versão mais recente do modelo de execução especificado, elas não serão substituídas.

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-068f72b729example", "Version":"$Latest" }, "Overrides":[ ... existing instance types ... ] }, "InstancesDistribution":{ "OnDemandPercentageAboveBaseCapacity":50, "SpotAllocationStrategy":"capacity-optimized" } } }, "Preferences":{ "SkipMatching":true } }

Se bem-sucedido, o comando gerará uma resposta JSON que contém o ID da atualização da instância.

Migrar para fora de tipos de instâncias indesejados

Quando você tem um grupo de instâncias mistas, geralmente tem um conjunto de substituições de modelo de execução (tipos de instâncias) que são usadas para provisionar instâncias. Os tipos de instâncias estão contidos em uma seção Overrides. Para informar o Amazon EC2 Auto Scaling que você deseja substituir instâncias que usam um tipo de instância específico, sua configuração desejada deve especificar a seção Overrides sem o tipo de instância indesejado. Quando um tipo de instância em seu grupo não corresponde a um dos tipos de instância na seção Overrides, as instâncias são substituídas como parte da atualização da instância. Observe que uma atualização de instância não escolhe os grupos de instâncias dos quais provisionar as novas instâncias; em vez disso, as estratégias de alocação fazem isso.

O exemplo a seguir mostra um comando start-instance-refresh que atualiza um grupo de instâncias mistas substituindo quaisquer instâncias que não correspondem a um tipo de instância especificado na configuração desejada.

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

Conteúdo de config.json.

{ "AutoScalingGroupName":"my-asg", "DesiredConfiguration":{ "MixedInstancesPolicy":{ "LaunchTemplate":{ "LaunchTemplateSpecification":{ ... existing launch template and version ... }, "Overrides":[ { "InstanceType":"c5.large" }, { "InstanceType":"c5a.large" }, { "InstanceType":"m5.large" }, { "InstanceType":"m5a.large" } ] }, "InstancesDistribution":{ "OnDemandPercentageAboveBaseCapacity":50, "SpotAllocationStrategy":"capacity-optimized" } } }, "Preferences":{ "SkipMatching":true } }

Se bem-sucedido, o comando gerará uma resposta JSON que contém o ID da atualização da instância.