Marcar recursos do Amazon RDS - Amazon Aurora

Marcar recursos do Amazon RDS

Uma tag do Amazon RDS é um par de nome-valor que você define e associa a um recurso do Amazon RDS, como uma instância ou um snapshot de banco de dados. O nome é referido como chave. Opcionalmente, é possível fornecer um valor para a chave.

Você pode usar o AWS Management Console, a AWS CLI ou a API do Amazon RDS para adicionar, listar e excluir tags em recursos do Amazon RDS. Ao usar a CLI ou a API, forneça o nome do recurso da Amazon (ARN) do recurso do RDS com o qual deseja trabalhar. Para obter mais informações sobre a criação de um ARN, consulte Criar um ARN para o Amazon RDS.

Por que usar tags de recurso do Amazon RDS?

É possível usar tags para fazer o seguinte:

  • Categorize recursos do RDS por aplicação, projeto, departamento, ambiente e assim por diante. Por exemplo, é possível usar uma chave de tag para definir uma categoria, na qual o valor da tag é um item nessa categoria. É possível criar a tag environment=prod. Ou você pode definir uma chave de tag como project e um valor de tag de Salix, o que indica que um recurso do Amazon RDS está atribuído ao projeto Salix.

  • Automatize tarefas de gerenciamento de recursos. Por exemplo, é possível criar uma janela de manutenção para instâncias marcadas com environment=prod que seja diferente da janela para instâncias marcadas com environment=test. Também é possível configurar snapshots de banco de dados automáticos para instâncias marcadas com environment=prod.

  • Controle o acesso aos recursos do RDS em uma política do IAM. Faça isso usando a chave de condição global aws:ResourceTag/tag-key. Por exemplo, uma política pode permitir que somente usuários do grupo DBAdmin modifiquem instâncias de banco de dados marcadas com environment=prod. Consulte informações sobre como gerenciar o acesso a recursos marcados com políticas do IAM em Gerenciamento de identidade e acesso no Amazon Aurora e em Controlar o acesso aos recursos da AWS no Guia do usuário do AWS Identity and Access Management.

  • Monitore recursos com base em uma tag. Por exemplo, é possível criar um painel do Amazon CloudWatch para instâncias de banco de dados marcadas com environment=prod.

  • Monitore custos agrupando despesas de recursos marcados com tags semelhantes. Por exemplo, se marcar os recursos do RDS associados ao projeto Salix com project=Salix, você poderá gerar relatórios de custos e alocar despesas para esse projeto. Para ter mais informações, consulte Como o faturamento da AWS funciona com tags no Amazon RDS.

Como as tags de recurso do Amazon RDS funcionam

AWSA não aplica nenhum significado semântico às suas tags. Tags são interpretadas estritamente como sequências de caracteres.

Conjuntos de tags no Amazon RDS

Cada recurso do Amazon RDS tem um contêiner chamado conjunto de tags. O contêiner inclui todas as tags atribuídas ao recurso. Um recurso tem exatamente um conjunto de tags.

Um conjunto de tags contém de 0 a 50 tags. Se você adicionar uma tag a um recurso do RDS que tenha a mesma chave que uma tag existente no recurso, o novo valor substituirá o antigo.

Estrutura de tags no Amazon RDS

A estrutura de uma tag do RDS é a seguinte:

Chave de tag

A chave é o nome obrigatório da tag. O valor da string deve ter de 1 a 128 caracteres Unicode e não pode ter os prefixos aws: ou rds:. A string pode conter apenas o conjunto de letras, números e espaços em branco Unicode, _, ., :, /, =, +, - e @. O regex Java é "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$". As chaves da tag fazem distinção entre maiúsculas e minúsculas. Assim, as chaves project e Project são distintas.

Uma chave é exclusiva a um conjunto de tags. Por exemplo, não pode haver um par de chaves em um conjunto de tags com a mesma chave mas com valores diferentes, como project=Trinity e project=Xanadu.

Valor da tag

O valor é um valor de string opcional da tag. O valor da string deve ter de 1 a 256 caracteres Unicode. A string pode conter apenas o conjunto de letras, números e espaços em branco Unicode, _, ., :, /, =, +, - e @. O regex Java é "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$". Os valores de tags diferenciam maiúsculas de minúsculas. Assim, os valores prod e Prod são distintos.

