Sei stanco di monitorare il carico delle tue istanze AWS e il traffico che ricevono? Perché non automatizzare tutto deployando i Gruppi di Autoscaling di Terraform Autoscaling Groups? Il ridimensionamento automatico consente a alcuni server di andare in standby durante i periodi di basso carico e aggiunge più server durante i periodi di carico elevato, risparmiando sui costi energetici per le aziende.
In questo tutorial, imparerai come creare e eseguire una configurazione di Terraform per costruire Gruppi di Autoscaling e distribuirli con Terraform.
Continua a leggere e ottieni zero downtime sulle tue istanze!
Prerequisiti
Questo post sarà un tutorial passo-passo. Se vuoi seguirci, assicurati di avere quanto segue:
- Un account Amazon Web Service (AWS).
- A code editor – Even though you can use any text editor to work with Terraform configuration files, consider using Visual Studio (VS) Code as it understands the HCL Terraform language well.
- Terraform – Questo tutorial utilizza Terraform v1.1.5 in esecuzione su Ubuntu 20.04 LTS, ma qualsiasi sistema operativo con Terraform dovrebbe funzionare.
Costruzione della configurazione di Terraform per un Gruppo di Autoscaling AWS.
Prima di eseguire i comandi Terraform per costruire e distribuire l’infrastruttura, è necessario creare i file di configurazione Terraform. Creerai una configurazione Terraform per creare un gruppo di Autoscaling AWS nel tuo account AWS.
1. Accedi alla tua macchina usando il tuo client SSH preferito.
2. Successivamente, crea una cartella denominata ~/terraform-autoscaling-demo, quindi cambia (cd
) la directory di lavoro in quella cartella. Questa cartella conterrà tutti i file di configurazione su cui lavorerai in questo tutorial.
3. Apri il tuo editor di codice preferito, copia/incolla la seguente configurazione e salva il file come main.tf nella directory ~/terraform-autoscaling-demo. Questo file main.tf è la configurazione Terraform per il gruppo di Autoscaling.
Il codice qui sotto crea una configurazione di lancio di Autoscaling (web_config
) e fornisce un gruppo di Autoscaling (autoscalegroup
). Il gruppo di Autoscaling include anche i suoi componenti (aws_autoscaling_schedule
e aws_autoscaling_policy
).
4. Crea un altro file in ~/terraform-autoscaling-demo chiamato provider.tf, e popola il contenuto qui sotto. Il file provider.tf definisce fornitori come AWS, Oracle, Azure, e così via. Questo file di configurazione ti permette di collegare Terraform ai servizi cloud corretti.
Il tutorial creerà risorse nella regione us-east-1. Ma puoi trovare l’elenco delle regioni supportate da AWS.
5. Infine, esegui il comando tree
qui sotto per verificare che tutti i file necessari siano presenti nella cartella del tuo progetto (~/terraform-autoscaling-demo
).

Creazione del gruppo di autoscaling AWS con una configurazione Terraform
Ora che hai il file di configurazione Terraform e i file di variabili configurati correttamente, è il momento di inizializzare Terraform e creare il gruppo di autoscaling AWS.
Per creare il gruppo di autoscaling AWS, come tutte le altre configurazioni Terraform, Terraform utilizza tre comandi in sequenza (terraform init
, terraform plan
, e terraform apply
).
1. Esegui il comando terraform init
nella directory ~/terraform-autoscaling-demo. Il comando inizializza i plugin e i provider necessari per lavorare con le risorse.
Se tutto va bene, vedrai il messaggio che indica che Terraform è stato inizializzato con successo nell’output, come mostrato di seguito.

2. Successivamente, esegui il comando terraform plan
per assicurarti che la sintassi dei file di configurazione sia corretta e ti fornisca una descrizione delle risorse che verranno predisposte nella tua infrastruttura.
Se ha successo, dovresti vedere un messaggio che mostra il Piano come quello sotto.

