Vés al contingut

Què costa cada cosa: la factura d'AWS explicada

AWS no té un preu: en té milers. Cada servei cobra per una cosa diferent (hores, peticions, gigabytes, usuaris actius) i la factura arriba a final de mes, quan ja no hi ha res a fer. La majoria de sustos no venen d'un servei car, sinó d'un recurs petit que algú va deixar encès.

Aquesta lliçó és per saber què mirar, on i com fer que AWS t'avisi abans.


El nivell gratuït ja no és el que diuen els tutorials​

Fins a mitjan 2025, un compte nou tenia dotze mesos de franquícia en molts serveis: 750 hores al mes d'una instància petita d'EC2, 5 GB de S3, 750 hores de RDS. La majoria de cursos, també el que vam fer a classe, comencen dient «no sortirem del Free Tier».

Per als comptes creats a partir del 15 de juliol de 2025, el model és un altre:

  • En crear el compte tries entre el pla gratuït i el pla de pagament.
  • El pla gratuït dona crèdits (100 $ en crear-lo i fins a 100 $ més per completar activitats guiades) i dura sis mesos o fins que te'ls gastes. Després has de passar al pla de pagament, o el compte es tanca.
  • Les ofertes always free continuen per a tothom: el milió de peticions de Lambda, els 25 GB de DynamoDB, el terabyte de CloudFront, els 100 GB de sortida a internet.

Els comptes antics conserven els dotze mesos fins que s'acaben. Conclusió: abans de creure't cap «és gratis», mira a la consola de facturació quin pla té el teu compte i quants crèdits et queden.


On es mira​

  • Billing → Bills. La factura del mes, desglossada per servei i per regió. És el primer lloc on anar quan arriba un import estrany.
  • Cost Explorer. Gràfics de cost per dia, agrupats per servei, per regió, per tipus d'ús o per etiqueta. El tipus d'ús (usage type) és el que et diu exactament què pagues: EU-NatGateway-Hours, EU-DataTransfer-Out-Bytes, EU-TimedStorage-ByteHrs.
  • Exportacions de dades (CUR). Un fitxer amb cada línia de cost, hora a hora, a un bucket de S3. És el que fan servir les empreses per analitzar-ho amb Athena. Per a un compte personal, Cost Explorer en té prou.

Cost Explorer té API, però cada consulta costa 0,01 $. Un script que la cridi cada minut et genera la factura que volia vigilar.


Els sospitosos habituals​

Quan una factura és més alta del que esperaves, gairebé sempre és un d'aquests:

RecursPer què costaCost aproximat
NAT GatewayCobra per hora encès i per GB que hi passa~35 $/mes per zona, sense trànsit
IP públiques IPv4Des del febrer de 2024 es paguen totes, també les de les EC2 i els balancejadors~3,60 $/mes per IP
Balancejador de càrregaCobra per hora encara que no rebi cap petició~18 $/mes
Transferència cap a internetA partir dels 100 GB gratuïts del mes~0,09 $ per GB
CloudWatch LogsEls grups de logs no caduquen per defecte~0,03 $ per GB i mes, per sempre
EC2 i RDS encesosPagues per hora, els facis servir o noDes de ~8 $/mes la més petita
Volums EBS i instantànies orfesSobreviuen a la instància si no està marcat que s'esborrin~0,09 $ per GB i mes (gp3)
Serveis d'IATranscribe, Polly, Bedrock: es paguen per minut, caràcter o tokenDepèn de l'ús: una pàgina pública sense límits ho dispara

L'últim és el que vam veure a les pràctiques de classe: una funció amb URL pública, sense autenticació, que cridava Transcribe, Translate i Polly. Ningú la va atacar, però qualsevol que hagués trobat la URL podia fer-te pagar hores de transcripció.

Tot això té un patró comú: coses que cobren per existir, no per fer-se servir. Una Lambda aturada no costa res; un NAT Gateway aturat no existeix (no es pot aturar, només esborrar).


Etiquetes: saber de quin projecte és cada euro​

