The Data Platform Challenge

The Data Platform Challenge · AWS Community

Self-Service
sin quebrar el banco

El dilema autonomía vs. control — y cómo resolverlo con governance-as-code

CC
Carlos Cortez
AWS Hero · Perú · co-speaker
×
CZ
Carlos Zambrano
AWS Data Hero · Colombia

Segmento de Carlos Cortez dentro de la charla de Carlos Zambrano

Dónde entra este bloque

Ya construimos la plataforma.
Ahora... ¿cómo evitamos que explote?

Zambrano mostró CÓMO se construye el self-service data platform en AWS.
Este bloque responde la otra mitad del challenge: hacerlo sostenible — en costo, en gobernanza y en calidad.

El lado oscuro del self-service

Autonomía sin guardrails = bomba de tiempo

El self-service funciona... hasta que llega la factura y el auditor.

⚖️
El equilibrio del challenge

La tensión central

Self-service ↔ Control

Demasiado control → nadie usa la plataforma (vuelven al shadow IT).

Demasiada libertad → costo y riesgo sin límite.

La respuesta: guardrails automáticos, no gatekeepers manuales.

La solución

4 guardrails para un self-service sostenible

💰 Cost Allocation

Cada dataset/pipeline tiene dueño, dominio y costo. Tags obligatorios + CUR por producto de datos.

📜 Policy-as-Code

Reglas ejecutables en CI/CD: "no table sin partición", "no full-refresh en prod", "freshness test obligatorio".

🔐 Fine-grained Access

Lake Formation: permisos row/column-level. Self-service ≠ acceso total.

📊 Cost Observability

Costo por query / por modelo dbt como métrica de plataforma, visible para el equipo dueño.

Guardrail 1

El dato es un producto — con costo y dueño

En un self-service platform, cada dataset debe responder: ¿quién lo produce? ¿quién lo consume? ¿cuánto cuesta?

  • Tags obligatorios: owner, domain, env, costCenter
  • AWS Data Exports (CUR 2.0) → costo por cuenta/tag/servicio
  • Unit economics: costo por producto de datos
athena · CUR
# costo por dominio de datos este mes
SELECT resource_tags_domain,
  SUM(line_item_unblended_cost)
FROM cur_data_exports
GROUP BY 1 ORDER BY 2 DESC;

marketing $4,210
finance $2,980
untagged $1,740 ← ¿de quién?

Guardrail 2

Policy-as-code: gatea el pipeline, no a la persona

Las reglas viven en el repo y corren en CI/CD. El self-service sigue siendo self-service — pero con barandas.

ci · data-platform-policies
$ data-policy check ./models

partition-required ...... 42/42 models
zombie-model ........... stg_legacy_orders (0 consumers)
full-refresh-in-prod ... fct_events (scans 1.2TB daily)
freshness-test-missing . src_salesforce

# 2 errores → PR bloqueado. Estimado: -$380/mo si se corrige

Guardrails 3 & 4

Acceso fino + costo visible

Lake Formation da permisos row/column-level. Y el costo por modelo se vuelve una métrica que el equipo dueño ve — no una sorpresa a fin de mes.

fct_events (full refresh)
$412/mo
dim_customers
$160/mo
stg_legacy (zombie)
$104/mo

"No puedes optimizar lo que no ves — y en self-service, nadie mira la factura."

Todo AWS-nativo

El stack de gobernanza encima de tu plataforma

Lake Formation

Permisos fine-grained (row/column), LF-Tags para governance escalable.

Athena + Glue

Query stats por modelo, workgroups con límites de bytes escaneados.

Data Exports (CUR 2.0)

Costo real por cuenta/tag → Athena → dashboards por dominio.

Cost Allocation Tags

Enforcement de owner/domain/env en el catálogo.

S3 + Iceberg

Workgroup limits + partición obligatoria = queries acotados.

Policy-as-code (CI/CD)

Gate en el PR antes de crear/materializar recursos.

Para llevar

Self-service responsable

1 · Autonomía con barandas

Guardrails automáticos, no gatekeepers manuales.

2 · Costo como métrica

Cada dataset es un producto con dueño y costo.

3 · Governance-as-code

Las reglas viven en el repo y corren en CI/CD.

Gracias 🙌 — Carlos Cortez (AWS Hero Perú) & Carlos Zambrano (AWS Data Hero Colombia)

cortez.cloud
cortez.cloud
LinkedIn
LinkedIn
1 / 10