Os valores não precisam ser exclusivos em um conjunto de tags e podem ser nulos. Por exemplo, você pode ter um par de valor-chave em um conjunto de tag de project=Trinity e cost-center=Trinity.

Recursos do Amazon RDS elegíveis para marcação

Você pode marcar os seguintes recursos do Amazon RDS:

  • Instâncias de banco de dados

  • clusters de banco de dados

  • Endpoints do cluster de banco de dados

  • Réplicas de leitura

  • DB snapshots

  • Snapshots de cluster de banco de dados

  • Instâncias de bancos de dados reservadas

  • Assinaturas de eventos

  • Grupos de opções de banco de dados

  • Grupos de parâmetros do banco de dados

  • Grupos de parâmetros de cluster de banco de dados

  • Grupos de sub-redes de banco de dados

  • RDS Proxies

  • Endpoint do RDS Proxy

    nota

    Atualmente, você não pode etiquetar RDS Proxies e endpoints do RDS Proxy usando o AWS Management Console.

  • Implantações azuis/verdes

  • Integrações ETL zero (pré-visualização)

Como o faturamento da AWS funciona com tags no Amazon RDS

Também é possível utilizar tags para organizar sua fatura da AWS para refletir sua própria estrutura de custo. Para fazer isso, inscreva-se para obter a fatura da sua Conta da AWS com os valores de chave de tag incluídos. Então, para ver o custo de recursos combinados, organize suas informações de faturamento de acordo com recursos com os mesmos valores de chave de tags. Por exemplo, é possível marcar vários recursos com um nome de aplicação específico, e depois organizar suas informações de faturamento para ver o custo total daquela aplicação em vários serviços. Para obter mais informações, consulte Usar tags de alocação de custos no Guia do usuário do AWS Billing.

Como as tags de alocação de custos funcionam com snapshots de cluster de banco de dados

É possível adicionar uma tag a um snapshot de cluster de banco de dados. No entanto, sua conta não refletirá esse agrupamento. Para que tags de alocação de custo sejam aplicadas a snapshots de cluster de banco de dados, as seguintes condições devem ser atendidas:

  • As tags devem ser anexadas à instância de banco de dados principal.

  • A instância de banco de dados principal deve estar na mesma Conta da AWS que o snapshot do cluster de banco de dados.

  • A instância de banco de dados principal deve estar na mesma Região da AWS que o snapshot do cluster de banco de dados.

Os snapshots do cluster de banco de dados serão considerados órfãos se não estiverem na mesma região da instância de banco de dados principal. Os custos de snapshots órfãos são agregados em um único item de linha não marcado. Os snapshots do cluster de banco de dados entre contas não são considerados órfãos quando as seguintes condições são atendidas:

  • Eles estão na mesma região da instância de banco de dados principal.

  • A instância de banco de dados principal pertence à conta de origem.

    nota

    Se a instância de banco de dados principal pertencer a uma conta diferente, as tags de alocação de custos não se aplicarão aos snapshots de várias contas na conta de destino.

Práticas recomendadas para marcação de recursos do Amazon RDS

Ao usar tags, sugerimos seguir estas práticas recomendadas:

  • Convenções de documentos para uso de tags que são seguidas por todas as equipes da organização. Acima de tudo, os nomes devem ser descritivos e consistentes. Por exemplo, padronize o formato environment:prod em vez de marcar alguns recursos com env:production.

    Importante

    Não armazene informações de identificação pessoal (PII) nem outras informações confidenciais ou sigilosas em tags.

  • Automatize a marcação para garantir a consistência. Por exemplo, é possível usar as seguintes técnicas:

    • Inclua tags em um modelo do AWS CloudFormation. Ao criar recursos com o modelo, eles são marcados automaticamente.

    • Defina e aplique tags usando funções do AWS Lambda.

    • Crie um documento do SSM que inclua etapas para adicionar tags aos recursos do RDS.

  • Use tags somente quando necessário. É possível adicionar até 50 tags a um único recurso do RDS, mas a prática recomendada é evitar a proliferação e a complexidade desnecessárias de tags.

  • Revise as tags periodicamente para verificar a relevância e a precisão. Remova ou modifique as tags desatualizadas conforme necessário.

  • Considere criar tags com o Editor de Tags da AWS no AWS Management Console. É possível usar o Editor de Tags para adicionar tags a vários recursos compatíveis da AWS ao mesmo tempo, incluindo os recursos do RDS. Para obter mais informações, consulte o Tag Editor no Guia do usuário dos Grupos de recursos da AWS.

