Etiquetado de recursos de Amazon RDS - Amazon Relational Database Service

Etiquetado de recursos de Amazon RDS

Puede utilizar etiquetas de Amazon RDS para agregar metadatos a los recursos de Amazon RDS. Puede utilizar las etiquetas para agregar sus propias notaciones sobre instancias de base de datos, instantáneas, Aurora clústeres, etc. Si lo hace, puede ayudarle a documentar los Amazon RDS recursos. También puede utilizar las etiquetas con procedimientos de mantenimiento automatizados.

En concreto, puede utilizar estas etiquetas con las políticas de IAM. Puede utilizarlas para administrar el acceso a los recursos de RDS y controlar qué acciones se pueden aplicar a los recursos de RDS. También puede utilizar estas etiquetas para realizar un seguimiento de los costos al agrupar los gastos de recursos etiquetados de forma similar.

Puede etiquetar los siguientes Amazon RDS recursos:

  • Instancias de base de datos

  • Clústeres de base de datos

  • Puntos de conexión de clústeres de base de datos

  • Réplicas de lectura

  • Instantáneas de base de datos

  • Instantáneas de clúster de base de datos

  • Instancias de base de datos reservadas

  • Suscripciones de eventos

  • Grupos de opciones de base de datos

  • Grupos de parámetros de base de datos

  • Grupos de parámetros de clúster de bases de datos

  • Grupos de subred de base de datos

  • Proxies de RDS Proxy

  • Puntos de enlace de RDS Proxy

  • Implementaciones blue/green

  • Integraciones sin ETL (versión preliminar)

nota

Actualmente, no puede etiquetar los proxies de RDS ni los puntos de conexión de proxies de RDS mediante la AWS Management Console.

Información general de las etiquetas de recursos de Amazon RDS

Las etiquetas de Amazon RDS son pares nombre-valor que el usuario define y asocia a un recurso de Amazon RDS. El nombre es la clave. Si lo desea puede proporcionar un valor para la clave o no. También puede usar etiquetas para asignar información arbitraria a un recurso de Amazon RDS. Puede usar claves de etiqueta, por ejemplo, para definir una categoría, y el valor de la etiqueta puede ser un elemento dentro de esa categoría. Por ejemplo, puede definir una clave de etiqueta «project» y un valor de etiqueta «Salix». En este caso, indican que el recurso de Amazon RDS está asignado al proyecto Salix. Asimismo, puede utilizar etiquetas para designar recursos de Amazon RDS para pruebas o para producción mediante una clave como environment=test o environment=production. Se recomienda utilizar un conjunto coherente de claves de etiqueta que facilite el seguimiento de los metadatos asociados a los recursos de Amazon RDS.

Además, puede utilizar las condiciones de sus políticas de IAM para controlar el acceso a los recursos de AWS en función de las etiquetas de ese recurso. Para ello, utilice la clave de condición aws:ResourceTag/tag-key global. Para obtener más información, consulte Control del acceso a recursos de AWS en la Guía del usuario de AWS Identity and Access Management.

Cada recurso de Amazon RDS tiene un conjunto de etiquetas con todas las etiquetas asignadas a ese recurso de Amazon RDS. Un conjunto de etiquetas puede contener hasta 50 etiquetas, y también puede estar vacío. Si agrega una etiqueta a un recurso de RDS con la misma clave que una etiqueta existente, el nuevo valor sobrescribirá al antiguo.

AWS no aplica ningún significado semántico a las etiquetas, que se interpretan estrictamente como cadenas de caracteres. RDS puede establecer etiquetas en una instancia de base de datos u otros recursos de RDS. La configuración de la etiqueta depende de las opciones que utilice al crear el recurso. Por ejemplo, Amazon RDS podría agregar una etiqueta en la que se indica que una instancia de base de datos es para producción o para la realización de pruebas.

  • La clave de la etiqueta es el nombre obligatorio de la etiqueta. El valor de la cadena puede tener una longitud de entre 1 y 128 caracteres Unicode y no puede llevar el prefijo aws: ni rds:. La cadena puede contener únicamente el conjunto de letras, dígitos y espacio en blanco, '_', '.', ':', '/', '=', '+', '-', '@' (Java regex: "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$").

  • El valor de etiqueta es un valor de cadena optativo en la etiqueta. El valor de la cadena puede tener una longitud de entre 1 y 256 caracteres Unicode. La cadena puede contener únicamente el conjunto de letras, dígitos y espacio en blanco, '_', '.', ':', '/', '=', '+', '-', '@' (Java regex: "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$").

    Los valores no deben ser únicos dentro de un conjunto de etiquetas y también pueden ser nulos. Por ejemplo, es posible tener en un conjunto de etiquetas los pares clave-valor project=Trinity y cost-center=Trinity.

