Launch template e configurazione ASG
Creerete un launch template con AMI, tipo di istanza e user data corretti, quindi lo collegherete a un Auto Scaling Group con capacità minima, massima e desiderata.
Launch template e configurazione ASG è una lezione AWS Solutions Architect 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 AWS Solutions Architect, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso AWS Solutions Architect include 4 lezioni in totale.
Che cos'è un Launch Template
Un Launch Template è un modello versionato che indica agli Auto Scaling Group (e direttamente a EC2) come avviare le istanze. Contiene l'ID AMI, il tipo di istanza, la coppia di chiavi, i gruppi di sicurezza e gli eventuali user data in un unico documento riutilizzabile. A differenza della precedente Launch Configuration, un Launch Template supporta più versioni e può essere aggiornato senza sostituire l'ASG.
Creazione di un Launch Template tramite CLI
Potete creare un Launch Template con AWS CLI utilizzando create-launch-template. Il parametro --launch-template-data accetta un oggetto JSON che definisce tutte le impostazioni dell'istanza. Il versionamento consente di apportare modifiche al template senza influire sulle istanze in esecuzione finché non siete pronti per il deployment.
aws ec2 create-launch-template \
--launch-template-name 'MyAppTemplate' \
--version-description 'v1 initial' \
--launch-template-data '{
"ImageId": "ami-0abcdef1234567890",
"InstanceType": "t3.medium",
"KeyName": "my-key-pair",
"SecurityGroupIds": ["sg-0123456789abcdef0"],
"UserData": "IyEvYmluL2Jhc2gKZWNobyAnSGVsbG8n"
}'Versioni e impostazioni predefinite dei Launch Template
Ogni Launch Template inizia dalla versione 1. Quando create una nuova versione, potete sovrascrivere solo i campi modificati; tutte le altre impostazioni vengono ereditate dalla versione di origine. Potete configurare l'ASG in modo che utilizzi una versione $Latest (sempre la più recente) o una versione $Default (designata esplicitamente). L'utilizzo di $Default consente rollout controllati, mentre $Latest è pratico negli ambienti di sviluppo.
# Create a new version based on version 1, changing only instance type
aws ec2 create-launch-template-version \
--launch-template-name 'MyAppTemplate' \
--source-version 1 \
--launch-template-data '{"InstanceType": "t3.large"}'Concetti fondamentali degli Auto Scaling Group
Un Auto Scaling Group (ASG) gestisce un insieme di istanze EC2 entro limiti definiti: minimo (soglia inferiore), massimo (soglia superiore) e capacità desiderata (numero target in ogni momento). Quando le istanze non superano i controlli dello stato o si attiva una policy di scaling, l'ASG avvia o termina automaticamente le istanze per mantenere il numero desiderato, tra il minimo e il massimo.
Creazione di un ASG collegato a un Launch Template
Quando si crea un ASG, si fa riferimento a un Launch Template (non direttamente a una AMI specifica). Occorre inoltre specificare le sottoreti VPC in cui verranno avviate le istanze. Distribuire le istanze su più sottoreti (una per AZ) offre ridondanza multi-AZ integrata: se un'AZ si guasta, l'ASG avvia automaticamente istanze sostitutive nelle AZ rimanenti.
aws autoscaling create-auto-scaling-group \
--auto-scaling-group-name 'MyAppASG' \
--launch-template 'LaunchTemplateName=MyAppTemplate,Version=$Default' \
--min-size 2 \
--max-size 10 \
--desired-capacity 4 \
--vpc-zone-identifier 'subnet-aaa111,subnet-bbb222,subnet-ccc333'Controlli dello stato dell'ASG: EC2 e ELB a confronto
Per impostazione predefinita, un ASG utilizza i controlli dello stato EC2, che contrassegnano un'istanza come non integra solo se è arrestata, terminata o se l'hypervisor segnala un errore. Quando si collega un load balancer, è consigliabile passare ai controlli dello stato ELB, in modo che l'ASG sostituisca le istanze in esecuzione che restituiscono errori HTTP 5xx. Questa è una domanda frequente negli esami: quando nell'architettura è presente un load balancer, scegliere sempre i controlli dello stato ELB.
# Enable ELB health checks on an existing ASG
aws autoscaling update-auto-scaling-group \
--auto-scaling-group-name 'MyAppASG' \
--health-check-type ELB \
--health-check-grace-period 300Impostazioni della capacità: minimo, massimo e desiderato
Impostare correttamente i limiti della capacità è fondamentale. Il minimo garantisce che l'applicazione possa sempre gestire il traffico (non si scende mai al di sotto di questo valore). Il massimo impedisce uno scaling incontrollato che potrebbe esaurire i limiti del servizio o il budget. La capacità desiderata è il target iniziale; le policy di scaling la modificano dinamicamente. Se min=max=desired, l'ASG funziona come un gruppo di dimensioni fisse, utile per i deployment tramite Launch Template o per una capacità vincolata.
Collegamento di un target group ALB a un ASG
Per le applicazioni del web tier, collegare l'ASG a un target group di Application Load Balancer. Ogni nuova istanza avviata dall'ASG viene registrata automaticamente nel target group e le istanze terminate vengono rimosse automaticamente dalla registrazione. In questo modo il traffico viene instradato solo verso istanze integre e in esecuzione. È inoltre necessario impostare il tipo di controllo dello stato su ELB, affinché l'ASG rilevi i guasti a livello di load balancer.
aws autoscaling attach-load-balancer-target-groups \
--auto-scaling-group-name 'MyAppASG' \
--target-group-arns 'arn:aws:elasticloadbalancing:us-east-1:123456789012:targetgroup/MyTG/abc123'User data nei Launch Template
Gli User data sono uno script shell (codificato in Base64) che viene eseguito una volta al primo avvio di un'istanza. In un Launch Template rappresentano il posto giusto per installare pacchetti, configurare agenti (CloudWatch, SSM) e recuperare il codice dell'applicazione. Mantenere gli User data idempotenti: gli script che possono essere eseguiti più volte senza problemi evitano inconvenienti durante l'instance refresh. Per configurazioni complesse, richiamare AWS Systems Manager o uno strumento di gestione della configurazione invece di incorporare script di grandi dimensioni.
#!/bin/bash
yum update -y
yum install -y amazon-cloudwatch-agent
/opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl \
-a fetch-config -m ec2 -c ssm:/MyApp/CWConfig -s
# Start application
cd /opt/myapp && ./start.shWarm Pool per uno scale-out più rapido
Un Warm Pool pre-inizializza un insieme di istanze EC2 arrestate (o in esecuzione) in uno stato pronto, all'esterno dell'ASG. Quando l'ASG deve eseguire uno scale-out, utilizza le istanze del warm pool invece di avviare istanze da zero, riducendo drasticamente il tempo necessario per aggiungere capacità. Le istanze nel warm pool comportano costi dello stato arrestato (solo EBS, senza costi per la CPU), risultando molto più economiche rispetto al mantenimento di istanze di riserva completamente in esecuzione.
Policy di terminazione e bilanciamento tra le AZ
Quando l'ASG esegue uno scale-in, deve decidere quali istanze terminare. La policy di terminazione predefinita seleziona prima l'AZ con il maggior numero di istanze (per riequilibrare la distribuzione), poi l'istanza associata al Launch Template più vecchio e infine l'istanza più vicina all'ora di fatturazione successiva. È possibile personalizzare quest'ordine: ad esempio, scegliere OldestLaunchTemplate per rimuovere prima le istanze che eseguono configurazioni obsolete. L'ASG esegue inoltre automaticamente il riequilibrio tra le AZ dopo che una sottorete diventa disponibile o in seguito a modifiche manuali.
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 i Launch Template forniscono un blueprint versionato e riutilizzabile per le istanze, che supporta più versioni e i puntatori di versione $Latest/$Default; i limiti della capacità dell'ASG (minimo/massimo/desiderato) determinano le dimensioni del gruppo, con distribuzione automatica multi-AZ tra le sottoreti; e i controlli dello stato ELB devono essere abilitati quando un ASG si trova dietro un load balancer, affinché i guasti a livello applicativo attivino la sostituzione. Nella prossima lezione verranno esaminate le policy di scaling, tra cui target tracking e step scaling.
Domande Frequenti
La lezione «Launch template e configurazione ASG» è gratuita?
Sì — il testo completo di «Launch template e configurazione ASG» è 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 AWS Solutions Architect, passa a CoddyKit PRO. Il corso AWS Solutions Architect include 4 lezioni in totale.
Cosa imparerò in «Launch template e configurazione ASG»?
Creerete un launch template con AMI, tipo di istanza e user data corretti, quindi lo collegherete a un Auto Scaling Group con capacità minima, massima e desiderata. Eserciti AWS Solutions Architect 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 AWS Solutions Architect?
Non è richiesta alcuna esperienza precedente. AWS Solutions Architect 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 «Launch template e configurazione ASG»?
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 AWS Solutions Architect?
Sì. Ogni lezione AWS Solutions Architect 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