Gerenciamento de tags no Amazon RDS

Você pode fazer o seguinte:

  • Crie tags ao criar um recurso; por exemplo, ao executar o comando create-db-instance da AWS CLI.

  • Adicione tags a um recurso existente usando o comando add-tags-to-resource.

  • Liste as tags associadas a um recurso específico usando o comando list-tags-for-resource.

  • Atualize as tags usando o comando add-tags-to-resource.

  • Remova as tags de um recurso usando o comando remove-tags-from-resource.

Os procedimentos a seguir mostram como executar operações típicas de marcação em recursos relacionados a instâncias de banco de dados e clusters de bancos de dados do Aurora. Observe que as tags ficam armazenadas em cache para fins de autorização. Por esse motivo, ao adicionar ou atualizar tags nos recursos do Amazon RDS, pode demorar vários minutos para que as modificações sejam disponibilizadas.

O processo para marcar um recurso do Amazon RDS é semelhante para todos os recursos. O procedimento a seguir mostra como marcar uma instância de banco de dados do Amazon RDS.

Para adicionar uma tag a uma instância de banco de dados
  1. Faça login no AWS Management Console e abra o console do Amazon RDS em https://console.aws.amazon.com/rds/.

  2. No painel de navegação, escolha Databases (Bancos de dados).

    nota

    Para filtrar a lista de instâncias de bancos de dados no painel Databases (Bancos de dados), digite uma string de texto de Filter databases (Filtrar bancos de dados). Somente instâncias de banco de dados que contiverem a string aparecerão.

  3. Escolha no nome da instância de banco de dados que você deseja marcar para mostrar os detalhes.

  4. Na seção de detalhes, role para baixo até a seção Tags.

  5. Escolha Adicionar. A janela Add tags (Adicionar tags) é exibida.

    Janela Add tags (Adicionar tags)
  6. Digite um valor para Tag key (Chave de tag) e Value (Valor).

  7. Para adicionar outra tag, escolha Add another Tag (Adicionar outra tag) e digite um valor para Tag key (Chave de tag) e Value (Valor).

    Repita esta etapa quantas vezes for necessário.

  8. Escolha Adicionar.

Para excluir uma tag de uma instância de banco de dados
  1. Faça login no AWS Management Console e abra o console do Amazon RDS em https://console.aws.amazon.com/rds/.

  2. No painel de navegação, escolha Databases (Bancos de dados).

    nota

    Para filtrar a lista de instâncias de bancos de dados no painel Databases (Bancos de dados), digite uma string de texto na caixa Filter databases (Filtrar bancos de dados). Somente instâncias de banco de dados que contiverem a string aparecerão.

  3. Escolha o nome da instância de banco de dados para mostrar os detalhes.

  4. Na seção de detalhes, role para baixo até a seção Tags.

  5. Escolha a tag que você deseja excluir.

    Seção Tags
  6. Selecione Delete (Excluir) e escolha Delete (Excluir) na janela Delete tags (Excluir tags).

É possível adicionar, listar ou remover tags de uma instância de banco de dados usando a AWS CLI.

Para saber mais sobre como criar o ARN necessário, consulte Criar um ARN para o Amazon RDS.

É possível adicionar, listar ou remover tags de uma instância de banco de dados usando a API do Amazon RDS.

Para saber mais sobre como criar o ARN necessário, consulte Criar um ARN para o Amazon RDS.

As tags usam o seguinte esquema ao trabalhar com o XML usando a API do Amazon RDS:

<Tagging> <TagSet> <Tag> <Key>Project</Key> <Value>Trinity</Value> </Tag> <Tag> <Key>User</Key> <Value>Jones</Value> </Tag> </TagSet> </Tagging>

A tabela a seguir fornece uma lista das tags XML permitidas e suas características. Os valores de Key e Value diferenciam letras maiúsculas de minúsculas. Por exemplo, project=Trinity e PROJECT=Trinity são tags distintas.

Elemento de marcação por tag Descrição
TagSet Um conjunto de tags é um contêiner de todas as tags atribuídas a um recurso do Amazon RDS. Só pode haver um conjunto de tags por recurso. Você trabalha com um TagSet somente por meio da API do Amazon RDS.
Tag Uma tag é um par de chave-valor definido pelo usuário. Pode haver de 1 a 50 tags em um conjunto de tags.
Chave

