Etiquetar grupos e instâncias do Auto Scaling - Amazon EC2 Auto Scaling

Etiquetar grupos e instâncias do Auto Scaling

Uma tag é um rótulo de atributo personalizado que você ou a AWS atribui a um recurso da AWS. Cada tag tem duas partes:

  • Uma chave de etiqueta (por exemplo, costcenter, environment ou project)

  • Um campo opcional conhecido como um valor de etiqueta (por exemplo, 111122223333 ou production)

As tags ajudam você a fazer o seguinte:

  • Monitorar seus custos da AWS. Você pode ativar essas tags no painel do AWS Billing and Cost Management. A AWS usa as tags para categorizar seus custos e entregar um relatório mensal de alocação de custos para você. Para obter mais informações, consulte Uso de tags de alocação de custos no Guia do usuário do AWS Billing.

  • Controle o acesso a grupos do Auto Scaling com base em tags. É possível usar condições em suas políticas do IAM para controlar o acesso aos grupos do Auto Scaling com base nas tags desse grupo. Para mais informações, consulte Etiquetas para segurança.

  • Filtre e pesquise por grupos do Auto Scaling com base nas tags adicionadas. Para mais informações, consulte Usar etiquetas para filtrar grupos do Auto Scaling.

  • Identificar e organizar seus recursos da AWS. Muitos Serviços da AWS são compatíveis com marcação, permitindo que você atribua a mesma tag a recursos de diferentes serviços para indicar que os recursos estão relacionados.

Você pode marcar grupos do Auto Scaling novos ou existentes. Você também pode propagar tags de um grupo do Auto Scaling para as instâncias do EC2 que ele executa.

As tags não são propagadas para volumes do Amazon EBS. Para adicionar tags a volumes do Amazon EBS, especifique as tags em um modelo de execução. Para mais informações, consulte Criar um modelo de execução para um grupo do Auto Scaling.

Você pode criar e gerenciar tags do pelo AWS Management Console, AWS CLI ou SDKs.

Restrições de nomeação e uso de tags

As restrições básicas a seguir se aplicam às tags.

  • O número máximo de tags por recurso é 50.

  • O número máximo de tags que você pode adicionar ou remover usando uma única chamada é 25.

  • O comprimento máximo da chave é 128 caracteres Unicode.

  • O comprimento máximo do valor é 256 caracteres Unicode.

  • As chaves e os valores de tags diferenciam maiúsculas de minúsculas. Como melhor prática, adote uma estratégia para letras maiúsculas em tags e implemente-a de forma consistente em todos os tipos de recursos.

  • Não use o prefixo aws: no nome nem no valor de suas tags, pois ele é reservado para uso da AWS. Você não pode editar nem excluir nomes ou valores de tags com esse prefixo, e elas não são contadas em sua quota de tags por recurso.

Ciclo de vida de marcação de instâncias do EC2

Se você tiver optado por propagar tags para suas instâncias do EC2, as tags serão gerenciadas da seguinte forma:

  • Quando um grupo do Auto Scaling executa instâncias, ele adiciona tags às instâncias durante a criação do recurso, e não após o recurso ser criado.

  • O grupo do Auto Scaling adiciona automaticamente uma etiqueta às instâncias com uma chave do aws:autoscaling:groupName e um valor do nome do grupo do Auto Scaling.

  • Se você especificar tags de instância em seu modelo de execução e optar por propagar tags de seu grupo para suas instâncias, todas as tags serão mescladas. Se a mesma chave da etiqueta for especificada para uma etiqueta no modelo de execução e uma etiqueta no grupo do Auto Scaling, então, o valor da etiqueta do grupo terá precedência.

  • Quando você anexa instâncias existentes, o grupo do Auto Scaling adiciona as tags às instâncias substituindo todas as tags existentes pela mesma chave de tag. Ele também adiciona uma etiqueta com uma chave do aws:autoscaling:groupName e um valor do nome do grupo do Auto Scaling.

  • Quando você desvincula uma instância de um grupo do Auto Scaling, ele remove apenas a tag aws:autoscaling:groupName.

Marcar seus grupos do Auto Scaling

Quando você adiciona uma tag a seu grupo do Auto Scaling, você pode especificar se ela deve ser adicionada às instâncias iniciadas no grupo do Auto Scaling. Se você modificar uma tag, a versão atualizada da tag será adicionada às instâncias executadas no grupo do Auto Scaling depois da alteração. Se você criar ou modificar uma tag em um grupo do Auto Scaling, essas alterações não serão feitas em instâncias que já estão em execução no grupo do Auto Scaling.

