HomeCloud e Virtualizzazione › Come calcolare le risorse cloud necessarie per la tua attività? Il metodo che previene sprechi
Cloud e Virtualizzazione

Come calcolare le risorse cloud necessarie per la tua attività? Il metodo che previene sprechi

📅 22 Agosto 2026✍️ di Simona Valguarnera⏱️ 6 min di lettura

Il cloud ha reso elastiche le infrastrutture IT, ma senza un metodo rigoroso il conto cresce più rapido del valore prodotto. Per dimensionare in modo efficiente, serve un approccio misurabile che trasformi carichi di lavoro, obiettivi di servizio e limiti di budget in risorse concrete: vCPU, memoria, IOPS (operazioni di I/O al secondo), banda e storage. Questo articolo propone un percorso operativo, utile a chi guida team ibridi e ha bisogno di parlare un linguaggio chiaro con stakeholder non tecnici.

Perché il dimensionamento è una funzione di business

Dimensionare significa stimare la capacità necessaria per garantire gli obiettivi di servizio, minimizzando lo spreco. Gli obiettivi sono descritti da SLA (Service Level Agreement) e SLO (Service Level Objective): ad esempio, disponibilità del 99,9% e latenza mediana sotto i 150 ms. Le risorse da prevedere includono calcolo (vCPU e memoria RAM), storage (capacità in GB, IOPS e throughput), rete (banda in Mb/s, traffico in GB) e servizi gestiti (database, code, bilanciatori).

La difficoltà principale è l’elasticità: picchi stagionali, campagne marketing e nuove feature modificano rapidamente la domanda. Un metodo affidabile combina dati storici, test controllati e scelte architetturali che facilitano il “rightsizing”, ossia l’assegnazione della taglia corretta alle risorse.

Un metodo in 6 fasi per prevenire sprechi

Un ciclo strutturato, ripetibile, consente di passare dall’ipotesi alla prova misurabile.

  • 1) Profilare i carichi di lavoro. Raccogliere log e metriche esistenti: richieste al secondo (RPS), utenti concorrenti, traffico in ingresso/uscita, latenza P50/P95/P99 (percentili che indicano il tempo di risposta per il 50%, 95% e 99% delle richieste), utilizzo CPU e memoria. Segmentare per servizio e fascia oraria per evidenziare stagionalità.
  • 2) Definire la baseline. Eseguire benchmark riproducibili con dataset rappresentativi. Stabilire una baseline “di quiete” e una “di carico medio” per ciascun servizio. Documentare la configurazione: versione software, dimensione istanze, limiti dei container.
  • 3) Modellare la domanda. Applicare fattori di picco (es. 3x durante saldi o campagne) e scenari di crescita (es. +20% trimestre). Considerare eventi sporadici con “safety margin” logico: ad esempio, pianificare capacità per il P95 del carico più un 20% di margine.
  • 4) Scegliere il modello di erogazione. Valutare autoscaling orizzontale (aggiungere istanze) e verticale (aumentare risorse per istanza), bilanciatori, code per decoupling, e limiti nei container. Preferire componenti stateless e servizi gestiti quando riducono la variabilità di performance.
  • 5) Applicare il rightsizing. Se l’utilizzo medio CPU è sotto il 30% e i picchi sono brevi, ridurre la taglia o aumentare l’autoscaling. Misurare il “costo per richiesta” e il “costo per utente attivo” per verificare l’efficienza.
  • 6) Validare con test di carico e canary. Eseguire stress test e test di resilienza prima dei picchi, simulando guasti parziali. Introdurre modifiche in canary release per osservare l’impatto reale su performance e costi.

Metriche che contano davvero

Le scelte di dimensionamento devono poggiare su poche metriche comprensibili e comparabili.

  • Prestazioni: CPU utilizzo medio e P95; memoria utilizzata e page faults; latenza P95/P99; throughput (MB/s) e IOPS su storage; error rate applicativo.
  • Capacità: RPS massime sostenibili per istanza; connessioni concorrenti; code backlog (messaggi in attesa); saturazione rete (Mb/s).
  • Economia: costo per 1.000 richieste; costo per utente mensile; costo dell’inattività (risorse con utilizzo < 10%); costo di trasferimento dati in uscita.
  • Affidabilità: budget di errore SRE (quota di errori accettabile entro un periodo), tempo di ripristino medio (MTTR), copertura backup e RPO/RTO (obiettivi di punto e tempo di ripristino).

Tabella pratica: segnali e azioni

Risorsa Sovradimensionamento Sottodimensionamento Azione consigliata
vCPU CPU < 20% per gran parte del giorno CPU > 80% prolungata, code crescenti Ridurre taglia o aumentare autoscaling; profilare hot path
Memoria RAM libera > 40% stabile OOM kill, swap, GC eccessivo Ricalibrare limiti container; ottimizzare heap e caching
Storage IOPS usati < 10% del provisioned Latenza disco alta, throttling Passare a tier più piccolo o burst; rivedere schema dati
Rete Banda inutilizzata persistente Saturazione link, timeout Ottimizzare compressione, CDN, peering; ridurre egress

Strumenti e dati: come misurare con rigore

I principali cloud forniscono metriche native: Amazon CloudWatch, Azure Monitor, Google Cloud Monitoring. Per l’osservabilità end-to-end, strumenti APM (Application Performance Monitoring) come Datadog, New Relic o OpenTelemetry tracciano tempi, errori e dipendenze.