Uma chave é o nome obrigatório da tag. Consulte as restrições em Estrutura de tags no Amazon RDS.

O valor da string pode ter de 1 a 128 caracteres Unicode e não pode ter os prefixos aws: ou rds:. A string pode conter apenas o conjunto de letras em Unicode, dígitos, espaços em branco, '_', '.', '/', '=', '+', '-' (Java regex: "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-]*)$").

As chaves devem ser exclusivas a um conjunto de tags. Por exemplo, não pode haver um par de chaves em um conjunto de tags com a mesma chave mas com valores diferentes, como projeto/Trinity e projeto/Xanadu.

Valor

Um valor é o valor opcional da tag. Consulte as restrições em Estrutura de tags no Amazon RDS.

O valor da string pode ter de 1 a 256 caracteres Unicode e não pode ter os prefixos aws: ou rds:. A string pode conter apenas o conjunto de letras em Unicode, dígitos, espaços em branco, '_', '.', '/', '=', '+', '-' (Java regex: "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-]*)$").

Os valores não têm que ser exclusivos em um conjunto de tags e podem ser nulos. Por exemplo, você pode ter um par de chave-valor em um conjunto de tags definido como projeto/Trinity e centro-custos/Trinity.

Copiar tags para snapshots de cluster de banco de dados

Ao criar ou restaurar um cluster de banco de dados, você pode especificar que as tags do cluster sejam copiadas para snapshots do cluster de banco de dados. A cópia de tags garante que os metadados dos snapshots de banco de dados correspondam aos do cluster de banco de dados de origem. Também garante que quaisquer políticas de acesso do snapshot de banco de dados também correspondam às do cluster de banco de dados de origem. Tags não são copiadas por padrão.

Você pode especificar que as tags sejam copiados para snapshots de banco de dados para as seguintes ações:

  • Criar um cluster de banco de dados

  • Restaurar um cluster de banco de dados

  • Como criar uma réplica de leitura

  • Copiar um snapshot de cluster de banco de dados

nota

Em alguns casos, você pode incluir um valor para o parâmetro --tags do comando create-db-snapshot da AWS CLI. Ou pode fornecer pelo menos uma tag à operação da API CreateDBSnapshot. Nesses casos, o RDS não copia tags da instância de banco de dados de origem para o novo snapshot de banco de dados. Essa funcionalidade é aplicável mesmo que a instância de banco de dados de origem tenha a opção --copy-tags-to-snapshot (CopyTagsToSnapshot) ativada.

Se você seguir essa abordagem, poderá criar uma cópia de uma instância de banco de dados de um snapshot de banco de dados. Essa abordagem evita adicionar tags que não se aplicam à nova instância de banco de dados. Você cria o snapshot de banco de dados com o comando create-db-snapshot da AWS CLI (ou a operação CreateDBSnapshot da API do RDS). Depois de criar o snapshot de banco de dados, é possível adicionar tags conforme descrito posteriormente neste tópico.

Tutorial: Uso de tags para especificar quais clusters de bancos de dados Aurora interromper

Suponha que você esteja criando vários clusters de banco de dados Aurora em um ambiente de desenvolvimento ou teste. Você precisa manter todos esses clusters por vários dias. Alguns dos clusters realizam testes durante a noite. Outros clusters podem ser interrompidos durante a noite e recomeçar no dia seguinte. O exemplo a seguir mostra como atribuir uma tag aos clusters que são adequados para parar durante a noite. Em seguida, o exemplo mostra como um script pode detectar quais clusters têm essa tag e, em seguida, parar esses clusters. Neste exemplo, a parte de valor do par chave-valor não importa. A presença da tag stoppable significa que o cluster tem essa propriedade definida pelo usuário.

