Policy di scaling: target tracking e step scaling
Configurerete il target tracking per mantenere un obiettivo di utilizzo della CPU e lo step scaling per reagire alle soglie degli allarmi CloudWatch.
Policy di scaling: target tracking e step scaling è una lezione Cloud & IT Cert Prep gratuita su CoddyKit. Questa è la lezione 2 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.
Perché esistono le policy di scaling
Una capacità desiderata statica funziona quando il carico è costante, ma il traffico reale varia. Le policy di scaling consentono a un Auto Scaling Group di modificare automaticamente la capacità desiderata in risposta alle metriche. AWS offre tre principali tipi di policy dinamiche: Target Tracking, Step Scaling e Simple Scaling. Per l'esame SAA-C03, è più importante comprendere Target Tracking e Step Scaling.
Funzionamento del Target Tracking Scaling
Il Target Tracking Scaling funziona come un termostato: si specificano una metrica e un valore target, quindi AWS calcola automaticamente quante istanze aggiungere o rimuovere per mantenere la metrica su quel target. Ad esempio, se si imposta come obiettivo un'utilizzazione media della CPU del 50% e l'utilizzazione sale all'80%, l'ASG aggiunge un numero sufficiente di istanze per riportare la CPU al 50%. AWS gestisce entrambe le operazioni di scale-out e scale-in.
aws autoscaling put-scaling-policy \
--auto-scaling-group-name 'MyAppASG' \
--policy-name 'TargetTrackingCPU50' \
--policy-type TargetTrackingScaling \
--target-tracking-configuration '{
"PredefinedMetricSpecification": {
"PredefinedMetricType": "ASGAverageCPUUtilization"
},
"TargetValue": 50.0
}'Metriche predefinite e personalizzate per il Target Tracking
Target Tracking supporta nativamente diverse metriche predefinite: ASGAverageCPUUtilization, ASGAverageNetworkIn, ASGAverageNetworkOut e la metrica specifica per ALB ALBRequestCountPerTarget. Per KPI specifici dell'applicazione (profondità della coda, connessioni attive, metriche aziendali personalizzate) è possibile fornire una metrica CloudWatch personalizzata. Le metriche personalizzate offrono un controllo molto più preciso sui fattori che determinano le decisioni di scaling.
Periodo di cooldown per il Target Tracking
Dopo un evento di scale-out, l'ASG attende un periodo di cooldown (300 secondi per impostazione predefinita) prima di valutare un altro scale-out. In questo modo le istanze appena avviate hanno il tempo di iniziare a gestire il traffico e la metrica può stabilizzarsi. Analogamente, un cooldown dello scale-in impedisce terminazioni premature subito dopo l'aggiunta di capacità. Per il target tracking, AWS raccomanda inoltre di utilizzare un periodo di warm-up, così le nuove istanze non alterano la metrica prima di essere completamente inizializzate.
Funzionamento dello Step Scaling
Lo Step Scaling risponde agli allarmi CloudWatch aggiungendo o rimuovendo un numero specifico di istanze in base a quanto la metrica supera una soglia. Si definiscono più step adjustment: ogni intervallo copre un intervallo di valori della metrica e specifica una variazione della capacità. Ad esempio: se la CPU è tra il 60% e il 70%, aggiungere 1 istanza; se è tra il 70% e il 90%, aggiungerne 3; se supera il 90%, aggiungerne 5. In questo modo si ottengono risposte graduali e proporzionate ai diversi livelli di carico.
Creazione di una policy di Step Scaling
Lo step scaling richiede un allarme CloudWatch già esistente. L'allarme monitora una metrica e passa allo stato ALARM quando viene superata una soglia. La policy di scaling utilizza quindi gli step adjustment definiti in base al valore della metrica rispetto alla soglia dell'allarme. È possibile configurare il tipo di modifica come ChangeInCapacity (aggiunge N), ExactCapacity (imposta N) o PercentChangeInCapacity (modifica la capacità di N%).
# First create a CloudWatch alarm
aws cloudwatch put-metric-alarm \
--alarm-name 'HighCPU' \
--metric-name CPUUtilization \
--namespace AWS/EC2 \
--statistic Average \
--period 60 \
--threshold 60 \
--comparison-operator GreaterThanOrEqualToThreshold \
--dimensions Name=AutoScalingGroupName,Value=MyAppASG \
--evaluation-periods 2 \
--alarm-actions 'arn:aws:autoscaling:us-east-1:123456789:scalingPolicy:...'Configurazione degli step adjustment
Ogni step adjustment dispone di un MetricIntervalLowerBound e, facoltativamente, di un MetricIntervalUpperBound. I limiti sono relativi alla soglia dell'allarme. Se la soglia dell'allarme è una CPU del 60%: LowerBound=0, UpperBound=10 si attiva quando la CPU è tra il 60% e il 70%; LowerBound=10, UpperBound=null si attiva quando la CPU supera il 70%. Questo approccio a più livelli garantisce che i grandi picchi di traffico ricevano immediatamente un aumento significativo della capacità, senza attendere più cicli dell'allarme.
# Step scaling policy with two steps
{
'StepAdjustments': [
{
'MetricIntervalLowerBound': 0,
'MetricIntervalUpperBound': 10,
'ScalingAdjustment': 2
},
{
'MetricIntervalLowerBound': 10,
'ScalingAdjustment': 5
}
],
'AdjustmentType': 'ChangeInCapacity'
}Simple Scaling: l'alternativa precedente
Il Simple Scaling è il predecessore dello step scaling. Come lo step scaling, richiede un allarme CloudWatch, ma quando viene attivato aggiunge o rimuove un numero fisso di istanze e attende poi la scadenza dell'intero periodo di cooldown prima di eseguire una nuova valutazione. Questo lo rende lento in presenza di un carico che cambia rapidamente. Lo Step Scaling è preferibile perché può continuare ad attivarsi quando le condizioni peggiorano, senza attendere il cooldown completo, e reagisce in modo proporzionale.
Protezione dallo scale-in e protezione delle istanze
A volte è necessario impedire che determinate istanze vengano terminate durante lo scale-in, ad esempio un'istanza che esegue un processo batch di lunga durata. È possibile abilitare la protezione dell'istanza dallo scale-in sulle singole istanze tramite la console o la CLI. Quando l'ASG seleziona le istanze candidate alla terminazione, ignora quelle protette. È importante rimuovere la protezione al termine del processo: in caso contrario, l'ASG potrebbe non riuscire a eseguire alcuno scale-in se tutte le istanze sono protette.
aws autoscaling set-instance-protection \
--auto-scaling-group-name 'MyAppASG' \
--instance-ids 'i-0abc123def456' \
--protected-from-scale-inCombinazione di Target Tracking e Step Scaling
È possibile collegare più policy di scaling a un unico ASG. Quando sono presenti sia una policy di target tracking sia una policy di step scaling, l'ASG utilizza la policy che raccomanda l'azione di scale-out maggiore (l'approccio più prudente). Per lo scale-in, prevale la policy che raccomanda di rimuovere il minor numero di istanze. In questo modo si impedisce al sistema di oscillare tra stati di sovraapprovvigionamento e sottodimensionamento. Un modello comune consiste nell'utilizzare una policy di target tracking per il funzionamento ordinario e una policy di step scaling per proteggersi dai picchi improvvisi.
Best practice per le policy di scaling
Per la maggior parte delle applicazioni web, iniziare con il target tracking basato sulla CPU o sul numero di richieste per target: richiede una configurazione minima e AWS gestisce i calcoli. Utilizzare lo step scaling quando sono necessarie risposte graduali e proporzionate a intensità di carico diverse. Impostare sempre una capacità minima sufficiente a gestire il traffico di base senza affidarsi allo scale-out, poiché lo scaling richiede tempo. Monitorare le metriche CloudWatch GroupDesiredCapacity e GroupInServiceInstances per verificare che le policy funzionino come previsto.
Verifica rapida
Verifichi la comprensione dei concetti di AWS Solutions Architect (SAA-C03) trattati in questa lezione.
Riepilogo della lezione
In questa lezione ha appreso che il Target Tracking Scaling calcola e applica automaticamente le operazioni di scale-out e scale-in per mantenere una metrica su un valore desiderato (ad esempio il 50% di CPU); lo Step Scaling attiva risposte proporzionalmente più ampie quando una metrica supera soglie crescenti, utilizzando step adjustment basati sugli allarmi CloudWatch; e la combinazione di policy nello stesso ASG è sicura: l'ASG utilizza la raccomandazione di scale-out più prudente e quella di scale-in meno aggressiva. Nella prossima lezione verranno esaminati lo scaling pianificato e quello predittivo per i modelli di traffico noti.
Domande Frequenti
La lezione «Policy di scaling: target tracking e step scaling» è gratuita?
Sì — il testo completo di «Policy di scaling: target tracking e step scaling» è 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 «Policy di scaling: target tracking e step scaling»?
Configurerete il target tracking per mantenere un obiettivo di utilizzo della CPU e lo step scaling per reagire alle soglie degli allarmi CloudWatch. 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 2 di 4.
Quanto tempo richiede la lezione «Policy di scaling: target tracking e step scaling»?
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
- Launch template e configurazione ASG
- Policy di scaling: target tracking e step scaling
- Scaling pianificato e predittivo
- Aggiornamento delle istanze e lifecycle hook