0Pricing
Cloud & IT Cert Prep · Lezione

Dimensionamento corretto e Compute Optimizer

Utilizzare i suggerimenti di AWS Compute Optimizer per ridimensionare verso il basso istanze EC2, funzioni Lambda e volumi EBS sovradimensionati, riducendo i costi

Dimensionamento corretto e Compute Optimizer è una lezione Cloud & IT Cert Prep gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Cloud & IT Cert Prep, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Cloud & IT Cert Prep include 4 lezioni in totale.

Il problema dell’over-provisioning

Uno degli errori più comuni e costosi nell’architettura cloud è l’over-provisioning, ovvero l’allocazione di più risorse di quelle effettivamente necessarie al carico di lavoro. I team IT spesso effettuano over-provisioning a causa delle abitudini maturate negli ambienti on-premises (acquistare capacità per il carico di picco), del timore di un calo delle prestazioni o semplicemente perché non rivedono mai le decisioni iniziali sul dimensionamento. In AWS, le istanze EC2, i volumi EBS e le funzioni Lambda sovradimensionati comportano uno spreco di denaro ogni minuto in cui sono in esecuzione. Il dimensionamento adeguato è il processo sistematico per individuare ed eliminare questo spreco.

# Common over-provisioning symptoms:
# EC2: average CPU < 10%, memory < 20%
# RDS: storage auto-grow never triggered
# Lambda: allocated memory rarely exceeds 40%
# EBS: provisioned IOPS consistently unused

# Cost impact example:
# Over-provisioned r5.8xlarge at $1.92/hr: $1,382/month
# Correct size r5.xlarge at $0.252/hr:      $181/month
# Savings: $1,201/month per instance

Panoramica di AWS Compute Optimizer

AWS Compute Optimizer analizza le metriche storiche di utilizzo provenienti da CloudWatch e utilizza il machine learning per consigliare le risorse di elaborazione AWS ottimali. Supporta istanze EC2, gruppi EC2 Auto Scaling, volumi EBS, funzioni Lambda e Amazon ECS su Fargate. Compute Optimizer richiede almeno 30 giorni di cronologia delle metriche per generare raccomandazioni affidabili. L’attivazione è gratuita e il servizio fornisce raccomandazioni con il risparmio mensile stimato e una valutazione del rischio associato alla modifica.

# Opt in to Compute Optimizer
aws compute-optimizer update-enrollment-status \
  --status Active

# Get EC2 recommendations
aws compute-optimizer get-ec2-instance-recommendations \
  --query 'instanceRecommendations[].{Instance:currentInstanceType,Recommended:recommendationOptions[0].instanceType,Savings:recommendationOptions[0].estimatedMonthlySavings.value,Risk:recommendationOptions[0].performanceRisk}'

# Get Lambda recommendations
aws compute-optimizer get-lambda-function-recommendations

Dimensionamento adeguato di EC2 con Compute Optimizer

Compute Optimizer analizza l’utilizzo della CPU di EC2, l’utilizzo della memoria (tramite l’agente CloudWatch), la velocità effettiva della rete e gli IOPS EBS negli ultimi 3, 14 o più di 30 giorni. Fornisce quindi uno dei quattro risultati: Ottimizzato (il dimensionamento attuale è adeguato), Sovradimensionato (è possibile ridurlo), Sottodimensionato (è opportuno aumentarlo) oppure Non ottimizzato (dati insufficienti). Esamini sempre il rischio per le prestazioni: Compute Optimizer assegna a ogni raccomandazione un livello di rischio VeryLow, Low, Medium, High.

# EC2 recommendation findings:
# Finding: OVER_PROVISIONED
# CurrentInstanceType: m5.4xlarge
# RecommendedInstanceType: m5.xlarge
# CPU utilisation: P99 = 22%, P50 = 4%
# Memory utilisation: P99 = 18%, P50 = 8%
# EstimatedMonthlySavings: $380
# PerformanceRisk: VeryLow

# Always check:
# - Does current instance have burstable credits? (T3)
# - Are there workload spikes not captured in averages?
# - Is there seasonality to consider?

