Cloud Intelligence™Cloud Intelligence™

Cloud Intelligence™

Google Cloud Platform: buenas prácticas para etiquetar recursos

By Sayle MatthewsNov 13, 202310 min read

Esta página también está disponible en English, Deutsch, Français, Italiano, 日本語 y Português.

¿Qué son los labels, en realidad?

La documentación de GCP define los labels como una "forma ligera de agrupar recursos relacionados o asociados entre sí".

La definición resume bien lo que son, pero la pregunta más interesante es: "¿Para qué sirven?".

El propósito principal de poner un label en un recurso es poder rastrear con facilidad cuánto cuesta ese recurso específico dentro de tus datos de facturación. Por defecto, cada servicio aparece agrupado en tu factura como una sola línea.

Por ejemplo, una línea de la factura por correr una instancia de Compute Engine podría verse así: "Compute Engine Small Instance with 1 VCPU running in Americas: 15342.56 Hours.".

A primera vista parece bastante sencillo, hasta que recuerdas que un mes promedio tiene 730 horas. Eso quiere decir que durante ese mes corrieron varias instancias, ¿pero cuántas? Y además, ¿cuáles corrieron, por cuánto tiempo y en qué proyecto estaban? Mirar el reporte de facturación en la consola de GCP tampoco aclara mucho más.

Esos datos son casi imposibles de extrapolar a partir de las cifras que entrega Google en la factura y en la consola. Aquí es donde entran en juego los labels.

Cuando usas labels en tu proyecto, tu reporte de facturación se ve más o menos así:

Reporte de facturación de GCP (algunos nombres fueron eliminados)

Fíjate cómo se desglosa por labels, lo que facilita mucho la lectura. Más adelante en este artículo voy a explicar la parte de iris_name de los labels.

Labels vs. tags

Lo primero es aclarar la diferencia entre labels y tags dentro de GCP.

Hasta hace poco tenían una relación pseudo 1 a 1, pero a medida que GCP evoluciona se han convertido en entidades separadas. Hoy la diferencia es que los tags sirven para agrupar recursos y aplicarles una política de red, mientras que los labels agrupan recursos con fines de facturación y búsqueda (y posiblemente más en el futuro).

Un ejemplo: si creas una regla de firewall y le agregas un target tag, esta se aplicará a cualquier recurso que tenga el mismo network tag, como una instancia de Compute Engine. La principal diferencia que la mayoría notará está en la nomenclatura: ahora GCP usa tags para referirse a los network tags (o target tags, como los llaman en las reglas de firewall) y labels para los labels propiamente dichos, mientras que antes se hablaba del conjunto de ambos como tags.

Puede tomar un tiempo adoptar la nueva terminología, así que cuando escuches que algo está "tagged" en GCP, fíjate bien si se trata de un tag o de un label. Después de tantos años hablando de "tagging", va a costar dejar la costumbre cuando en realidad nos referimos a labels.

DoiT Console y Cloud Analytics

Uno de los mejores secretos a voces para gestionar la facturación y los costos en GCP es la sección Cloud Analytics dentro de la DoiT Console, una herramienta de descubrimiento y optimización de costos que DoiT International ofrece al público.

Con los reportes obtienes insights inmediatos sobre tu facturación de Google Cloud Platform, gestionas presupuestos, configuras asignaciones de costos, recibes alertas de presupuesto y de anomalías, y exploras distintas estrategias de optimización de costos.

Al usar los reportes obtienes aún más visibilidad sobre tus costos en Google Cloud, con varias mejoras:

  • Hasta 36 meses de datos históricos (vs. 3 a 6 meses)
  • Carga y refresco de reportes 100x más rápidos
  • Cantidad ilimitada de labels de usuario y de sistema (vs. solo uno u otro)
  • Soporte para reportes sobre créditos como SUDs o CUDs
  • Reportes integrados
  • Muchísimos más tipos de gráficos
  • Reportes adaptados a dispositivos móviles
  • Recibe actualizaciones programadas de los reportes por correo o Slack

Nota: algunas de estas imágenes pueden estar desactualizadas debido a la gran cantidad de funcionalidades que se han sumado a la DoiT Console desde que se publicó originalmente este artículo.