Puede utilizar la AWS Management Console, la AWS CLI o la API de Amazon RDS para agregar, enumerar y eliminar etiquetas de recursos de Amazon RDS. Si utiliza la CLI de o la API, asegúrese de proporcionar el nombre de recurso de Amazon (ARN) correspondiente al recurso de RDS con el que desee trabajar. Para obtener más información sobre cómo crear un ARN, consulte Creación de un nombre ARN para Amazon RDS.

Las etiquetas se almacenan en caché con fines de autorización. Por este motivo, cuando se actualizan o se agregan valores a las etiquetas de recursos de Amazon RDS, pueden tardar varios minutos en estar disponibles.

Uso de etiquetas para el control de acceso con IAM

Puede usar etiquetas con las políticas de IAM para administrar el acceso a los recursos de Amazon RDS. Además, puede utilizar etiquetas para controlar qué acciones se pueden aplicar a los recursos de Amazon RDS.

Para obtener más información sobre la administración del acceso a recursos etiquetados con políticas de IAM, consulte Administración de la identidad y el acceso en Amazon RDS.

Uso de etiquetas para producir informes de facturación detallados

También puede utilizar etiquetas para hacer un seguimiento de los costos, agrupando los gastos correspondientes en recursos con etiquetas similares.

Puede usar etiquetas para organizar la factura de AWS de modo que refleje su propia estructura de costos. Para ello, inscríbase para obtener una factura de Cuenta de AWS que incluya valores de clave de etiquetas. A continuación, para ver los costos de los recursos combinados, organice la información de facturación de acuerdo con los recursos con los mismos valores de clave de etiquetas. Por ejemplo, puede etiquetar varios recursos con un nombre de aplicación específico y luego organizar su información de facturación para ver el costo total de la aplicación en distintos servicios. Para obtener más información, consulte Uso de etiquetas de asignación de costos en la Guía del usuario de AWS Billing.

nota

Puede añadir una etiqueta a una instantánea de de base de datos, pero la factura no reflejará esta agrupación.

Para que las etiquetas de asignación de costos se apliquen a las instantáneas de base de datos, las etiquetas deben asociarse a la instancia de base de datos principal y la instancia principal debe existir en la misma Región de AWS que la instantánea. Los costos de las instantáneas huérfanas se agregan en un único elemento sin etiquetar.

Agregar, publicar y eliminar etiquetas

Los procedimientos siguientes muestran cómo realizar operaciones de etiquetado típicas en recursos relacionados con instancias de base de datos y .

El proceso para etiquetar un recurso de Amazon RDS es similar para todos los recursos. El siguiente procedimiento muestra cómo etiquetar una instancia de base de datos de Amazon RDS.

Para agregar una etiqueta a una instancia de base de datos
  1. Inicie sesión en la AWS Management Console y abra la consola de Amazon RDS en https://console.aws.amazon.com/rds/.

  2. En el panel de navegación, seleccione Databases (Bases de datos).

    nota

    Para filtrar la lista de instancias de base de datos en el panel Databases (Bases de datos), escriba una cadena de texto para Filter databases (Filtrar bases de datos). Solo aparecen instancias de base de datos que contienen la cadena.

  3. Seleccione el nombre de la instancia de base de datos que desea etiquetar para mostrar sus detalles.

  4. En la sección de detalles, desplácese hasta la sección Tags (Etiquetas).

  5. Elija Add (Añadir). Aparece la ventana Add tags (Añadir etiquetas).

    
            Ventana para añadir etiquetas
  6. Escriba un valor para Tag key (Clave de etiqueta) y Value (Valor).

  7. Para añadir otra etiqueta, puede elegir Add another Tag (Añadir otra etiqueta) y escribir un valor para Tag key (Clave de etiqueta) y Value (Valor).

    Repita este paso tantas veces como sea necesario.

  8. Elija Add (Añadir).

Para eliminar una etiqueta de una instancia de base de datos
  1. Inicie sesión en la AWS Management Console y abra la consola de Amazon RDS en https://console.aws.amazon.com/rds/.

  2. En el panel de navegación, seleccione Databases (Bases de datos).

    nota

    Para filtrar la lista de instancias de base de datos en el panel Databases (Bases de datos), escriba una cadena de texto en el cuadro Filter databases (Filtrar bases de datos). Solo aparecen instancias de base de datos que contienen la cadena.

  3. Seleccione el nombre de la instancia de base de datos para mostrar sus detalles.

  4. En la sección de detalles, desplácese hasta la sección Tags (Etiquetas).

  5. Elija la etiqueta desea eliminar.

    
          Sección de etiquetas
  6. Elija Delete (Eliminar) y después elija (Eliminar) en la ventana Delete tags (Eliminar etiquetas).