Adicionar ou modificar tags (console)

Para marcar um grupo do Auto Scaling na criação

Ao usar o console do Amazon EC2 para criar um grupo do Auto Scaling, você pode especificar valores e chaves de tags na página Add tags (Configurar tags) do assistente de criação de grupo do Auto Scaling. Para propagar uma tag às instâncias executadas no grupo do Auto Scaling, mantenha a opção Tag New Instances (Marcar novas instâncias) para essa tag selecionada. Caso contrário, desmarque-a.

Para adicionar ou modificar tags de um grupo do Auto Scaling existente

  1. Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/ e escolha grupos do Auto Scaling no painel de navegação.

  2. Marque a caixa de seleção ao lado do grupo do Auto Scaling.

    Um painel dividido é aberto na parte inferior da página Auto Scaling groups (Grupos do Auto Scaling).

  3. Na guia Detalhes escolha Tags, Editar.

  4. Para modificar as tags existentes, edite Chave e Valor.

  5. Para adicionar uma nova tag, escolha Adicionar tag e edite Chave e Valor. É possível manter a opção Tag new instances (Marcar novas instâncias) selecionada para adicionar a tag às instâncias executadas no grupo do Auto Scaling automaticamente e, caso contrário, desmarcá-la.

  6. Ao concluir a inclusão de tags, selecione Update (Atualizar).

Adicionar ou modificar tags (AWS CLI)

Os exemplos a seguir mostram como usar a AWS CLI para adicionar tags ao criar grupos do Auto Scaling e para adicionar ou modificar tags de grupos do Auto Scaling existentes.

Para marcar um grupo do Auto Scaling na criação

Use o comando create-auto-scaling-group para criar um novo grupo do Auto Scaling e adicionar uma tag, por exemplo,environment=production, ao grupo do Auto Scaling. A tag também é adicionada a todas as instâncias executadas no grupo do Auto Scaling.

aws autoscaling create-auto-scaling-group --auto-scaling-group-name my-asg \ --launch-configuration-name my-launch-config --min-size 1 --max-size 3 \ --vpc-zone-identifier "subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782" \ --tags Key=environment,Value=production,PropagateAtLaunch=true

Para criar ou modificar tags de um grupo do Auto Scaling existente

Use o comando create-or-update-tags para criar ou modificar uma tag. Por exemplo, o comando a seguir adiciona as tags costcenter=cc123 e Name=my-asg. As tags também são adicionadas a todas as instâncias executadas no grupo do Auto Scaling após essa alteração. Se uma tag com uma dessas chaves já existir, a tag existente será substituída. O console do Amazon EC2 associa o nome de exibição para cada instância ao nome especificado para a chave Name (diferencia maiúsculas de minúsculas).

aws autoscaling create-or-update-tags \ --tags ResourceId=my-asg,ResourceType=auto-scaling-group,Key=Name,Value=my-asg,PropagateAtLaunch=true \ ResourceId=my-asg,ResourceType=auto-scaling-group,Key=costcenter,Value=cc123,PropagateAtLaunch=true

Descrever as tags para um grupo do Auto Scaling (AWS CLI)

Se você deseja visualizar as tags que são aplicadas à uma função do Auto Scaling específica, pode usar os seguintes comandos:

  • describe-tags: você fornece o nome do grupo do Auto Scaling para visualizar uma lista das tags do grupo especificado.

    aws autoscaling describe-tags --filters Name=auto-scaling-group,Values=my-asg

    Esta é uma resposta de exemplo.

    { "Tags": [ { "ResourceType": "auto-scaling-group", "ResourceId": "my-asg", "PropagateAtLaunch": true, "Value": "production", "Key": "environment" } ] }
  • describe-auto-scaling-groups: você fornece o nome do grupo do Auto Scaling para visualizar os atributos do grupo especificado, incluindo quaisquer tags.

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

    Esta é uma resposta de exemplo.

    { "AutoScalingGroups": [ { "AutoScalingGroupARN": "arn", "HealthCheckGracePeriod": 0, "SuspendedProcesses": [], "DesiredCapacity": 1, "Tags": [ { "ResourceType": "auto-scaling-group", "ResourceId": "my-asg", "PropagateAtLaunch": true, "Value": "production", "Key": "environment" } ], "EnabledMetrics": [], "LoadBalancerNames": [], "AutoScalingGroupName": "my-asg", ... } ] }

Excluir tags