De fábrica ofrecemos un conjunto de reportes predefinidos que puedes usar de inmediato. Estos reportes se comparten con toda tu organización para que tú y tus equipos estén siempre alineados sin esfuerzo.

Los Cloud Reports siguen la lógica de una tabla dinámica y te permiten crear reportes altamente configurables con cualquier cantidad de dimensiones y métricas:

Configura los Cloud Reports simplemente arrastrando dimensiones y métricas

Si etiquetas tus recursos o usas Iris3 para auto-generar labels, puedes obtener insights muy potentes a partir de tu información de facturación, como el costo de Google Cloud Storage por bucket:

Costo de GCS por bucket

Ofrece métricas por hora de tus datos de facturación, así que es fácil detectar problemas o picos derivados de un despliegue reciente o de un cambio en la configuración.

Los datos por hora hacen que sea fácil rastrear cambios en tu entorno cloud

Si a ti y a tu equipo les interesa acceder a la DoiT Console (y a un montón de otras herramientas) sin costo adicional, contáctanos para conocer más sobre cómo convertirte en cliente de DoiT International sin pagar nada extra.

Buenas prácticas para los labels

A continuación encontrarás un conjunto de buenas prácticas que el equipo de Customer Reliability Engineering de DoiT International ha recopilado sobre el uso de labels dentro de GCP.

Antes de configurar labels, conviene conocer sus restricciones y a qué pueden aplicarse. Recomiendo leer primero la documentación de Google al respecto, sobre todo porque es probable que cambie después del momento en que se escribió este artículo.

Aún no todos los productos soportan labels, pero muchos sí lo hacen aunque no aparezcan en la documentación. La mejor forma de saberlo es revisar las páginas de creación y edición de las instancias de un servicio para determinar si soporta labels o no.

Usa labels siempre

A veces, al crear una nueva instancia de Compute Engine o una imagen basada en una, se nos olvida ponerle un label, y luego pasa al olvido hasta que el equipo de contabilidad pregunta por cierto gasto en tu factura.

Para evitarlo, asegúrate de que en tu flujo de trabajo siempre se use un label al crear un recurso, y de que también se aplique en cualquier creación automatizada.

Usa una herramienta automatizada de etiquetado

Siguiendo la recomendación anterior, Iris3 es una herramienta open-source recientemente reescrita, desarrollada por nosotros en DoiT, que etiqueta los recursos automáticamente a medida que se van creando. Así te aseguras de que ningún recurso se quede sin label.

Se puede personalizar para trabajar con tipos de recursos adicionales si el que quieres usar aún no está soportado.

Etiqueta todo lo que necesites

Los labels son un par clave-valor, así que aprovéchalos para incluir toda la información que necesites.