Puede utilizar la para agregar, listar o eliminar etiquetas de una instancia de base de dato AWS CLI.

  • Para agregar una o más etiquetas a un recurso de Amazon RDS, utilice el comando add-tags-to-resource de la AWS CLI.

  • Para ver una lista de las etiquetas de un recurso de Amazon RDS, utilice el comando list-tags-for-resource de la AWS CLI.

  • Para eliminar una o más etiquetas de un recurso de Amazon RDS, utilice el comando remove-tags-from-resource de la AWS CLI.

Para obtener más información acerca de cómo crear el ARN requerido, consulte Creación de un nombre ARN para Amazon RDS.

Puede utilizar la API de Amazon RDS para agregar, listar o eliminar etiquetas de una instancia de base de datos.

  • Para añadir una etiqueta a un recurso de Amazon RDS, utilice la operación AddTagsToResource.

  • Para ver una lista de las etiquetas asignadas a un recurso de Amazon RDS, utilice ListTagsForResource.

  • Para eliminar etiquetas de un recurso de Amazon RDS, utilice la operación RemoveTagsFromResource.

Para obtener más información acerca de cómo crear el ARN requerido, consulte Creación de un nombre ARN para Amazon RDS.

Cuando se trabaja con XML mediante la API de Amazon RDS, las etiquetas utilizan el esquema siguiente:

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

La tabla siguiente proporciona una lista de las etiquetas XML permitidas y sus características. Los valores de clave y de valor distinguen entre mayúsculas y minúsculas. Por ejemplo, proyecto=Trinity y PROYECTO=Trinity son dos etiquetas diferentes.

Elemento de etiquetado Descripción
TagSet Los conjuntos de etiquetas contienen todas las etiquetas asignadas a un recurso de Amazon RDS. Solo puede haber un conjunto de etiquetas por recurso. Solo puede trabajar con conjuntos de etiquetas a través de la API de Amazon RDS.
Tag Las etiquetas son pares clave-valor que define el usuario. En un conjunto de etiquetas puede haber entre 1 y 50 etiquetas.
Key

La clave es el nombre obligatorio de la etiqueta. El valor de la cadena puede tener una longitud de entre 1 y 128 caracteres Unicode y no puede llevar el prefijo aws: ni rds:. La cadena solo puede contener el conjunto de letras, dígitos y espacio en blanco Unicode, '_', '.', '/', '=', '+', '-' (Java regex: "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-]*)$").

Las claves deben ser únicas dentro de un conjunto de etiquetas. Por ejemplo, en un conjunto de etiquetas no puede haber claves iguales pero con valores diferentes, como proyecto/Trinity y proyecto/Xanadu.

Valor

El valor es la parte opcional de la etiqueta. El valor de la cadena puede tener una longitud de entre 1 y 256 caracteres Unicode y no puede llevar el prefijo aws: ni rds:. La cadena solo puede contener el conjunto de letras, dígitos y espacio en blanco Unicode, '_', '.', '/', '=', '+', '-' (Java regex: "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-]*)$").

Los valores no deben ser únicos dentro de un conjunto de etiquetas y también pueden ser nulos. Por ejemplo, puede tener un par clave-valor en un conjunto de etiquetas en proyecto/Trinity y centro-de-costos/Trinity.

Uso del editor de etiquetas de AWS

Puede examinar y editar las etiquetas de los recursos RDS en el AWS Management Console mediante el editor de etiquetas de AWS. Para obtener más información, consulte el Editor de etiquetas en la Guía del usuario de grupos de recursos de AWS.

Copia de etiquetas a instantáneas de instancia de base de datos

Cuando crea o restaura una instancia de base de datos, puede especificar que las etiquetas de dicha instancia se copien en instantáneas de la instancia de base de datos. La copia de las etiquetas garantiza que los metadatos para las instantáneas coincidan con los de la instancia de base de datos de origen. Además, garantiza que cualquier política de acceso para las instantáneas de base de datos también coincida con la de la instancia de base de datos de origen.

Puede especificar que las etiquetas se copien en las instantáneas de base de datos para las siguientes acciones:

  • Creación de una instancia de base de datos.

  • Restauración de una instancia de base de datos.

  • Creación de una réplica de lectura.

  • Copia de una instantánea de base de datos.

En la mayoría de los casos, las etiquetas no se copian de forma predeterminada. Sin embargo, al restaurar una instancia de base de datos desde una instantánea de base de datos, RDS verifica si se especifican nuevas etiquetas. En caso afirmativo, las nuevas etiquetas se agregan a la instancia de base de datos restaurada. Si no hay etiquetas nuevas, RDS agrega las etiquetas de la instancia de base de datos de origen al crear la instantánea de la instancia de base de datos restaurada.

Para evitar que se agreguen etiquetas desde instancias de base de datos de origen a instancias de base de datos restauradas, le recomendamos que especifique nuevas etiquetas al restaurar una instancia de base de datos.

nota