Si al mateix compte hi tens més d'un projecte, la factura per servei no et diu quin s'ho menja. Les etiquetes (tags) sí.

Amb CDK, una línia a l'aplicació etiqueta tots els recursos de la pila:

// bin/llista.ts
import { App, Tags } from "aws-cdk-lib";
import { LlistaStack } from "../lib/llista-stack";

const app = new App();
new LlistaStack(app, "Llista");
Tags.of(app).add("Project", "llista-compra");

Falta un pas que gairebé tothom oblida: a Billing → Cost allocation tags, activa l'etiqueta Project. Fins que no l'actives, Cost Explorer no la veu. I només compta a partir del dia que l'actives, no cap enrere.


Pressupostos: que AWS t'avisi​

Un pressupost (AWS Budgets) t'envia un correu quan el cost real o el previst supera un llindar. És el primer que s'ha de configurar en un compte nou, abans de crear res:

COMPTE=$(aws sts get-caller-identity --query Account --output text)

aws budgets create-budget --account-id "$COMPTE" \
--budget '{
"BudgetName": "mensual-10",
"BudgetLimit": { "Amount": "10", "Unit": "USD" },
"TimeUnit": "MONTHLY",
"BudgetType": "COST"
}' \
--notifications-with-subscribers '[
{
"Notification": { "NotificationType": "ACTUAL", "ComparisonOperator": "GREATER_THAN",
"Threshold": 50, "ThresholdType": "PERCENTAGE" },
"Subscribers": [{ "SubscriptionType": "EMAIL", "Address": "tu@exemple.cat" }]
},
{
"Notification": { "NotificationType": "FORECASTED", "ComparisonOperator": "GREATER_THAN",
"Threshold": 100, "ThresholdType": "PERCENTAGE" },
"Subscribers": [{ "SubscriptionType": "EMAIL", "Address": "tu@exemple.cat" }]
}
]'

Dues alertes: una quan el cost real arriba a la meitat, i una quan la previsió diu que passaràs del límit. La previsió és la que t'avisa a temps: el dia 5 ja sap que, a aquest ritme, acabaràs el mes a 40 $.

Les alertes de pressupost no tenen cost. Només en tenen els pressupostos amb accions automàtiques (aplicar una política que bloquegi, aturar instàncies), a partir del tercer.

Activa també Cost Anomaly Detection (gratuït): aprèn el teu patró de despesa i t'avisa quan un servei es dispara, encara que no hagis arribat al pressupost.

L'alternativa antiga és una alarma de CloudWatch sobre la mètrica EstimatedCharges. Funciona, però només existeix a us-east-1 i s'ha d'activar abans a les preferències de facturació. Per a un compte nou, Budgets.


EC2: les maneres de pagar la mateixa màquina​

Si fas servir instàncies, la mateixa màquina pot costar fins a un 90 % menys segons com la pagues. Al curs presencial ho explicàvem amb un hotel:

OpcióCom funcionaL'hotelQuan
Sota demandaPer segon, sense compromísEntres sense reserva i pagues tarifa senceraProves, càrregues curtes o imprevisibles
Savings PlansEt comprometes a gastar X $/hora durant 1 o 3 anysPagues una quota fixa i dorms on vulguisÚs estable; el Compute serveix per a EC2, Lambda i Fargate, de qualsevol família i regió
Instàncies reservadesCompromís per a un tipus d'instància i regió, 1 o 3 anysReserves l'habitació concreta amb antelacióUna base de dades que sempre està encesa
SpotCapacitat sobrant, fins a un 90 % més barata; AWS te la pot treure amb 2 minuts d'avísHabitacions buides a preu de saldo, però et poden fer foraFeines que es poden interrompre: processament per lots, CI
Hosts dedicatsUn servidor físic sencer per a tuLlogues l'hotel sencerLlicències per nucli o normatives que ho exigeixen