Aquí tienes algunos ejemplos de labels que puedes usar:

  1. Nombres de entornos

    Etiquetar un recurso como perteneciente a development, staging, testing, production, etc. siempre es una buena opción, ya que después es mucho más fácil buscar todos los recursos en producción para un reporte de facturación.

  2. Rol

    Si tienes un conjunto de recursos de Compute Engine actuando como servidores web, otro conjunto en un cluster de GKE y uno como servidor de base de datos, etiquétalos en consecuencia.

  3. Nombre de la aplicación Usar el nombre de la aplicación como label facilita agrupar los recursos por el proyecto de negocio o la aplicación con la que están asociados, lo que hace más sencillo revisar los costos por aplicación.

  4. Nombre de la región Si tu aplicación o proyecto se extiende por múltiples regiones, agregar el valor de la región te ayudará a ordenarlas después. Puede ser el nombre de la región de GCP, una región lógica que hayas configurado en tu aplicación, o un label para cada una.

  5. Creador del recurso Poner el nombre del creador en un label te ayudará a saber después quién creó qué recurso, sin tener que escarbar en logs de auditoría que tal vez ni siquiera se hayan retenido.

  6. Owner o mantenedor Etiquetar un recurso con el nombre del owner o mantenedor ayuda a saber a quién contactar ante un problema o duda. Un ejemplo común es el equipo dueño o responsable del recurso.

  7. Código de costo, facturación o presupuesto Algunas organizaciones manejan códigos para distintos gastos o presupuestos. Agregarlos en el label facilita el seguimiento a los administradores de facturación o auditores.

  8. Departamento

    Si el recurso pertenece a cierto departamento, agregarlo como label hace mucho más fácil ubicarlo después.

  9. Nombre del bucket (solo para Google Cloud Storage) Si alguna vez has tenido que mirar un reporte o factura de GCP, te habrás dado cuenta de que agrupa todos los buckets de almacenamiento en una sola línea. Es una pesadilla si quieres saber cuánto cuesta cada bucket, así que agregar el nombre del bucket como label en cada uno permite separarlos en líneas distintas.

  10. Nombre del recurso asociado Si tienes un recurso vinculado a otro, es buena idea agregar un label que nombre ese otro recurso. Ejemplos podrían ser un disco persistente vinculado a una instancia de Compute Engine o a un cluster de Dataproc. Una IP externa vinculada a un managed instance group de Compute Engine también es un excelente ejemplo.

  11. Clasificación de datos Este es un caso de uso amplio, pero si tienes algún tipo de dato que necesite etiquetarse en un bucket o en un dataset de BigQuery, agrégale un label para identificarlo. Pueden ser datos sujetos a cumplimiento regulatorio como HIPAA o PCI, o datos cifrados. Conviene etiquetar estos recursos así, para que cuando un ejecutivo C-level pregunte cuánto dinero se gasta al mes en almacenar PHI (información de salud protegida), la respuesta se obtenga muy rápido.

  12. Estado del recurso

    Si un recurso está activo, pendiente de eliminación, deshabilitado, etc., etiquetarlo como tal hace muy fácil ver cuánto se está facturando por los recursos en cierto estado.

  13. Nombre de la carpeta o de la organización Si usas carpetas o distintas unidades organizativas en tu estructura, créales un label para poder ver después cuánto te cuesta cada organización o carpeta.

    Para una muy buena discusión sobre este tema y la estructura organizativa para GCP, te invito a leer este excelente artículo de mi colega.

Estandariza los labels

Define un set estándar de labels que aplicarás a cada recurso y mantente fiel a él. Puede tener sentido tener un set estándar por tipo de recurso. Esto facilita mucho la búsqueda de recursos y también el seguimiento de conjuntos de recursos en un reporte de facturación.

Una vez más, usar Iris3 para hacerlo de forma automática vuelve mucho más fácil mantener el estándar.

Busca recursos usando filtros y labels

A lo largo de la consola, en las barras de filtros, si empiezas a escribir la palabra labels, te aparecerá una opción en un menú desplegable. Después de seleccionarla, puedes empezar a escribir el nombre del label tras los dos puntos y se autocompletará para que filtres por ese label en particular.

Ten en cuenta que, al momento de escribir este artículo, esto aún no funciona en la página de Cloud Storage.

Usa labels de Kubernetes en GKE

GKE te permite etiquetar cada nodo de un cluster con la función de labels de Kubernetes (ubicada en la página Metadata al crear un cluster).

Tip: dentro de Kubernetes puedes usar un selector para apuntar a esos nodos. Ten en cuenta que esto solo aplica al usar GKE y no a clusters standalone.

Usa labels en tus consultas de facturación en BigQuery

Si alguna vez has usado BigQuery como destino de tus datos de facturación, probablemente hayas visto un registro de labels en las tablas que crea. Cada label que agregas a un servicio aparece en ese registro para el recurso asociado a esa fila. Aprovechar estos datos te permite explorar mucho mejor la información con BigQuery.

Usa labels en tus colas

Si usas Pub/Sub para encolado o como parte de un workflow, crea un label en tu topic para identificarlo como parte de una aplicación o del workflow al que pertenece. Es un costo que muchas veces se pasa por alto, sobre todo entre los usuarios intensivos de Pub/Sub. Ten en cuenta que, al momento de escribir esto, Pub/Sub Lite no soporta labels.

Mantén tu política de labels al día

Cuando actualices o lances un nuevo proyecto, o uses un nuevo servicio en GCP, revisa si soporta labels. Si es así, actualiza tu política de labels para incluirlos o agrégalo a Iris3 para que se actualice automáticamente.