Dimensionamento adeguato di Lambda

Le funzioni Lambda vengono fatturate per ogni millisecondo di esecuzione moltiplicato per la memoria allocata. Allocare più memoria del necessario comporta uno spreco di denaro, ma una maggiore quantità di memoria implica anche più CPU: l’equilibrio corretto consiste quindi nell’impostazione della memoria che minimizza il costo per invocazione. Compute Optimizer analizza la durata delle invocazioni Lambda, il tasso di errore e le metriche di timeout per consigliare l’impostazione ottimale della memoria. Anche lo strumento open source Lambda Power Tuning può invocare la funzione con diverse impostazioni di memoria per individuare empiricamente la configurazione più conveniente.

# Compute Optimizer Lambda recommendations
aws compute-optimizer get-lambda-function-recommendations \
  --function-arns arn:aws:lambda:us-east-1:123:function:my-function

# Response shows:
# currentMemorySize: 1024 MB
# recommendedMemorySize: 256 MB
# utilizationMetrics:
#   - type: MEMORY_MAXIMUM, value: 89 (MB)
# estimatedMonthlySavings: $45

# 89 MB actual vs 1024 MB allocated = 935 MB wasted

Dimensionamento adeguato dei volumi EBS

I volumi EBS sono spesso sovradimensionati sia in termini di dimensioni (spazio su disco inutilizzato) sia di IOPS (IOPS assegnati che non vengono mai utilizzati). Compute Optimizer analizza le metriche VolumeReadOps, VolumeWriteOps, VolumeReadBytes, VolumeWriteBytes. Una raccomandazione comune consiste nel migrare da gp2 a gp3 (che separa le dimensioni dagli IOPS): è possibile dimensionare gli IOPS in modo indipendente, ottenendo spesso un risparmio del 20%. Individui inoltre i volumi EBS non associati (istanze terminate i cui volumi sono rimasti presenti) e ne crei uno snapshot oppure li elimini.

# Get EBS volume recommendations
aws compute-optimizer get-ebs-volume-recommendations \
  --volume-arns arn:aws:ec2:us-east-1:123:volume/vol-12345

# Common finding: gp2 -> gp3 migration
# gp2: 500 GB = 500 GB * $0.10 = $50/month
#   IOPS: 1,500 (3 IOPS/GB, not configurable)
# gp3: 500 GB = $40/month + 3,000 IOPS free
#   Save $10/month plus get MORE baseline IOPS

# Find unattached EBS volumes
aws ec2 describe-volumes \
  --filters Name=status,Values=available \
  --query 'Volumes[].{VolumeId:VolumeId,Size:Size,Created:CreateTime}'

Raccomandazioni per i gruppi Auto Scaling

Compute Optimizer analizza l’utilizzo dell’ASG considerando tutte le istanze del gruppo e consiglia modifiche al modello di avvio per il tipo di istanza. Se tutte le istanze di un ASG sono costantemente sovradimensionate, passare a un tipo di istanza più piccolo riduce i costi su larga scala. Ad esempio, se un ASG utilizza in media 10 istanze m5.large, passare a m5.medium consente di risparmiare il 50% per istanza. Compute Optimizer consiglia inoltre istanze basate su Graviton quando il software è compatibile, offrendo sia un miglioramento delle prestazioni sia una riduzione dei costi.

# Get ASG recommendations
aws compute-optimizer get-auto-scaling-group-recommendations \
  --auto-scaling-group-arns arn:aws:autoscaling:us-east-1:123:autoScalingGroup:abc:autoScalingGroupName/my-asg

# If recommendation is to switch to Graviton:
# Current: m5.large (x86, $0.096/hr)
# Recommended: m6g.large (Graviton2, $0.077/hr)
# Savings: 20% per instance
# ASG at 10 instances average = $220/month savings

Trusted Advisor per l’analisi dei costi