Você pode excluir uma tag associada a seu grupo do Auto Scaling a qualquer momento.

Excluir tags (console)

Para excluir uma tag

  1. Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/ e escolha grupos do Auto Scaling no painel de navegação.

  2. Marque a caixa de seleção ao lado de um grupo existente.

    Um painel dividido é aberto na parte inferior da página Auto Scaling groups (Grupos do Auto Scaling).

  3. Na guia Detalhes escolha Tags, Editar.

  4. Escolha Remove (Remover) ao lado da tag.

  5. Escolha Update (Atualizar).

Excluir tags (AWS CLI)

Use o comando delete-tags para excluir uma tag. Por exemplo, o comando a seguir exclui uma tag com uma chave de environment.

aws autoscaling delete-tags --tags "ResourceId=my-asg,ResourceType=auto-scaling-group,Key=environment"

Você deve especificar a chave da tag, mas você não precisa especificar o valor. Se você especificar um valor e o valor estiver incorreto, a tag não será excluída.

Etiquetas para segurança

Use tags para controlar quais grupos do Auto Scaling podem ser criados, modificados ou excluídos por usuários e grupos do IAM em sua conta. Forneça informações de tags no elemento de condição de uma política do IAM usando uma ou mais das seguintes chaves de condição:

  • Use autoscaling:ResourceTag/tag-key: tag-value para permitir (ou negar) ações do usuário em grupos do Auto Scaling com tags específicas.

  • Use aws:RequestTag/tag-key: tag-value para exigir que uma tag específica esteja presente (ou ausente) em uma solicitação.

  • Use aws:TagKeys [tag-key, ...] para exigir que chaves de tag específicas estejam presentes (ou ausentes) em uma solicitação.

Por exemplo, você pode negar acesso a todos os grupos do Auto Scaling que incluam uma tag com a chave environment e o valor production, conforme mostrado no exemplo a seguir.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "autoscaling:CreateAutoScalingGroup", "autoscaling:UpdateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup" ], "Resource": "*", "Condition": { "StringEquals": {"autoscaling:ResourceTag/environment": "production"} } } ] }

Para obter mais exemplos, consulte Exemplos de políticas baseadas em identidade do Amazon EC2 Auto Scaling.

Controlar o acesso usando etiquetas

O IAM também oferece suporte ao controle de quais usuários e grupos do IAM em sua conta têm permissões para adicionar, modificar ou excluir tags para grupos do Auto Scaling.

Por exemplo, você pode criar uma política do IAM que permita remover somente a tag com a chave temporary dos grupos do Auto Scaling.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "autoscaling:DeleteTags" ], "Resource": "*", "Condition": { "ForAllValues:StringEquals": { "aws:TagKeys": ["temporary"] } } } ] }

Para obter mais exemplos, consulte Exemplos de políticas baseadas em identidade do Amazon EC2 Auto Scaling.

nota

Mesmo que você tenha uma política que restrinja os usuários de executar uma operação de marcação (ou desmarcação) em um grupo do Auto Scaling, isso não os impede de alterar manualmente as marcações nas instâncias após elas serem executadas. Para exemplos que controlam o acesso a tags em instâncias do EC2, consulte Exemplo: marcação de recursos no Manual do usuário do Amazon EC2 para instâncias do Linux.

Usar etiquetas para filtrar grupos do Auto Scaling

Os exemplos a seguir mostram como usar filtros com o comando describe-auto-scaling-groups para descrever grupos do Auto Scaling com etiquetas específicas. A filtragem por etiquetas é limitada à AWS CLI ou um SDK, e não está disponível no console.

Considerações sobre filtragem

  • É possível especificar vários filtros e vários valores de filtro em uma única solicitação.

  • Não é possível usar curingas com os valores de filtro.

  • Os valores do filtro diferenciam maiúsculas de minúsculas.

Exemplo: descreva grupos do Auto Scaling com um par de chave e valor de etiqueta específicos

O comando a seguir mostra como filtrar resultados para mostrar apenas grupos do Auto Scaling com a chave de etiqueta e o par de valores de environment=production.

aws autoscaling describe-auto-scaling-groups \ --filters Name=tag-key,Values=environment Name=tag-value,Values=production

Esta é uma resposta de exemplo.

{ "AutoScalingGroups": [ { "AutoScalingGroupARN": "arn", "HealthCheckGracePeriod": 0, "SuspendedProcesses": [], "DesiredCapacity": 1, "Tags": [ { "ResourceType": "auto-scaling-group", "ResourceId": "my-asg", "PropagateAtLaunch": true, "Value": "production", "Key": "environment" } ], "EnabledMetrics": [], "LoadBalancerNames": [], "AutoScalingGroupName": "my-asg", ... } ] }