Dues correccions sobre el que es diu sovint: els Savings Plans no són hosts dedicats, i el pla Compute no queda lligat a una família ni a una regió (el que hi queda lligat és l'EC2 Instance Savings Plan).

I la regla d'or: no comprometis res abans de mesurar. Tres mesos d'ús real a Cost Explorer et diuen què et convé; Cost Explorer mateix et fa la recomanació de Savings Plan.


Calcular abans de construir​

La calculadora d'AWS (calculator.aws) et deixa estimar un servei abans de crear-lo. L'exercici que fèiem a classe amb Lambda, refet amb els preus d'ara:

2.000.000 de peticions al mes, 2.400 ms cadascuna, 256 MB de memòria i 1.024 MB d'emmagatzematge efímer, a x86.

La solució, pas a pas
  1. Peticions: 2.000.000 − 1.000.000 gratuïtes = 1.000.000 × 0,20 $ per milió = 0,20 $.
  2. Còmput: 2.000.000 × 2,4 s × 0,25 GB = 1.200.000 GB-segon. Menys els 400.000 gratuïts, 800.000 × 0,0000166667 $ = 13,33 $.
  3. Emmagatzematge efímer: els primers 512 MB són gratuïts. La resta, 0,5 GB × 4.800.000 s = 2.400.000 GB-segon × ~0,0000000309 $ = ~0,07 $.
  4. Total: ~13,60 $ al mes.

Dues notes. Des de l'agost de 2025, AWS també factura la fase d'inicialització (els cold starts), que amb una funció tan llarga és una part petita del total. I fixa't on és el cost: el 98 % és la durada. Si aquesta funció espera una API externa, abaixar-ne el temps és l'única optimització que importa.


Errors habituals​

  • «És gratis, ho diu el tutorial.» El tutorial és d'abans del juliol de 2025, o parla d'un servei que només era gratuït dotze mesos. Mira els crèdits i el pla del teu compte.
  • Crear l'alarma de facturació a eu-west-1. La mètrica EstimatedCharges només és a us-east-1. Amb Budgets no hi ha aquest problema.
  • Etiquetes que no surten a Cost Explorer. No les has activat com a cost allocation tags, o les vas activar ahir i encara no han arribat dades.
  • Acabar la classe i deixar-ho encès. Una EC2, un balancejador i un NAT Gateway oblidats són 60 $ al mes. Acaba sempre amb cdk destroy i comprova-ho amb aws resourcegroupstaggingapi get-resources --tag-filters Key=Project,Values=llista-compra.
  • cdk destroy i encara pagues. Els recursos amb política RETAIN (taules, buckets, grups de logs) s'han quedat. Busca'ls a la consola.
  • Comprar instàncies reservades el primer mes. Si després canvies d'arquitectura, has pagat un any de màquines que no fas servir.

Exercici​

  1. Crea el pressupost d'aquesta lliçó amb el teu correu i comprova que t'arriba la confirmació.
  2. Etiqueta la pila de la llista de la compra amb Project i activa l'etiqueta a Cost allocation tags.
  3. L'endemà, obre Cost Explorer agrupat per l'etiqueta Project i per tipus d'ús.
  4. Calcula amb la calculadora d'AWS quant costaria la llista de la compra amb 1.000 usuaris que fan 50 peticions al dia cadascun. Quin servei pesa més?
Repàs: quatre preguntes
  1. Quina eina t'avisa quan la previsió de cost del mes passarà d'un llindar? AWS Budgets, amb una alerta de tipus FORECASTED.
  2. On mires exactament què pagues dins d'un servei? A Cost Explorer, agrupant per tipus d'ús.
  3. Quina opció de compra d'EC2 és la més barata, i quin inconvenient té? Spot. AWS la pot recuperar amb dos minuts d'avís.
  4. Per què una etiqueta nova no surt a Cost Explorer? Perquè cal activar-la com a etiqueta d'assignació de costos, i només compta des de llavors.

La IA a l'empresa, amb criteri

Cada setmana, una sola cosa que pots fer servir: la notícia que toca la teva empresa i què en faria jo, una pregunta de client, un cas real o un exercici de quinze minuts. Un correu per setmana com a molt, i te'n pots donar de baixa amb un clic.