Para especificar quais clusters de bancos de dados Aurora devem ser interrompidas
  1. Primeiro, determine o ARN de um cluster que você queira designar como passível de ser interrompida.

    Os comandos e as APIs para marcação funcionam com ARNs. Dessa forma, eles podem funcionar perfeitamente em regiões da AWS, contas da AWS e diferentes tipos de recursos que podem ter nomes curtos idênticos. Você pode especificar o ARN em vez do ID do cluster nos comandos CLI que se operam em clusters. Substitua o nome do seu próprio cluster por dev-test-cluster. Nos comandos subsequentes que usam parâmetros ARN, substitua o ARN do seu próprio cluster. O ARN inclui seu próprio ID de conta da AWS e o nome da região da AWS onde seu cluster está localizado.

    $ aws rds describe-db-clusters --db-cluster-identifier dev-test-cluster \ --query "*[].{DBClusterArn:DBClusterArn}" --output text arn:aws:rds:us-east-1:123456789:cluster:dev-test-cluster
  2. Adicione a tag stoppable a esse cluster.

    Selecione o nome dessa tag. Essa abordagem significa que você pode evitar a criação de uma convenção de nomenclatura que codifique todas as informações relevantes nos nomes. Nessa convenção, você pode codificar informações no nome da instância de banco de dados ou nos nomes de outros recursos. Como esse exemplo trata a tag como um atributo presente ou ausente, ele omite a parte Value= do parâmetro --tags.

    $ aws rds add-tags-to-resource \ --resource-name arn:aws:rds:us-east-1:123456789:cluster:dev-test-cluster \ --tags Key=stoppable
  3. Confirme se a etiqueta está presente no cluster.

    Esses comandos recuperam as informações de tag para o cluster no formato JSON e em texto separado por tabulação simples.

    $ aws rds list-tags-for-resource \ --resource-name arn:aws:rds:us-east-1:123456789:cluster:dev-test-cluster { "TagList": [ { "Key": "stoppable", "Value": "" } ] } $ aws rds list-tags-for-resource \ --resource-name arn:aws:rds:us-east-1:123456789:cluster:dev-test-cluster --output text TAGLIST stoppable
  4. Para interromper todos os clusters designados como stoppable, prepare uma lista de todos os clusters. Percorra a lista e verifique se cada cluster está marcado com o atributo relevante.

    Este exemplo do Linux usa scripts de shell para salvar a lista de ARNs de cluster em um arquivo temporário e, em seguida, executar comandos CLI para cada cluster.

    $ aws rds describe-db-clusters --query "*[].[DBClusterArn]" --output text >/tmp/cluster_arns.lst $ for arn in $(cat /tmp/cluster_arns.lst) do match="$(aws rds list-tags-for-resource --resource-name $arn --output text | grep 'TAGLIST\tstoppable')" if [[ ! -z "$match" ]] then echo "Cluster $arn is tagged as stoppable. Stopping it now." # Note that you can specify the full ARN value as the parameter instead of the short ID 'dev-test-cluster'. aws rds stop-db-cluster --db-cluster-identifier $arn fi done Cluster arn:aws:rds:us-east-1:123456789:cluster:dev-test-cluster is tagged as stoppable. Stopping it now. { "DBCluster": { "AllocatedStorage": 1, "AvailabilityZones": [ "us-east-1e", "us-east-1c", "us-east-1d" ], "BackupRetentionPeriod": 1, "DBClusterIdentifier": "dev-test-cluster", ...

Você pode executar um script como este no final de cada dia para garantir que os clusters não essenciais sejam interrompidas. Você também pode agendar um trabalho com um utilitário, como cron, para realizar essa verificação todas as noites. Por exemplo, você pode fazer isso caso alguns clusters sejam deixados em execução por engano. Nesse caso, você pode ajustar o comando que prepara a lista de clusters para conferir.

O comando a seguir produz uma lista de seus clusters, mas apenas os que estão no estado available. O script pode ignorar clusters que já estão parados, porque eles terão valores de status diferentes, como stopped ou stopping.

$ aws rds describe-db-clusters \ --query '*[].{DBClusterArn:DBClusterArn,Status:Status}|[?Status == `available`]|[].{DBClusterArn:DBClusterArn}' \ --output text arn:aws:rds:us-east-1:123456789:cluster:cluster-2447 arn:aws:rds:us-east-1:123456789:cluster:cluster-3395 arn:aws:rds:us-east-1:123456789:cluster:dev-test-cluster arn:aws:rds:us-east-1:123456789:cluster:pg2-cluster
dica

Você pode usar a atribuição de tags e encontrar clusters com elas a fim de reduzir custos de outras maneiras. Por exemplo, considere o cenário com clusters de banco de dados do Aurora utilizados para desenvolvimento e testes. Aqui, você pode designar que alguns clusters sejam excluídos no final de cada dia ou que apenas as instâncias de banco de dados do leitor sejam excluídas. Ou você pode designar que alguns tenham as instâncias de banco de dados alteradas para classes de instância de banco de dados pequenas durante os períodos de baixa utilização esperada.