Marcar recursos do Amazon RDS - Amazon Aurora

Marcar recursos do Amazon RDS

Você pode usar tags do Amazon RDS para adicionar metadados aos recursos do Amazon RDS. Você pode usar as tags para adicionar suas próprias anotações sobre instâncias de banco de dados, snapshots, Aurora clusters e assim por diante. Fazer isso pode ajudar você a documentar seus Amazon RDS recursos. Você também pode usar as tags com procedimentos de manutenção automatizada.

Especificamente, você pode usar essas tags com políticas do IAM. Também é possível usá-las para gerenciar o acesso aos recursos do RDS e controlar quais ações podem ser aplicadas aos recursos do RDS. Você também pode usar essas tags para monitorar custos agrupando despesas de recursos marcados com tags semelhantes.

Você pode marcar os seguintes recursos do Amazon RDS:

  • Instâncias de banco de dados

  • clusters 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

  • Implantações azuis/verdes

nota

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

Visão geral de tags de recurso do Amazon RDS

Uma tag do Amazon RDS é um par de nome/valor que você define e associa a um recurso do Amazon RDS. O nome é referido como a chave. Fornecer um valor para a chave é opcional. É possível usar tags para atribuir informações arbitrárias a um domínio do Amazon RDS. É possível usar uma chave de tag, por exemplo, para definir uma categoria, e o valor da tag pode ser um item nessa categoria. Por exemplo, você pode definir uma chave de tag como “projeto” e um valor de tag como “Salix”. Nesse caso, isso indica que o recurso do Amazon RDS está atribuído ao projeto Salix. As tags também podem ser usadas para designar recursos do Amazon RDS como sendo usados para testes ou produção, usando uma chave como environment=test ou environment=production. Recomendamos que você use um conjunto consistente de chaves de tags para facilitar o monitoramento de metadados associados aos recursos do Amazon RDS.

Além disso, você pode usar condições em suas políticas do IAM para controlar o acesso aos recursos da AWS com base nas tags desse recurso. Faça isso usando a chave de condição global aws:ResourceTag/tag-key. Para obter mais informações, consulte Controlar acesso aos recursos da AWS no Guia do usuário do Gerenciamento de Identidade e Acesso da AWS.

Cada recurso do Amazon RDS tem um conjunto que contém todas as tags que estão atribuídas ao recurso do Amazon RDS. Um conjunto de tags pode conter até 50 tags ou estar vazio. 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.

A AWS não aplica nenhum significado semântico às tags. Elas são interpretadas estritamente como strings de caracteres. O RDS pode definir tags em uma instância de banco de dados ou em outros recursos do RDS. A configuração da tag depende das opções que você usa ao criar o recurso. Por exemplo, o Amazon RDS pode adicionar uma tag indicando que uma instância de banco de dados é para produção ou teste.

  • A chave de tags é o nome obrigatório da tag. 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ço em branco, '_', '.', ':', '/', '=', '+', '-', '@' (Java regex: "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$").

  • O valor da tag é um valor de string opcional da tag. O valor da string pode ter de 1 a 256 caracteres Unicode. A string pode conter apenas o conjunto de letras em Unicode, dígitos, espaço 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 valor-chave em um conjunto de tag de project=Trinity e cost-center=Trinity.

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.

As tags são armazenados em cache para finalidade de autorização. Por isso, as adições e atualizações de tags nos recursos do Amazon RDS podem demorar alguns minutos para ser disponibilizadas.

Uso de tags para controle de acesso com IAM

Você pode usar tags com políticas do IAM para gerenciar o acesso a recursos do Amazon RDS. Também é possível usar tags para controlar quais ações podem ser aplicadas aos recursos do Amazon RDS.

Para obter informações sobre como gerenciar o acesso a recursos marcados com políticas do IAM, consulte Gerenciamento de identidade e acesso no Amazon Aurora.

Uso de tags para produzir relatórios de faturamento detalhados

Você também pode usar as tags para monitorar custos agrupando despesas de recursos marcados com tags semelhantes.

Também é possível usar 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, você pode etiquetar 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.

nota

Você pode adicionar uma tag a um snapshot, porém, sua conta não refletirá esse agrupamento.

Adicionar, listar e remover tags

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

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 chave e valor diferenciam letras maiúsculas e minúsculas. Por exemplo, projeto=Trinity e PROJETO=Trinity são duas 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. 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 com valores diferentes, como projeto/Trinity e projeto/Xanadu.

Valor

Um valor é o valor opcional da tag. 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.

Usar o Editor de tags AWS

Você pode navegar e editar as tags em seus recursos do RDS no AWS Management Console usando o editor de tags da AWS. Para obter mais informações, consulte o Tag Editor no Guia do usuário dos Grupos de recursos da AWS.

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 de banco de dados 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:

  • Crie um cluster de banco de dados.

  • Restaure 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 --tag-key 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.