Marcar recursos do Amazon RDS - Amazon Relational Database Service

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

  • 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

  • Implantações azuis/verdes

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

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

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

nota

É possível adicionar uma tag a um snapshot de de banco de dados; porém, a conta não refletirá esse agrupamento.

Para que as tags de alocação de custos sejam aplicadas aos snapshots do de banco de dados, elas devem ser anexadas à instância de banco de dados principal e a instância principal deve existir na mesma Região da AWS que o snapshot. Os custos de snapshots órfãos são agregados em um único item não marcado.

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.

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 instância de banco de dados

Ao criar ou restaurar uma instância de banco de dados, você pode especificar que as tags da instância de banco de dados sejam copiadas para snapshots da instância de banco de dados. A cópia de tags garante que os metadados dos snapshots de banco de dados correspondam aos da instância de banco de dados de origem. Também garante que quaisquer políticas de acesso dos snapshots de banco de dados também correspondam às da instância de banco de dados de origem.

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

  • Criar uma instância de banco de dados.

  • Restaurar uma instância de banco de dados.

  • Como criar uma réplica de leitura.

  • Copiar um snapshot de banco de dados.

Na maioria dos casos, as tags não são copiadas por padrão. No entanto, quando você restaura uma instância de banco de dados de um snapshot do banco de dados, o RDS verifica se você deve especificar novas tags. Se sim, as novas tags serão adicionadas à instância de banco de dados restaurada. Se não houver novas tags, o RDS adicionará as tags da instância de banco de dados de origem no momento da criação do snapshot à instância de banco de dados restaurada.

Para evitar que tags da fonte de instâncias de banco de dados sejam adicionadas a instâncias de banco de dados restauradas, recomendamos que você especifique novas tags ao restaurar uma instância 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 instâncias de banco de dados devem ser interrompidas

Suponha que você esteja criando várias instâncias de banco de dados em um ambiente de desenvolvimento ou teste. Você precisa manter todas essas instâncias de banco de dados por vários dias. Algumas das instâncias de banco de dados executam testes durante a noite. Outras instâncias de banco de dados podem ser interrompidas durante a noite e iniciadas novamente no dia seguinte. O exemplo a seguir mostra como atribuir uma tag às instâncias de banco de dados que são adequadas para parar durante a noite. Em seguida, o exemplo mostra como um script pode detectar quais instâncias de banco de dados têm essa tag e, em seguida, parar essas instâncias de banco de dados. Neste exemplo, a parte de valor do par chave-valor não importa. A presença da tag stoppable significa que a instância de banco de dados tem essa propriedade definida pelo usuário.

Para especificar quais instâncias de banco de dados devem ser interrompidas
  1. Primeiro, determine o ARN de uma instância de banco de dados 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 da instância de banco de dados em comandos CLI que operam em instâncias de banco de dados. Substitua o nome de suas próprias instâncias de banco de dados para dev-test-db-instance. Em comandos subsequentes que usam parâmetros ARN, substitua o ARN de sua própria instância de banco de dados. O ARN inclui seu próprio ID de conta daAWS e o nome da região daAWS onde sua instância de Bancos de Dados está localizada.

    $ aws rds describe-db-instances --db-instance-identifier dev-test-db-instance \ --query "*[].{DBInstance:DBInstanceArn}" --output text arn:aws:rds:us-east-1:123456789102:db:dev-test-db-instance
  2. Adicione a tag stoppable a essa instância de banco de dados.

    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:123456789102:db:dev-test-db-instance \ --tags Key=stoppable
  3. Confirme se a tag está presente na instância de banco de dados.

    Esses comandos recuperam as informações de tag para a instância de banco de dados 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:123456789102:db:dev-test-db-instance { "TagList": [ { "Key": "stoppable", "Value": "" } ] } aws rds list-tags-for-resource \ --resource-name arn:aws:rds:us-east-1:123456789102:db:dev-test-db-instance --output text TAGLIST stoppable
  4. Para interromper todas as instâncias de banco de dados designadas como stoppable, prepare uma lista de todas as suas instâncias de banco de dados. Percorra a lista e verifique se cada instância de banco de dados está marcada com o atributo relevante.

    Este exemplo de Linux usa scripts de shell. Este script salva a lista de ARNs de instâncias de banco de dados em um arquivo temporário e depois executa comandos da CLI para cada instância de banco de dados.

    $ aws rds describe-db-instances --query "*[].[DBInstanceArn]" --output text >/tmp/db_instance_arns.lst $ for arn in $(cat /tmp/db_instance_arns.lst) do match="$(aws rds list-tags-for-resource --resource-name $arn --output text | grep stoppable)" if [[ ! -z "$match" ]] then echo "DB instance $arn is tagged as stoppable. Stopping it now." # Note that you need to get the DB instance identifier from the ARN. dbid=$(echo $arn | sed -e 's/.*://') aws rds stop-db-instance --db-instance-identifier $dbid fi done DB instance arn:arn:aws:rds:us-east-1:123456789102:db:dev-test-db-instance is tagged as stoppable. Stopping it now. { "DBInstance": { "DBInstanceIdentifier": "dev-test-db-instance", "DBInstanceClass": "db.t3.medium", ...

Você pode executar um script como este no final de cada dia para garantir que as instâncias de banco de dados 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 algumas instâncias de banco de dados sejam deixadas em execução por engano. Nesse caso, você pode ajustar o comando que prepara a lista de instâncias de banco de dados para conferir.

O comando a seguir produz uma lista de suas instâncias de banco de dados, mas apenas as que estão no estado available. O script pode ignorar as instâncias de banco de dados que já estão paradas, pois elas terão valores de status diferentes, como stopped ou stopping.

$ aws rds describe-db-instances \ --query '*[].{DBInstanceArn:DBInstanceArn,DBInstanceStatus:DBInstanceStatus}|[?DBInstanceStatus == `available`]|[].{DBInstanceArn:DBInstanceArn}' \ --output text arn:aws:rds:us-east-1:123456789102:db:db-instance-2447 arn:aws:rds:us-east-1:123456789102:db:db-instance-3395 arn:aws:rds:us-east-1:123456789102:db:dev-test-db-instance arn:aws:rds:us-east-1:123456789102:db:pg2-db-instance
dica

Você pode usar a atribuição de tags e encontrar instâncias de banco de dados com essas tags a fim de reduzir custos de outras maneiras. Por exemplo, considere esse cenário com instâncias de banco de dados utilizadas para desenvolvimento e testes. Nesse caso, você pode designar que algumas instâncias de banco de dados sejam excluídas no final de cada dia. Ou você pode designar que suas instâncias de banco de dados sejam alteradas para classes de instância de banco de dados pequenas durante os períodos de baixa utilização esperada.