3. Infine, esegui il comando terraform apply
per rimuovere le protezioni e invocare Terraform per creare il gruppo di AutoScaling AWS.
Il comando dice a Terraform di leggere ogni configurazione (*.tf) nella directory corrente per compilare uno stato inviato ad AWS. Terraform quindi costruisce il gruppo di Autoscaling AWS e altri componenti.
Non ci sono costi aggiuntivi per AWS Auto Scaling. Paghi solo per le risorse AWS necessarie per eseguire le tue applicazioni.

Verifica del Gruppo di Autoscaling AWS nel Cloud AWS
A questo punto, dovresti aver creato il gruppo di Autoscaling AWS e i componenti correlati con Terraform. Ma come fai a sapere che esistono nel tuo cloud AWS? Verifica il gruppo di Autoscaling controllando manualmente nella Console di Gestione AWS.
1. Apri il tuo browser web preferito e accedi alla Console di Gestione AWS.
2. Nella pagina iniziale della console, fai clic sulla casella di ricerca, cerca e fai clic su ‘EC2’ per accedere al dashboard di EC2.
Fai clic sulla voce di menu Gruppo di ridimensionamento automatico AWS nel dashboard di EC2 per gestire i tuoi gruppi di ridimensionamento automatico.
Il Numero desiderato di istanze AWS EC2 sarà lanciato nell’AWS Cloud nel dashboard di EC2 con il seguente ridimensionamento automatico.

3. Infine, fai clic su Configurazione di avvio di AWS Auto Scaling nel dashboard di EC2. Vedrai la configurazione di avvio del tuo ridimensionamento automatico (web_config) come mostrato di seguito.

Ridimensiona automaticamente l’istanza EC2 con il test di carico
Ora che hai verificato che il gruppo/politica di ridimensionamento automatico e i componenti correlati siano configurati correttamente, è il momento di verificare se le funzionalità di ridimensionamento automatico funzionano. Come? Aggiungendo carico all’istanza lanciata di recente con il gruppo di ridimensionamento automatico.
1. Apri l’istanza AWS EC2 lanciata con il gruppo di ridimensionamento automatico utilizzando un client SSH.
2. Successivamente, avvia il terminale e esegui il comando sottostante per installare
lo strumento di stress da carico (stress-ng
). Lo strumento di stress ti consente di definire e generare stress sulla macchina Ubuntu.
Puoi anche trovare altri strumenti di stress da carico disponibili sul mercato.

3. Esegui il comando stress-ng
sottostante per generare il carico di stress sull’istanza.
Il comando sottostante contiene i seguenti flag:
--cpu
– Indica il numero di core su cui verrà generato il carico.
-v
– Abilita la modalità dettagliata.
--timeout
– Specifica il tempo per cui deve essere generato il carico.

4. Ora esegui il comando top
appena generi il carico per mostrare i processi di Linux.
Di seguito, puoi vedere che la CPU aumenta dopo la generazione del carico nell’istanza.

5. Vai al servizio CloudWatch di AWS Cloud. Noterai che viene generato un allarme quando la CPU supera il 10%. L’allarme notifica al gruppo di ridimensionamento automatico di aumentare il numero di istanze da una a due, come specificato nel gruppo di ridimensionamento automatico.

6. Infine, vai alle istanze nel pannello di controllo EC2 per verificare le istanze di AWS EC2.
Vedrai che viene lanciata un’altra istanza, confermando la corretta configurazione del gruppo di ridimensionamento automatico di AWS e dei componenti.

Puoi anche verificare le attività di ridimensionamento automatico nel gruppo di ridimensionamento automatico di AWS, come mostrato di seguito.

Conclusioni
In questo tutorial, hai imparato come utilizzare Terraform per distribuire un gruppo di ridimensionamento automatico di AWS e i suoi componenti. Creare un’applicazione a ridimensionamento automatico con il gruppo di ridimensionamento automatico di AWS consente di scalare quando necessario ed è un’operazione veloce.
Ora, con questa nuova conoscenza, impazzisci e implementa Auto Scaling con altri servizi AWS senza preoccuparti del carico sui server!
Source:
https://adamtheautomator.com/terraform-autoscaling-group/