L’infrastruttura come codice (IaC) con Terraform o CloudFormation consente di versionare la capacità e di replicare ambienti di test fedeli alla produzione. Il tagging obbligatorio di risorse (servizio, ambiente, owner, centro di costo) è un prerequisito per analisi perimetriche e chargeback.

Per i test di carico, JMeter, k6 o locust permettono scenari con curve di ramp-up, mantenimento e spike. L’obiettivo è individuare il punto di saturazione e la curva costo/prestazione al variare della taglia.

Stima dei costi: dal listino allo scenario

La formula pratica è additiva: costo totale = somma di costo calcolo (vCPU-ore + RAM-ore), costo storage (GB-mese + IOPS provisioned), costo rete (GB egress), costo servizi gestiti (per milione di richieste, connessioni, shard). Conviene costruire tre scenari: prudente, atteso, stress.

Esempio sintetico mensile per un servizio web autoscalato: 8 istanze medie durante il giorno, 3 di notte. Prezzo on-demand 0,10 €/vCPU-ora, 0,012 €/GB-ora RAM; ogni istanza ha 2 vCPU e 8 GB RAM.

  • Ore diurne: 8 istanze × 12 ore × 30 giorni = 2.880 istanza-ore.
  • Ore notturne: 3 istanze × 12 ore × 30 giorni = 1.080 istanza-ore.
  • Totale istanza-ore: 3.960. vCPU-ore: 3.960 × 2 = 7.920. RAM-ore: 3.960 × 8 = 31.680.
  • Costo vCPU: 7.920 × 0,10 € = 792 €; costo RAM: 31.680 × 0,012 € ≈ 380 €.
  • Storage: 500 GB SSD generico a 0,10 €/GB-mese = 50 €; IOPS inclusi.
  • Egress: 2 TB a 0,08 €/GB = 160 €.

Stima complessiva ≈ 1.382 € al mese, esclusi servizi aggiuntivi. Impegnare il 1 anno con risorse riservate o savings plan può ridurre il calcolo del 20–40%, a patto di avere profili di utilizzo stabili.

Governance, sicurezza e responsabilità economica

La disciplina finanziaria del cloud si concreta con FinOps, che allinea team tecnici e controllo di gestione su obiettivi misurabili: budget per servizio, costo per funzionalità, previsioni mensili. Le pratiche includono policy di tag, report settimanali su risorse inattive, alert di anomalia costi e revisione trimestrale degli impegni contrattuali.

La sicurezza rimane un vincolo di progetto, non un’aggiunta. Standard come ISO/IEC 27001 orientano il controllo degli accessi, la classificazione dei dati e la gestione dei backup. La scelta delle regioni e delle repliche deve rispettare policy aziendali e requisiti normativi, tenendo conto dell’impatto sui costi di storage e di rete.

Caso d’uso: e-commerce in crescita controllata

Un e-commerce con 200 RPS medi e picchi a 800 RPS nei weekend necessita di scalabilità prevedibile. I test indicano che una singola istanza applicativa gestisce 100 RPS a P95 180 ms con CPU al 70%.

  • Capacità target: per 800 RPS a P95 < 200 ms servono 8 istanze equivalenti, con autoscaling tra 4 e 10 in base a CPU P95 e coda richieste.
  • Database: servizio gestito con storage SSD provisioned 6.000 IOPS; read replica per scaricare il 60% delle letture; cache in-memory per sessioni.
  • Rete e front-end: CDN per contenuti statici riduce l’egress dal core del 40%; compressione Brotli e immagini ottimizzate.
  • Sicurezza e resilienza: backup giornalieri con RPO 15 minuti; deployment blue/green per aggiornamenti senza downtime.

Confronto economico pre e post ottimizzazione: eliminando istanze sovradimensionate notturne e riducendo egress tramite CDN, la spesa mensile scende del 28% con la stessa affidabilità. Il costo per 1.000 richieste passa da 0,045 € a 0,032 €.

Errori comuni da evitare

  • Progettare per il picco massimo assoluto senza autoscaling, bloccando capitale in risorse inattive.
  • Ignorare il costo dell’egress, che può superare il calcolo in architetture chatty o multi-cloud.
  • Usare storage premium dove basterebbe uno tier general purpose con caching applicativo.
  • Dimenticare licenze software e costi di servizi ancillari (monitoring, logging, sicurezza).
  • Non validare le dipendenze: una coda o un database sottodimensionati vanificano il surplus di vCPU.

Conclusioni operative

  • Misurare prima di comprare: profilare carichi e stabilire baseline riproducibili.
  • Progettare per l’elasticità: autoscaling, componenti stateless, cache selettiva.
  • Ottimizzare con cicli brevi: rightsizing mensile, test di carico trimestrali, revisione degli impegni.
  • Rendere i costi osservabili: tag obbligatori, costo per richiesta e per servizio in dashboard condivise.
  • Integrare governance e sicurezza: pratiche FinOps e controlli ispirati a ISO/IEC 27001.

Un metodo disciplinato riduce sprechi e incertezze, facilita il dialogo tra team tecnici e direzione e prepara l’infrastruttura a crescere al ritmo del business senza sorprese.

Simona Valguarnera

Inizia la carriera come sistemista in una startup, poi collabora con due aziende di sviluppo software. Simona ha seguito progetti di digitalizzazione, imparando a gestire team ibridi e il deployment di applicazioni web per clienti non tecnici.