Módulo 12 · Costos, facturación y soporte/Lección 75
Gobierno de costos en organizaciones
Etiquetas obligatorias, categorías de costos, asignación de costos compartidos y cobro interno por equipo o cliente.
Con una cuenta, saber quién gastó es fácil. Con cien cuentas y veinte equipos, la factura se vuelve una discusión. El gobierno de costos responde tres preguntas: de quién es cada recurso, cómo se reparte lo compartido y quién paga al final. Las herramientas básicas (Budgets, Cost Explorer, CUR) están en controlar costos. Aquí van las reglas que las vuelven útiles en una organización.
Una estrategia de etiquetas
Antes de etiquetar, separa por cuentas: una cuenta por carga de trabajo y entorno es el límite de costo más fuerte y no depende de que nadie recuerde una etiqueta. Encima, define pocas etiquetas obligatorias y un diccionario de valores:
Las claves y los valores distinguen mayúsculas: CostCenter y costcenter son dos etiquetas distintas en los informes. Pon las etiquetas en la infraestructura como código, no a mano: las etiquetas de una pila de CloudFormation se propagan a los recursos de la pila que admiten etiquetas.
Imponer etiquetas: prevenir, bloquear y detectar
| Criterio | |||
|---|---|---|---|
| Qué hace | Estandariza claves, mayúsculas y valores permitidos | Niega la creación si falta la etiqueta en la petición | Marca como no conformes los recursos sin las etiquetas |
| Tipo de control | Preventivo para valores; reporte para faltantes | Preventivo | Detectivo, con remediación opcional |
| Recursos sin etiquetas | No los evalúa ni los bloquea | Los bloquea al crearse | Los encuentra, incluso los que ya existían |
| Dónde vive | AWS Organizations | AWS Organizations | AWS Config en cada cuenta, o un paquete de conformidad |
Una política de etiquetas dice cómo debe escribirse una etiqueta cuando se aplica. Con enforced_for, una operación de etiquetado no conforme en ese tipo de recurso falla. Con report_required_tag_for marcas la etiqueta como obligatoria para el reporte, y CloudFormation (con el hook AWS::TagPolicies::TaggingComplianceValidator), Terraform o Pulumi pueden avisar o bloquear un despliegue al que le falte.
{
"tags": {
"CostCenter": {
"tag_key": { "@@assign": "CostCenter" },
"tag_value": { "@@assign": ["CC-100", "CC-200", "CC-300"] },
"enforced_for": { "@@assign": ["ec2:instance"] },
"report_required_tag_for": { "@@assign": ["ec2:ALL_SUPPORTED"] }
}
}
}Para bloquear la creación de recursos sin etiqueta desde la consola o la API, usa una SCP con la condición aws:RequestTag. La condición Null en true significa «la etiqueta no viene en la petición»:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "ExigirCostCenterAlCrearInstancias",
"Effect": "Deny",
"Action": "ec2:RunInstances",
"Resource": "arn:aws:ec2:*:*:instance/*",
"Condition": {
"Null": { "aws:RequestTag/CostCenter": "true" }
}
},
{
"Sid": "ImpedirQuitarCostCenter",
"Effect": "Deny",
"Action": "ec2:DeleteTags",
"Resource": "*",
"Condition": {
"ForAnyValue:StringEquals": { "aws:TagKeys": ["CostCenter"] }
}
}
]
}La segunda declaración impide quitar la etiqueta después, también a los administradores; si necesitas una excepción, agrégala con una condición sobre aws:PrincipalArn. Escribe una declaración por servicio: cada uno nombra distinto sus acciones de creación. Por último, la regla administrada required-tags de AWS Config revisa hasta seis claves y encuentra lo que se creó antes de las reglas.
Activar, agrupar y repartir
Una etiqueta solo aparece en Cost Explorer y en el CUR después de activarla como etiqueta de asignación de costos en la cuenta de administración. Después, AWS Cost Categories agrupa el gasto en las unidades que entiende finanzas. Cada categoría tiene reglas que combinan cuenta, etiqueta, servicio, tipo de cargo u otras categorías, y un valor por defecto para lo que no encaje. Por ejemplo, la categoría UnidadDeNegocio con valores Retail, Banca y Plataforma. Las categorías se usan como filtro en Cost Explorer, en Budgets y como columna en el CUR.
Lo compartido se reparte con reglas de cargo dividido (split charge rules): el costo del valor Plataforma se distribuye entre los demás de forma proporcional a su gasto, con porcentajes fijos o en partes iguales. Ojo: ese reparto solo se ve en la página de Cost Categories; no cambia Cost Explorer, Budgets ni el CUR.
Los contenedores son el caso difícil: diez equipos comparten el mismo nodo de EC2. Los datos de asignación de costos divididos (split cost allocation data) para ECS y EKS agregan al CUR el costo de cada tarea o pod según la CPU y la memoria que usó de la instancia. En EKS también reparte GPU, Trainium e Inferentia, y crea etiquetas como aws:eks:namespace. Así cobras por namespace o servicio, no por nodo.
Showback, chargeback y costo por cliente
Showback es mostrarle a cada equipo lo que gasta, sin cobrarle. Chargeback es cargarlo a su presupuesto. Empieza por showback: cuando los números se vuelven confiables y los equipos los aceptan, pasa a chargeback. Cobrar con datos mal etiquetados genera peleas, no ahorro.
En un SaaS, la unidad es el cliente. En silo, etiqueta cada recurso con el inquilino; en pool, mide el consumo de cada inquilino y reparte el costo compartido con esa proporción. Los detalles están en SaaS multiinquilino.
AWS Billing Conductor sirve cuando necesitas una segunda versión de la factura: crea grupos de facturación con precios propios (márgenes, descuentos, cargos o créditos) y muestra a esas cuentas un costo pro forma. Lo usan revendedores de AWS y empresas que cobran entre filiales. No cambia la factura real de AWS.
AWS Cost Anomaly Detection puede vigilar por servicio, por cuenta, por categoría de costos o por etiqueta. Un monitor por CostCenter avisa al dueño correcto cuando su gasto se dispara, en vez de mandar todas las alertas a finanzas.
Requester Pays: que pague quien descarga
Por defecto, el dueño de un bucket paga el almacenamiento, las solicitudes y la transferencia de salida. Con Requester Pays, quien hace la solicitud paga la solicitud y la descarga; el dueño sigue pagando el almacenamiento. Encaja para datasets grandes que compartes con otras empresas o investigadores: datos de clima, mapas, genomas.
# El dueño activa Requester Pays en el bucket
aws s3api put-bucket-request-payment --bucket datos-clima-abiertos \
--request-payment-configuration Payer=Requester
# Quien descarga acepta el cobro de forma explícita
aws s3 cp s3://datos-clima-abiertos/2026/11/lecturas.parquet . \
--request-payer requester- Quien descarga debe aceptar el cobro: el encabezado
x-amz-request-payeren la API o--request-payeren la CLI. Sin eso, las solicitudes de otras cuentas fallan con un error de acceso denegado. - No admite acceso anónimo: toda solicitud debe estar autenticada para saber a quién cobrar.
- Si el solicitante asume un rol, paga la cuenta dueña de ese rol. Un rol de tu propia cuenta te devuelve la factura.
Desplegar el gobierno de costos, paso a paso
- 1
Estructura de cuentas
Una cuenta por carga de trabajo y entorno, agrupadas en unidades organizativas. Es la base que no depende de etiquetas. - 2
Diccionario de etiquetas
Acuerda con finanzas las claves obligatorias y sus valores. Publícalo como política de etiquetas en modo reporte. - 3
Etiquetar en el código
Agrega las etiquetas a los módulos de IaC y activa el hook de CloudFormation o la validación de Terraform en modo aviso. - 4
Activar y medir
Activa las etiquetas de asignación de costos, crea las categorías de costos y publica un tablero de showback por equipo. - 5
Endurecer
Cuando la cobertura sea alta, pasa a bloqueo: SCP con aws:RequestTag, enforced_for y hooks en modo fallo. Config encuentra lo que se escapa. - 6
Cobrar y vigilar
Pasa a chargeback con reglas de cargo dividido para lo compartido, presupuestos por categoría y monitores de anomalías por centro de costos.
Quiz
Pon a prueba lo que aprendiste
0 de 5 correctas · 5 sin responder
1.Una organización quiere que ninguna cuenta pueda lanzar instancias EC2 sin la etiqueta CostCenter, ni desde la consola ni desde la API. ¿Qué aplica?
2.Finanzas quiere ver el gasto por unidad de negocio, donde cada unidad combina varias cuentas y algunas etiquetas, y repartir el costo del equipo de plataforma según el gasto de cada unidad. ¿Qué usas?
3.Varios equipos comparten un clúster de EKS sobre las mismas instancias EC2. ¿Cómo asignas el costo de cómputo a cada equipo en el CUR?
4.Un instituto publica 50 TB de datos satelitales en S3 y no quiere pagar las descargas de miles de usuarios externos. ¿Qué configura?
5.Una empresa que revende AWS a sus clientes necesita mostrarles su costo con un margen propio, sin alterar la factura que recibe de AWS. ¿Qué servicio usa?