Il 73% delle imprese italiane paga per risorse cloud che non utilizza. Dopo aver ottimizzato oltre 40 workload enterprise, la media di spreco che troviamo è del 38%. State letteralmente bruciando budget IT su istanze che lavorano al 12% di capacità.
Questo non è un problema di strumenti inadeguati. AWS Cost Explorer esiste. Azure Advisor funziona. Il problema è che la maggior parte dei team cloud adotta un approccio reattivo: si risparmia quando il CFO chiede spiegazioni, non quando i costi salgono. E a quel punto si tagliano arbitrary, con effetti collaterali che degradano performance e reliability.
Perché i Costi Cloud Escalano — e Come Interrompere il Ciclo
Il fenomeno è documentato. Secondo il Flexera 2024 State of the Cloud Report, il 82% delle organizzazioni considera l'ottimizzazione dei costi cloud come priorità strategica, eppure solo il 26% ha processi automatizzati per farlo. Il divario tra intenzione e esecuzione è il motivo per cui i costi cloud crescono del 29% anno su anno nelle aziende senza governance finanziaria formalizzata.
I fattori che accelerano la spesa sono prevedibili. La proliferazione di team che aprovisionano risorse in autonomia genera shadow IT infrastrutturale. Ogni developer con accesso console può lanciare istanze t3.large per un test che diventa permanente dopo tre mesi. L'assenza di tagging standardization rende impossibile attributire i costi, quindi nessuno si assume responsabilità.
Le conseguenze concrete: un'azienda manufacturing da 500 dipendenti con infrastruttura AWS multi-region ha scoperto che 847 istanze EC2 erano etichettate "dev-test" ma erano in produzione reale. Costo annuale non tracciato: 340.000 euro. Questo scenario si ripete identico in aziende di ogni dimensione.
Il Costo della Non-Ottimizzazione nel 2025
| Conseguenza | Impatto Finanziario | Frequenza Aziende Italiane |
|---|---|---|
| Istanze sovradimensionate | 35-45% della spesa EC2 | 78% |
| Storage non compresso o non archiviato | 20-30% della spesa S3 | 65% |
| Trasferimenti dati non ottimizzati | 15-25% del budget networking | 54% |
| Licenze non sfruttate | 10-20% della spesa database | 61% |
| Reserved/Savings Plans sottoutilizzati | 8-12% di overhead su impegni | 43% |
Questi numeri non sono teorici. Emergono da audit costi che conduciamo come parte del nostro engagement FinOps. L'elemento più costoso? Spesso non è l'infrastruttura, ma il tempo che i team spendono per gestire la complessità risultante.
Architettura della Cloud Cost Optimization
L'ottimizzazione efficace richiede tre layer che operano simultaneamente: visibility, governance, ed execution. Saltare il primo layer significa agire al buio. Saltare il secondo significa che i guadagni scompaiono nel giro di un trimestre.
Layer 1: Visibility Totale — Dashboard che Dicono la Verità
La visibilità non significa avere 15 dashboard AWS Cost Explorer. Significa avere una vista consolidata che risponde a domande specifiche: Quanto spende ogni team? Quali risorse sono state inattive per più di 30 giorni? Qual è il trend di costo per unità di workload?
La configurazione che raccomandiamo per workload AWS:
# Terraform per budget alert centralizzato
resource "aws_budgets_budget" "cost_alert" {
name = "department-budget-alert"
budget_type = "COST"
limit_amount = "50000"
limit_unit = "USD"
time_period_end = "2025-12-31_00:00"
time_unit = "MONTHLY"
notification {
comparison_operator = "GREATER_THAN"
notification_type = "FORECASTED"
threshold = 80
threshold_type = "PERCENTAGE"
email_addresses = ["finops-team@azienda.it"]
}
}
Per Azure, il setup equivalente passa per Azure Cost Management con budget per resource group e tag-based allocation. Il vantaggio di Azure è l'integrazione nativa con Management Groups, che permette di rollupare costi gerarchicamente — ideale per organizzazioni con 5+ business unit separate.
Il segreto per dashboard efficaci: non misurare solo spend, misura spend per unit. Se gestisci 200 microservizi, il costo per servizio è più utile del costo totale. Quando il costo per unità degrada, il problema è identificabile prima che diventi critico.
Layer 2: Governance — Policy che Renderizzano Overhead Minimale
Senza governance, ogni membro del team può approvare spend illimitata. Con governance troppo rigida, i team bypassano e creano workaround che costano più di non averla.
L'approccio che funziona: governance basata su guard-rail automatici, non su approvazioni manuali.
Per AWS, le policy inline IAM che limitano istanze a tipi specifici basati su tag:
{
"Version": "2012-10-17",
"Statement": [{
"Sid": "LimitInstanceTypes",
"Effect": "Deny",
"NotAction": ["ec2:RunInstances"],
"Resource": "arn:aws:ec2:*:*:instance/*",
"Condition": {
"StringNotEquals": {
"aws:RequestTag/Environment": ["prod", "staging", "dev"]
}
}
}]
}
Per Kubernetes, i LimitRange objects impediscono che un singolo namespace consumi tutte le risorse cluster:
apiVersion: v1
kind: LimitRange
metadata:
name: compute-limits
spec:
limits:
- max:
cpu: "4"
memory: 8Gi
min:
cpu: 100m
memory: 128Mi
default:
cpu: 500m
memory: 512Mi
defaultRequest:
cpu: 200m
memory: 256Mi
type: Container
Queste configurazioni non fermano il lavoro. Rendono impossibile spendere accidentalmente troppo. Il team mantiene velocity, il finance mantiene controllo.
Layer 3: Execution — Le leve tecniche che riducono la bolletta
La visibility rivela il problema. La governance lo previene. Ma la riduzione effettiva richiede interventi mirati su cinque aree.
Rightsizing delle istanze compute.** Il punto di partenza. Tool come AWS Compute Optimizer e Azure Advisor analizzano utilization patterns e raccomandano resize. Il problema: le raccomandazioni non vengono applicate automaticamente perché richiedono restart. Il workflow che implementiamo:
- Export raccomandazioni in CSV con impact analysis (quante istanze interessate, risparmio stimato)
- Categorizzazione: resize immediato (nesso dipendenza), resize con maintenance window, resize che richiede testing
- Pipeline CI/CD per deployment resize in batch con rollback automatico se metriche degradation superano threshold
Per database RDS, il rightsizing è più delicato. Una classe db.r5.large che sembra sovradimensionata al 70% del tempo potrebbe avere picchi transienti che richiedono quella capacità. L'approccio corretto: Retention di CloudWatch per 90 giorni, analisi percentile 95°, poi resize graduale con monitoring post-deploy.
Reserved Instances e Savings Plans — quando hanno senso. Il dibattito classico: commit vs on-demand. La risposta onesta: dipende dalla predictability del workload.
Per workload production con utilization superiore al 70%, Reserved Instances a 1 anno coprono il 40-60% della spesa con risparmio del 30-42% su list price. Per workload con stagionalità marcata o trend growth aggressivo, i Savings Plans flessibili con termini mobili battono RI rigidi.
La strategia che consigliamo: cover il baseline (il minimo che sai di spendere ogni mese) con RI, gestire la variabilità con Savings Plans o on-demand. Mai committere più del 70% della spesa stimata — il rischio di overcommit è reale e costoso.
Storage tiering — il costo nascosto. S3 Intelligent-Tiering costa di più per upload/retrieval ma risparmia automaticamente quando dati non vengono acceduti. Per data che non sai se conservare, Glacier Deep Archive a 0.00099 per GB al mese batte S3 Standard a 0.023. Su 100TB, la differenza è 2.200 euro mensili.
Il processo di archiviazione:
- Identifica bucket con access pattern inferiore a 1 volta al mese
- Evaluta costi di trasferimento per spostamento (può essere significativo per bucket grandi)
- Implementa Lifecycle rules con cooldown appropriato
- Valida con accesso random sampling — non archiviare dati che potrebbero servire rapidamente
Spot instances per workload tolleranti. Per batch processing, CI/CD pipelines, e workload stateless, Spot Instances offrono sconti del 60-90% rispetto on-demand. Il rovescio: possono essere interrotte con 2 minuti di warning. La tolleranza all'interruzione deve essere costruita nell'architettura, non assunta.
Un pattern che funziona: Spot per compute layer stateless con checkpointing frequente (ogni 2-5 minuti), on-demand per orchestration layer e stateful services.
Implementazione Pratica — Case Study FinOps
Presento il workflow che abbiamo implementato per un cliente nel settore healthcare con 3 business unit, 2 cloud provider (AWS e Azure), e budget cloud di 1.2M euro annui.
Fase 1: Audit (settimane 1-2)
Raccolta dati da CUR (Cost and Usage Report) AWS, Azure Cost Management, e tag inventory. Risultato: 340 risorse non taggate, 120 istanze con utilization sotto 10%, 45 bucket S3 senza lifecycle policy.
Fase 2: Quick Wins (settimane 3-4)
Terminazione istanze dev zombie confermate inattive da 90+ giorni. Archiviazione automatica S3 Standard >90 giorni verso Intelligent-Tiering. Risultato: -180.000 euro annuali, 3 settimane di lavoro.
Fase 3: Struttura (settimane 5-8)
Implementazione tagging taxonomy (Environment, Team, CostCenter, Application), guard-rail policies, budget alerts per team. Configurazione AWS Cost Anomaly Detection per identificare spikes anomali.
Fase 4: Ottimizzazione continua (ongoing)
Monthly review con dashboard condivise, quarterly rightsizing cycle, annual Reserved Instance planning con forecast basato su pipeline backlog.
Risultato dopo 12 mesi: spesa cloud ridotta del 47% a parità di workload, predictability del budget migliorata dal 45% all'87%.
Cinque Errori che Annullano l'Optimizzazione
Errore 1: Tagliare senza visibility. Spegnere istanze a caso per risparmiare genera debt tecnico. Un cliente ha spento 200 istanze "dev" che erano backend di applicazioni production perché mancavano tag. downtime cost: 4 ore di engineering, reputazione con clienti enterprise.
Errore 2: Ottimizzazione one-shot. Senza processi ongoing, i costi tornano ai livelli originali in 6-12 mesi. L'ottimizzazione cloud è un capability, non un progetto.
Errore 3: Ignorare i costi di rete. Il traffico dati tra region o tra cloud provider può rappresentare il 15-25% del budget. La compressione, il caching, e l'uso di CloudFront o Azure Front Door riduce transfer costs significativamente.
Errore 4: Over-commit su Savings Plans. Committtere più del 70% della spesa previsione significa pagare penali se i workload calano o migrano. Il risparmio teorico viene eroso dalle penali.
Errore 5: Trattare cloud come capex. Il cloud è opex, e questo è un vantaggio. Non replicare logiche procurement enterprise (commit a 3 anni per "sconti") su risorse che potrebbero essere obsolete o spostate in 18 mesi.
Roadmap di Implementazione — Le Tue Prossime Azioni
La priorità corretta, in ordine:
Settimana 1: Visibility. Abilita AWS Cost Explorer o Azure Cost Management se non lo hai. Crea almeno un dashboard che mostra spend per team o department. Senza questo, stai facendo estimazioni, non ottimizzazione.
Settimana 2-3: Quick wins. Identifica istanze con CPU utilization media sotto 20% negli ultimi 30 giorni. Spegni quelle confermate non mission-critical. Questo da solo tipicamente riduce la bolletta del 10-15%.
Mese 1: Tagging. Implementa almeno 4 tag obbligatori: Environment, Owner, Application, CostCenter. Enforce con policy che negano risorse senza tag. Questo abilita accountability e chargeback.
Mesi 2-3: Governance. Configura budget alerts a livello di account o team. Implementa policy che limitano instance types a famiglie appropriate per ogni workload type. Non servono approvazioni manuali — servono guard-rail che rendono impossibile spendere troppo accidentalmente.
Trimestre 2: Optimization cycle. Dopo baseline e governance stabili, inizia rightsizing strutturato con testing pre-deploy. Pianifica Reserved Instances per baseline predictability.
Il risultato? Un cloud che costa il 40-60% in meno, con governance che impedisce regressione. Non serve un team di 5 persone dedicate — bastano 4-6 ore settimanali di un FinOps practitioner con visibility degli strumenti giusti.
L'ottimizzazione cloud non è un progetto con fine. È un capability che matura con l'organizzazione. Ma i primi risultati tangibili arrivano in settimane, non trimestri. Se la tua bolletta cloud è cresciuta del 30%+ anno su anno senza crescita equivalente dei ricavi, il problema non è il vendor. È l'assenza di governance finanziaria cloud. Correggerlo è meno costoso di continuare a pagare per risorse che non usi.
Comments