AWS Trusted Advisor è un altro strumento che fornisce informazioni utili per l’ottimizzazione dei costi, oltre a controlli di sicurezza, prestazioni, tolleranza ai guasti e limiti dei servizi. I principali controlli relativi ai costi sono: Low Utilization EC2 Instances (meno del 10% di CPU per almeno 4 giorni), Unassociated Elastic IP Addresses (addebito quando non sono associate), Underutilized EBS Volumes, Idle Load Balancers (senza destinazioni integre) e Unused Reserved Instances. I controlli di base di Trusted Advisor sono gratuiti; per il set completo è necessario un piano Business o Enterprise Support.

# Trusted Advisor: get cost optimisation checks
aws support describe-trusted-advisor-checks \
  --language en \
  --query 'checks[?category==`cost_optimizing`].{Name:name,Id:id}'

# Key checks:
# Qkj5MU5fNp: Low utilisation EC2 instances
# Z4AUBRNSmh: Unassociated Elastic IP addresses
# DAvU99Dc4C: Underutilized EBS volumes
# hjLMh88uM8: Idle load balancers
# 1e93e4c0b5: Unused reserved instances

Aggiornamento della generazione delle istanze

AWS rilascia regolarmente nuove generazioni di istanze EC2 più efficienti, che offrono prestazioni migliori a un costo inferiore o equivalente. Passare dalla 5ª generazione (m5, c5, r5) alla 7ª generazione (m7g, c7g, r7g) può garantire prestazioni di elaborazione superiori del 40% a un costo simile o inferiore. Compute Optimizer segnala in modo specifico le opportunità di passaggio alle generazioni più recenti, comprese le istanze basate su Graviton. L’aggiornamento delle istanze è spesso l’azione più semplice per un dimensionamento adeguato: stessa configurazione, hardware più recente, prestazioni migliori e costi inferiori.

# EC2 instance generation comparison (same price tier):
# m5.large:  2 vCPU, 8 GB, $0.096/hr  (2019)
# m6i.large: 2 vCPU, 8 GB, $0.096/hr  (2021, ~10% faster)
# m7i.large: 2 vCPU, 8 GB, $0.1008/hr (2023, ~15% faster)
# m7g.large: 2 vCPU, 8 GB, $0.0808/hr (2023, Graviton3, cheapest)

# Upgrade path for Linux workloads:
# m5 -> m7g (Graviton): best price/performance
# m5 -> m7i: same architecture, no code changes

Dimensionamento adeguato delle istanze RDS

Le istanze RDS sono costose e spesso sovradimensionate. Utilizzi le metriche CloudWatch per valutare l’utilizzo di RDS: CPUUtilization, FreeableMemory, ReadIOPS e WriteIOPS. Se la CPU rimane al di sotto del 20% e la memoria resta costantemente elevata, valuti la possibilità di ridurre il dimensionamento. Per i database di produzione con Multi-AZ, il dimensionamento adeguato raddoppia il risparmio, poiché vengono modificate sia l’istanza primaria sia quella standby. Valuti inoltre il passaggio da RDS MySQL/PostgreSQL ad Aurora, che spesso offre prestazioni migliori a un costo simile ed è più conveniente su larga scala.

# Monitor RDS utilisation for right-sizing
aws cloudwatch get-metric-statistics \
  --namespace AWS/RDS \
  --metric-name CPUUtilization \
  --dimensions Name=DBInstanceIdentifier,Value=mydb \
  --start-time 2026-05-21T00:00:00Z \
  --end-time 2026-06-21T00:00:00Z \
  --period 86400 \
  --statistics Maximum Average

# If 30-day P99 CPU < 30%, consider downsizing
# If P99 CPU > 80%, consider upsizing

Rendere operativo il dimensionamento adeguato

Il dimensionamento adeguato dovrebbe essere un processo continuo, non un’attività da svolgere una sola volta. Stabilisca una cadenza di revisione mensile o trimestrale: recuperi le raccomandazioni di Compute Optimizer, valuti quali sia sicuro applicare, implementi le modifiche durante una finestra di manutenzione e misuri il risparmio. Automatizzi gli interventi più semplici: la pulizia dei volumi EBS non associati, il rilascio degli indirizzi IP elastici inutilizzati e la rimozione dei load balancer inattivi possono essere gestiti tramite script. Crei una dashboard di ottimizzazione dei costi in CloudWatch che monitori la spesa mensile per servizio e metta in evidenza gli aumenti insoliti.

