Arriva l'email di AWS con la fattura ed è il 40 % più alta del mese scorso. Oppure scatta l'avviso del budget il giorno 18. Non serve capire tutta la fattura per risolverlo: quasi sempre è una sola cosa che è comparsa o è cresciuta, e Cost Explorer la indica in pochi minuti se sai quali pulsanti premere.
Il metodo è sempre lo stesso: prima quale servizio è salito, poi in quale regione, poi quale tipo di utilizzo dentro quel servizio, e infine da quale giorno. Con queste quattro risposte sai già quale oggetto cercare nella console e cosa farne.
Le cifre dei prezzi sono approssimative e in dollari.
Prima di iniziare: cosa significa ogni cosa
- Cost Explorer
- La schermata di AWS che mostra la spesa in grafici e permette di filtrarla e raggrupparla per servizio, regione, tipo di utilizzo, tag o risorsa. Impiega un giorno ad aggiornarsi.
- Bills (fatture)
- La fattura ufficiale del mese, riga per riga, con quantità e importi. È quello che viene addebitato sulla carta.
- Servizio
- Ogni prodotto di AWS: EC2 (macchine), RDS (database), S3 (file), Lambda (funzioni)... La fattura è suddivisa per servizio.
- Tipo di utilizzo
- La voce concreta dentro un servizio: ore di macchina, GB di disco, GB di istantanea, GB trasferiti... Il suo nome comincia con un codice di regione.
- EC2-Other
- Il cassetto misto di EC2 in Cost Explorer: dischi, istantanee, IP, NAT Gateway e trasferimento tra zone. Quasi sempre, la causa dello spavento è qui.
- Granularità
- Se il grafico è disegnato per mesi, per giorni o per ore. Quella per giorni è quella che mostra quando è cominciato qualcosa.
- Previsione
- Quello che AWS calcola che spenderai a fine mese se continui al ritmo attuale.
- NAT Gateway
- Un componente di rete che permette a macchine senza indirizzo pubblico di uscire su internet. Si paga a ore e a GB anche se nessuno lo usa.
- Lambda
- Funzioni che si eseguono senza server, pagando per ogni esecuzione e per il tempo che dura. Economicissimo per unità, caro in loop.
Passo dopo passo
Apri Cost Explorer e confronta con il mese scorso
Menu del tuo account (in alto a destra), Billing and Cost Management, Cost Explorer. Se è la prima volta, premi Enable e torna domani: impiega fino a 24 ore ad avere dati.
Nel pannello di destra, periodo ultimi 3 mesi, granularità mensile, e in Group by scegli Service. Vedrai tre barre impilate a colori. Confronta quella di questo mese con la precedente: il colore che è cresciuto è il servizio colpevole. Se il mese non è finito, guarda anche la linea della previsione, che estrapola al ritmo attuale.
Restringi agli ultimi giorni per vedere quando è cominciato
Cambia il periodo a ultimi 14 giorni e la granularità a giornaliera, stesso raggruppamento per servizio. Ora vedrai un gradino: il giorno in cui la spesa giornaliera è salita. Quel giorno è l'indizio più prezioso: qualcuno ha creato qualcosa, un processo è cambiato o qualcosa si è riavviato. Chiedi al team cos'è successo quel giorno prima di continuare a cercare.
Se invece di un gradino vedi una rampa che sale poco a poco, è accumulo: istantanee, log, versioni di file.
Filtra per quel servizio e raggruppa per tipo di utilizzo
Nel pannello dei filtri, Service, spunta solo quello che è salito e applica. Cambia Group by in Usage type. I nomi sono tecnici ma si capiscono:
BoxUsagesono ore di macchina,EBS:VolumeUsagedischi,EBS:SnapshotUsageistantanee,DataTransfer-Outuscita di dati,PublicIPv4:InUseAddresseIdleAddressindirizzi IP,NatGateway-Hoursil gateway NAT. Il prefisso di ogni nome (EU,EUW3,USE1) indica la regione.Raggruppa per regione
Torna a Group by e scegli Region. Se c'è spesa in una regione dove non hai nulla (Virginia, Ohio, Francoforte quando le tue cose sono in Irlanda o a Parigi), è già localizzato: qualcuno ha fatto una prova lì o una procedura guidata ha creato qualcosa. Cambia regione nella console di EC2 e guarda istanze, volumi, istantanee e IP. Lightsail ha una console a parte per regione; controlla anche quella.
Raggruppa per tag o per risorsa
Se hai tag di allocazione dei costi attivati (
Proyecto,Propietario), raggruppa per quel Tag: ti dice di chi è la spesa nuova. Altrimenti, con granularità giornaliera e filtrando per EC2, puoi raggruppare per Resource negli ultimi 14 giorni per vedere l'identificativo esatto della macchina o del disco. Copia l'identificativo e cercalo nella console di EC2.Controlla la fattura ufficiale e i crediti
In Bills, scegli il mese ed espandi il servizio. Lì c'è ogni riga con la quantità (ore, GB) e l'importo, con la regione nel nome. Guarda anche i crediti e il piano gratuito: un aumento che coincide con l'anniversario dell'account di solito è la fine del primo anno gratis. Lì non c'è nulla da sistemare; il prezzo reale finalmente si vede.
Le cause tipiche, dalla più alla meno frequente
Macchina creata e dimenticata. Una EC2 per una prova, accesa da settimane. In Cost Explorer: EC2, tipo di utilizzo BoxUsage, gradino il giorno in cui è stata creata. Una t3.medium costa circa 30-35 dollari al mese; una m5.xlarge, circa 150. Lo stesso in Lightsail, con la differenza che lì la macchina ferma continua a far pagare il piano intero.
Istantanee accumulate. Rampa dolce in EC2 (SnapshotUsage), RDS o Lightsail. Ogni GB costa circa 0,05 dollari al mese; il problema è che sono centinaia di GB in decine di copie che nessuno cancella. Di solito vengono da una policy di copie automatiche senza limite di conservazione.
IP non assegnati. AWS fa pagare tutti gli indirizzi IPv4 pubblici, circa 3,60 dollari al mese ciascuno. Un IP elastico di una macchina che hai cancellato, o cinque, compaiono come IdleAddress. Piccolo, ma si nota negli account con poca spesa.
Trasferimento dati in uscita. DataTransfer-Out-Bytes, circa 0,09 dollari per GB. Un sito che all'improvviso serve video, un backup che ora si scarica ogni giorno fuori da AWS, un bucket S3 pubblico che qualcuno ha linkato da un sito con molto traffico. Anche il traffico tra regioni o tra zone di disponibilità, che si paga anche se resta dentro AWS.
RDS fermo che si riavvia da solo. Un database RDS si può fermare per risparmiare, ma AWS lo riavvia automaticamente dopo 7 giorni. Chi lo ha fermato di lunedì lo ritrova acceso e a pagamento il lunedì successivo. In Cost Explorer: RDS, con gradini settimanali se qualcuno lo ferma di nuovo.
Lambda in loop. Una funzione che innesca se stessa (scrive in un bucket che a sua volta innesca la funzione, o riprova senza limite) può eseguirsi milioni di volte. Lambda è molto economico per esecuzione, ma milioni sono milioni. In Cost Explorer sale Lambda e, con lui, CloudWatch per i log. Per vederlo: nella console AWS entra in Lambda, apri la funzione e guarda la scheda Monitor, grafico delle invocazioni. In Simplio non serve cercarlo: la scheda di ogni funzione mostra le esecuzioni del mese e il loro costo approssimativo.
NAT Gateway. La procedura guidata della VPC lo crea per impostazione predefinita in alcuni flussi. Costa circa 30-35 dollari al mese per il solo fatto di esistere, più circa 0,05 dollari per GB che ci passa. Compare come NatGateway-Hours e NatGateway-Bytes dentro "EC2-Other". Se le tue macchine hanno IP pubblico, non ti serve.
Altre meno frequenti: un piano di supporto sottoscritto per errore, log di CloudWatch senza scadenza, versioni vecchie in un bucket S3 con versioning, bilanciatori senza nulla dietro.
Come tagliare la spesa oggi stesso
- Macchina dimenticata: se non ti serve, fai un'istantanea (per sicurezza) e terminala. Se ti serve ogni tanto, fermala; in EC2 pagherai solo il disco. Se è Lightsail, istantanea e cancellare: fermarla non fa risparmiare.
- Istantanee: ordina per data e cancella le vecchie. Conserva le ultime due o tre di ogni macchina di produzione. Controlla le policy di copie automatiche (Data Lifecycle Manager, AWS Backup, istantanee automatiche di Lightsail) e metti loro un limite di conservazione.
- IP orfani: in EC2, Elastic IPs, quelli senza istanza associata: Release. In Lightsail, menu Networking, quelli non associati: eliminare.
- Trasferimento: individua l'origine (la macchina o il bucket con più traffico in uscita nelle sue metriche) e decidi: cache, CloudFront, comprimere, spostare il backup su S3 nella stessa regione, o chiudere un bucket pubblico.
- RDS che si riavvia: se davvero non lo usi, fai un'istantanea del database e cancellalo; ripristinarlo richiede dieci minuti. Se lo usi ogni tanto, programma lo spegnimento settimanale con EventBridge Scheduler o accetta il costo.
- Lambda in loop: abbassa a 0 la concorrenza riservata della funzione per fermarla all'istante, sistema il trigger e rialzala.
- NAT Gateway: in VPC, NAT gateways, cancellalo se non ci sono macchine private che lo usano. Prima, verifica che nessuna macchina senza IP pubblico ne abbia bisogno per uscire su internet.
Perché non succeda di nuovo
Tre cose, in quest'ordine di sforzo:
- Un budget in Budgets con avviso all'80 % della spesa effettiva e al 100 % della previsione. Due minuti. Trasforma una sorpresa a fine mese in un avviso a metà mese.
- Tag
ProyectoePropietarioattivati come tag di costo. La prossima volta, il passo 5 di questa guida ti dà il nome direttamente. - Una revisione mensile di cinque minuti: Cost Explorer per servizio e per regione, IP orfani, dischi senza macchina, istantanee di più di sei mesi.
Cosa può andare storto
Cost Explorer non mostra gli ultimi due giorni
È normale: i dati arrivano con fino a 24 ore di ritardo e il giorno in corso è incompleto. Per vedere l'effetto di qualcosa che hai appena cancellato, aspetta un giorno. Per un'emergenza vera (un loop di Lambda, una macchina molto grande), non aspettare Cost Explorer: guarda direttamente la console del servizio.
La spesa è in "EC2-Other" e non so cos'è
"EC2-Other" raggruppa tutto ciò che non sono ore di macchina: dischi EBS, istantanee, indirizzi IP, NAT Gateway, trasferimento tra zone. Filtra per quel servizio e raggruppa per Usage type; il nome del tipo di utilizzo dice esattamente quale di questi è.
Ho cancellato l'oggetto ma la fattura resta uguale
Quello che è già stato consumato questo mese non sparisce: la fattura riflette la spesa accumulata fino a oggi. Quello che deve scendere è la spesa giornaliera a partire da domani. Guarda Cost Explorer con granularità giornaliera dopo due giorni e verifica che il gradino sia tornato giù. Se no, resta qualche residuo (l'IP, il disco, l'istantanea) dell'oggetto cancellato.
Non ho il permesso di vedere Billing
Per impostazione predefinita solo l'account root e gli utenti con permessi di fatturazione entrano in Cost Explorer. L'amministratore deve attivare l'accesso IAM alle informazioni di fatturazione nelle impostazioni dell'account e dare all'utente una policy come Billing o AWSBillingReadOnlyAccess.
In Simplio
In Simplio la schermata Costi mostra, per ogni account AWS collegato, quanto fatturato questo mese fino a oggi, la previsione di fine mese e il mese precedente, in dollari e in euro, insieme al costo approssimativo di ogni oggetto: macchine, database, dischi, istantanee, IP. Le schede di ogni macchina permettono di fermarla, cancellarla o farle un'istantanea al momento, e il budget mensile avvisa via email quando la spesa devia.
Con il registro delle attività vedi chi ha creato cosa e quando, e con il budget per utente ogni persona ha il suo tetto prima che il problema arrivi in fattura.
La stessa cosa, in AWS e in Simplio
| Nella console di AWS | In Simplio | |
|---|---|---|
| Vedere cosa è salito | Cost Explorer, cinque raggruppamenti e un giorno di ritardo | Schermata Costi: questo mese, previsione e costo approssimativo di ogni oggetto |
| Sapere chi lo ha creato | Solo se c'erano tag di costo attivati prima | Registro delle attività: chi, cosa e quando |
| Tagliare la spesa | Cercare l'oggetto nella console di ogni servizio e regione | Fermare, cancellare o fare un'istantanea dalla scheda dell'oggetto |
| Che non si ripeta | Budget in Budgets e tag obbligatori | Budget mensile con avviso via email e budget per utente |