En algunos casos, puede incluir un valor para el--tags parámetro delAWS CLI comando create-db-snapshot. O puede proporcionar al menos una etiqueta a la operación de la API CreateDBSnapshot. En estos casos, RDS no copia las etiquetas de la instancia de base de datos de origen a la nueva instantánea de base de datos. Esta funcionalidad se aplica incluso si la instancia de base de datos de origen tiene la opción --copy-tags-to-snapshot (CopyTagsToSnapshot) activada.

Si adopta este enfoque, puede crear una copia de una instancia de base de datos a partir de una instantánea de base de datos. Este enfoque evita añadir etiquetas que no se apliquen a la nueva instancia de base de datos. La instantánea de base de datos se crea mediante el comando create-db-snapshot de AWS CLI (o la operación de la API CreateDBSnapshot RDS). Después de crear la instantánea de la base de datos, puede añadir etiquetas como se describe más adelante en este tema.

Tutorial: Uso de etiquetas para especificar qué instancias de base de datos se deben detener

Supongamos que crea una serie de instancias de base de datos en un entorno de desarrollo o prueba. Debe mantener todas estas instancias de base de datos durante varios días. Algunas de las instancias de base de datos ejecutan pruebas durante la noche. Otras instancias de base de datos se pueden detener durante la noche y volver a iniciarse al día siguiente. En el ejemplo siguiente se muestra cómo asignar una etiqueta a aquellas instancias de base de datos adecuadas para detenerse durante la noche. A continuación, el ejemplo muestra cómo un script puede detectar qué instancias de base de datos tienen esa etiqueta y, entonces, detener esas instancias de base de datos. En este ejemplo, la parte del valor del par clave-valor no importa. La presencia de la stoppable etiqueta significa que la instancia de base de datos tiene esta propiedad definida por el usuario.

Para especificar qué instancias de base de datos se deben detener
  1. Determine el ARN de una instancia de base de datos que queremos designar como detenible.

    Los comandos y las API para etiquetar funcionan con los ARN. De esta forma, pueden funcionar sin problemas en regiones de AWS, cuentas de AWS y diferentes tipos de recursos que pueden tener nombres cortos idénticos. Puede especificar el ARN en lugar del ID de instancia de base de datos en los comandos CLI que operan en instancias de base de datos. Sustituya el nombre de las propias instancias de base de datos por dev-test-db-instance. En comandos posteriores que utilicen parámetros ARN, sustituya el ARN de la propia instancia de base de datos. El ARN incluye el propio ID de cuenta de AWS y el nombre de la región de AWS donde se encuentra la instancia de base de datos.

    $ 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. Agregue la etiqueta stoppable a esta instancia de base de datos.

    Usted elige el nombre de esta etiqueta. Este enfoque significa que puede evitar diseñar una convención de nomenclatura que codifique toda la información relevante en los nombres. En una convención de este tipo, puede codificar la información en el nombre de la instancia de base de datos o en los nombres de otros recursos. Dado que en este ejemplo se trata la etiqueta como un atributo presente o ausente, se omite la Value= parte del --tags parámetro.

    $ 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 que la etiqueta está presente en la instancia de base de datos.

    Estos comandos recuperan la información de etiqueta para la instancia de base de datos en formato JSON y en texto plano separado por tabulaciones.

    $ 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 detener todas las instancias de base de datos designadas como stoppable, prepare una lista de todas las instancias de base de datos. Recorra la lista y compruebe si cada instancia de base de datos está etiquetada con el atributo correspondiente.

    En este ejemplo de Linux se utilizan scripts de shell. Este scripting guarda la lista de los ARN de instancia de base de datos en un archivo temporal y luego ejecuta los comandos de la CLI para cada instancia de base de datos.

    $ 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", ...

Puede ejecutar un script como este al final de cada día para asegurarse de que las instancias de base de datos no esenciales se detienen. También puede programar un trabajo al usar una utilidad como cron para realizar dicha comprobación cada noche. Por ejemplo, puede hacer esto en caso de que algunas instancias de base de datos siguieran ejecutándose por error. Aquí, puede ajustar el comando que prepara la lista de instancias de base de datos para comprobar.

El siguiente comando produce una lista de las instancias de base de datos, pero sólo las que están en available estado. El script puede ignorar las instancias de base de datos que ya están detenidas, porque tendrán valores de estado diferentes, como stopped o 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
sugerencia

Puede utilizar la asignación de etiquetas y la búsqueda de instancias de base de datos con esas etiquetas para reducir costes de otras maneras. Por ejemplo, veamos este escenario con instancias de base de datos utilizadas para el desarrollo y las pruebas. En este caso, puede designar algunas instancias de base de datos para que se eliminen al final de cada día. O puede designarlos para que sus instancias de base de datos se cambien a clases de instancias de base de datos pequeñas durante los períodos de uso escaso previsto.