# Script to release unassociated Elastic IPs
aws ec2 describe-addresses \
  --query 'Addresses[?!AssociationId].AllocationId' \
  --output text | xargs -I {} \
  aws ec2 release-address --allocation-id {}

# Script to delete unattached EBS volumes (careful!)
# First check if snapshots exist before deleting
aws ec2 describe-volumes \
  --filters Name=status,Values=available \
  --query 'Volumes[].VolumeId' \
  --output text

Dimensionamento adeguato e modifiche architetturali

Il dimensionamento adeguato risolve il sovradimensionamento all’interno delle architetture esistenti, ma talvolta il problema risiede nell’architettura stessa. Una singola istanza EC2 di grandi dimensioni che esegue più applicazioni potrebbe richiedere una scomposizione architetturale (microservizi su Fargate), anziché il semplice passaggio a un’istanza più piccola. Un database monolitico potrebbe richiedere lo sharding o il caching, anziché soltanto la riduzione delle dimensioni dell’istanza. Il dimensionamento adeguato è il primo passo, nonché quello più rapido. L’ottimizzazione dell’architettura (serverless, container, caching) offre risparmi più profondi e duraturi, ma richiede un impegno maggiore. Il pilastro Cost Optimisation raccomanda di perseguire entrambe le strategie.

# Cost optimisation hierarchy:
# Level 1: Right-sizing (quick wins, days)
#   - Compute Optimizer recommendations
#   - Delete unused resources
#   - Elastic IP, EBS cleanup

# Level 2: Purchasing model (weeks)
#   - Reserved Instances / Savings Plans
#   - Spot for eligible workloads

# Level 3: Architecture (months)
#   - Serverless migration
#   - Container consolidation
#   - Caching layer addition
#   - Database optimisation

Verifica rapida

Verifichi la Sua comprensione dei concetti AWS Solutions Architect (SAA-C03) presentati in questa lezione.

Riepilogo della lezione

In questa lezione ha imparato che: AWS Compute Optimizer utilizza il machine learning sulle metriche CloudWatch per consigliare risorse di elaborazione dimensionate correttamente, il dimensionamento adeguato si applica a EC2, Lambda, EBS, ASG ed ECS su Fargate e il passaggio a generazioni più recenti di istanze (in particolare Graviton) migliora sia i costi sia le prestazioni. Renda il dimensionamento adeguato una pratica ricorrente, non un’attività occasionale. Nella prossima lezione esamineremo le istanze riservate, i Savings Plans e i modelli di acquisto Spot.

Domande Frequenti

La lezione «Dimensionamento corretto e Compute Optimizer» è gratuita?

Sì — il testo completo di «Dimensionamento corretto e Compute Optimizer» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Cloud & IT Cert Prep, passa a CoddyKit PRO. Il corso Cloud & IT Cert Prep include 4 lezioni in totale.

Cosa imparerò in «Dimensionamento corretto e Compute Optimizer»?

Utilizzare i suggerimenti di AWS Compute Optimizer per ridimensionare verso il basso istanze EC2, funzioni Lambda e volumi EBS sovradimensionati, riducendo i costi Eserciti Cloud & IT Cert Prep con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Cloud & IT Cert Prep?

Non è richiesta alcuna esperienza precedente. Cloud & IT Cert Prep su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.

Quanto tempo richiede la lezione «Dimensionamento corretto e Compute Optimizer»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Cloud & IT Cert Prep?

Sì. Ogni lezione Cloud & IT Cert Prep include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Dimensionamento corretto e Compute Optimizer
  2. Reserved Instances, Savings Plans e Spot
  3. Cost Explorer, budget e tag di allocazione dei costi
  4. Ottimizzazione dei costi di S3 e del trasferimento dati
← Torna a Cloud & IT Cert Prep