Como alternativa, você pode especificar etiquetas usando um filtro tag:<key>. Por exemplo, o comando a seguir mostra como filtrar resultados para mostrar apenas grupos do Auto Scaling com a chave de etiqueta e o par de valores de environment=production. Este filtro é formatado da seguinte maneira: Name=tag:<key>,Values=<value>, com <key> e <value> representando uma etiqueta de chave e par de valor.

aws autoscaling describe-auto-scaling-groups \ --filters Name=tag:environment,Values=production

Também é possível filtrar a saída AWS CLI usando a opção --query. O exemplo a seguir mostra como limitar saída AWS CLI para o comando anterior apenas para o nome do grupo, tamanho mínimo, tamanho máximo e atributos de capacidade desejados.

aws autoscaling describe-auto-scaling-groups \ --filters Name=tag:environment,Values=production \ --query "AutoScalingGroups[].{AutoScalingGroupName: AutoScalingGroupName, MinSize: MinSize, MaxSize: MaxSize, DesiredCapacity: DesiredCapacity}"

Esta é uma resposta de exemplo.

[ { "AutoScalingGroupName": "my-asg", "MinSize": 0, "MaxSize": 10, "DesiredCapacity": 1 } ... ]

Para obter mais informações sobre filtragem, consulte Filtragem da saída da AWS CLI no Guia do usuário da AWS Command Line Interface.

Exemplo: descreva grupos do Auto Scaling com etiquetas que correspondam à chave de etiqueta especificada

O comando a seguir mostra como filtrar resultados para mostrar apenas grupos do Auto Scaling com a etiqueta environment, independentemente do valor de etiqueta.

aws autoscaling describe-auto-scaling-groups \ --filters Name=tag-key,Values=environment

Exemplo: descreva grupos do Auto Scaling com etiquetas que correspondam ao conjunto de chaves de etiquetas especificado

O comando a seguir mostra como filtrar resultados para mostrar apenas grupos do Auto Scaling com etiquetas para environment e project, independentemente dos valores das etiquetas.

aws autoscaling describe-auto-scaling-groups \ --filters Name=tag-key,Values=environment Name=tag-key,Values=project

Exemplo: descreva grupos do Auto Scaling com etiquetas que correspondam a pelo menos uma das chaves de etiquetas especificadas

O comando a seguir mostra como filtrar resultados para mostrar apenas grupos do Auto Scaling com etiquetas para environment ou project, independentemente dos valores das etiquetas.

aws autoscaling describe-auto-scaling-groups \ --filters Name=tag-key,Values=environment,project

Exemplo: descreva grupos do Auto Scaling com o valor de etiqueta especificado

O comando a seguir mostra como filtrar resultados para mostrar apenas grupos do Auto Scaling com o valor de etiqueta de production, independentemente da chave de etiqueta.

aws autoscaling describe-auto-scaling-groups \ --filters Name=tag-value,Values=production

Exemplo: descreva grupos do Auto Scaling com o conjunto de valores de etiquetas especificado

O comando a seguir mostra como filtrar resultados para mostrar apenas grupos do Auto Scaling com os valores de production e development, independentemente da chave de etiqueta.

aws autoscaling describe-auto-scaling-groups \ --filters Name=tag-value,Values=production Name=tag-value,Values=development

Exemplo: descreva grupos do Auto Scaling com etiquetas que correspondam a pelo menos um dos valores das etiquetas especificados

O comando a seguir mostra como filtrar resultados para mostrar apenas grupos do Auto Scaling com o valor de etiqueta de production ou development, independentemente da chave de etiqueta.

aws autoscaling describe-auto-scaling-groups \ --filters Name=tag-value,Values=production,development

Exemplo: descreva grupos do Auto Scaling com etiquetas que correspondam a várias chaves e valores de etiquetas

Você também pode combinar filtros para criar lógicas AND e OR personalizadas para fazer uma filtragem mais complexa.

O comando a seguir mostra como filtrar resultados para mostrar apenas grupos do Auto Scaling com um conjunto específico de etiquetas. Uma chave de tag é environment AND o valor da tag é (production OR development) AND a outra chave de tag é costcenter AND o valor da tag é cc123.

aws autoscaling describe-auto-scaling-groups \ --filters Name=tag:environment,Values=production,development Name=tag:costcenter,Values=cc123