Guida introduttiva all’auto-scaling di AWS EC2

Eseguire un sito web o un’applicazione non deve essere costoso. In realtà, ci sono modi per risparmiare denaro sulle risorse pur offrendo agli utenti un’ottima esperienza. Un esempio è attraverso AWS EC2 Autoscaling.

EC2 Auto Scaling è un servizio che può aiutare a ridimensionare automaticamente la capacità di Amazon EC2 su o giù in base alle condizioni che definisci. E in questo tutorial, imparerai come configurare e applicare una configurazione di base di EC2 Auto Scaling su AWS per le tue applicazioni.

Continua a leggere e assicurati che la tua applicazione abbia sempre risorse senza pagare più del necessario!

Prerequisiti

Questo tutorial comprende dimostrazioni pratiche. Per seguirla, avrai bisogno di un account AWS, e un account gratuito di livello base sarà sufficiente.

Creazione di un modello di avvio

Prima di entrare in AWS EC2 Auto Scaling, hai bisogno di un modo per avviare un’istanza EC2, un modello di avvio (simile a configurazione di avvio). Un modello di avvio contiene tutte le informazioni necessarie per avviare un’istanza EC2, come il tipo di istanza, la subnet e i gruppi di sicurezza.

AWS consiglia l’uso di un modello di avvio, offrendo maggiore flessibilità e funzionalità avanzate rispetto a una configurazione di avvio. EC2 Auto Scaling utilizza un modello di avvio per avviare nuove istanze durante l’incremento della scala.

Per creare un modello di lancio:

1. Apri il tuo browser web preferito e accedi alla Console di Gestione AWS.

2. Cerca i modelli di lancio EC2 nella barra di ricerca e seleziona “Modelli di lancio” dai risultati sotto “Funzionalità”. Ciò aprirà la pagina dei modelli di lancio EC2.

Opening the launch templates page

3. Successivamente, seleziona una regione dal menu a discesa (in alto a destra) e clicca su “Crea modello di lancio” per iniziare a creare un modello di lancio.

Puoi utilizzare il ridimensionamento automatico in qualsiasi regione che supporti il ridimensionamento automatico di EC2, ma questo tutorial utilizza US East (N. Virginia).

Initiating creating a launch template

4. Ora, configura il nome e la descrizione del nuovo modello di lancio come segue:

  • Nome del modello di lancio – obbligatorio – Fornisci un nome per il tuo modello di lancio (ec2-autoscaling-template-demo). Il nome deve essere unico nella regione, non più lungo di 128 caratteri e non deve contenere caratteri speciali diversi da trattini (-), underscore (_) e punti (.).
  • Descrizione della versione del modello – Inserisci una descrizione per il tuo modello di lancio (ec2 autoscaling template demo), non più lunga di 255 caratteri.
  • Guida al ridimensionamento automatico – Seleziona l’opzione Fornisci indicazioni per aiutarmi a configurare un modello che posso utilizzare con l’Auto Scaling di EC2 per abilitare la guida al ridimensionamento automatico. Questa opzione semplifica la creazione di un modello di avvio compatibile con l’Auto Scaling di EC2.
Configuring a launch template

5. Scorri verso il basso fino alla sezione Contenuti del modello di avvio e scegli le immagini dell’applicazione e del sistema operativo per il tuo modello di avvio con quanto segue:

  • Immagini dell’applicazione e del sistema operativo (Amazon Machine Image) – Seleziona un’immagine di avvio per il tuo modello, ma questo tutorial utilizza un’immagine AMI di Amazon Linux 2. Le tue istanze EC2 verranno avviate in base all’immagine di avvio selezionata.

Puoi selezionare qualsiasi immagine di avvio preferisci, ma è consigliata un’immagine AMI di Amazon Linux 2 poiché è idonea al livello gratuito.

  • Architettura – Seleziona un’architettura per il tuo modello, ma questo tutorial utilizza x86-64 (a 64 bit).
Providing launch template contents

6. Successivamente, imposta il tipo di istanza e la coppia di chiavi (accesso) per il tuo modello di avvio come segue:

  • Tipo di istanza – Seleziona il tipo di istanza per il tuo modello. Ma la scelta di questo tutorial è t2.micro poiché è idonea al livello gratuito.

Considera altri fattori quando selezioni un tipo di istanza, come i requisiti di CPU e memoria, poiché alcuni tipi di istanza costano più di altri.

  • Coppia di chiavi (accesso) – Seleziona Non includere nel modello di avvio poiché non è necessario per il ridimensionamento automatico.

Quando una coppia di chiavi è specificata, l’Auto Scaling di EC2 avvia le tue istanze con la coppia di chiavi.

Selecting an Instance type, and Key par (login)

7. Nelle impostazioni di rete, scegliere l’opzione Seleziona gruppo di sicurezza esistente e specificare una impostazione Gruppi di sicurezza per le istanze EC2. In questo modo, EC2 Auto Scaling avvierà le tue istanze con questo gruppo di sicurezza.

Nota che puoi scegliere l’opzione Crea gruppo di sicurezza se desideri creare un nuovo gruppo di sicurezza per le tue istanze EC2.

Selecting an existing security groups

8. Mantenere le altre impostazioni predefinite e fare clic su Crea modello di avvio (in basso a destra) sotto l’elenco di riassunto per creare il tuo modello di avvio.

Creating the new launch template

9. Infine, fare clic su Crea gruppo Auto Scaling sotto la sezione Crea un gruppo Auto Scaling dal tuo modello per continuare.

Non chiudere la pagina del modello di avvio poiché creerai il tuo gruppo Auto Scaling nella sezione successiva, uno alla volta.

Initiating creating an Auto Scaling group

Creazione di un gruppo di scalabilità automatica EC2 AWS

Ora che hai un modello di avvio EC2, dovrai creare un gruppo di scalabilità automatica EC2 AWS per contenere la tua istanza EC2. EC2 Auto Scaling AWS ha funzionalità che ti permettono di utilizzare sostituzioni di controllo della salute e politiche di ridimensionamento.

Puoi creare un gruppo di scalabilità automatica con più istanze se lo desideri. Ma in questo tutorial, creerai un gruppo di scalabilità automatica a istanza singola per mostrare come funziona l’Auto Scaling.

1. Configura il gruppo di scalabilità automatica con quanto segue mentre sei ancora sulla pagina di Crea modello di avvio:

  • Nome del gruppo di Auto Scaling – Inserisci un nome per il tuo gruppo di Auto Scaling (ec2-autoscaling-group-demo). Il nome deve essere univoco all’interno della tua Regione AWS e non deve superare i 255 caratteri di lunghezza.
  • Modello di avvio – Seleziona il tuo modello di avvio EC2 dall’elenco a discesa (ec2-autoscaling-template-demo).
  • Clicca su Avanti per continuare.
Naming the AWS EC2 Auto Scaling group

2. Successivamente, lascia tutte le impostazioni predefinite come sono, ma seleziona una VPC e una subnet esistenti per il tuo gruppo di Auto Scaling e clicca su Avanti per continuare.

Specificare queste impostazioni fa sì che il tuo gruppo di Auto Scaling sappia dove avviare le tue istanze EC2.

Selecting an existing VPC and subnet for your Auto Scaling group

3. Mantieni le impostazioni predefinite e clicca su Avanti per continuare.

Leaving other default settings

4. Ora, configura la dimensione del gruppo del tuo gruppo di Auto Scaling con quanto segue:

Capacity Limit Details
Desired 1 Set the number of instances you want in your Auto Scaling group. The desired capacity must be greater than or equal to the minimum capacity and less than or equal to the maximum capacity.
Minimum 1 Set the minimum number of instances in your Auto Scaling group. The value must be greater than or equal to 1 and less than or equal to the maximum capacity.
Maximum 1 Set the maximum number of instances you want in your Auto Scaling group.
Specifying the Auto Scaling group’s capacity

5. Scorri verso il basso, mantieni le impostazioni predefinite e clicca su Salta per la revisione per continuare.

  • Politiche di ridimensionamento – Mantieni selezionata l’opzione Nessuna poiché utilizzerai una politica di ridimensionamento semplice. Questa politica aumenta la capacità desiderata del tuo gruppo di Auto Scaling di un’istanza EC2 quando l’istanza più vecchia nel gruppo è stata terminata.
  • Protezione dal ridimensionamento delle istanze – Mantieni questa opzione disabilitata poiché non ne hai bisogno in questo tutorial. Abilitando questa opzione puoi controllare se il tuo gruppo di Auto Scaling può terminare la tua istanza durante il ridimensionamento in ingresso.
Keeping details settings for scaling policies and instance scale-in protection

6. Infine, rivedi le impostazioni del tuo gruppo di Auto Scaling e clicca su Crea gruppo di auto scaling (in basso a destra) per creare il tuo gruppo di Auto Scaling.

Creating the Auto Scaling group

Una volta creato, vedrai il tuo gruppo di Auto Scaling elencato, come mostrato di seguito.

Verifying the newly-created Auto Scaling group

Test di un gruppo di Auto Scaling AWS EC2

Grande! Sei riuscito a creare un gruppo di Auto Scaling AWS EC2 per contenere la tua istanza EC2. Ma come sai se il tuo gruppo di Auto Scaling funziona?

Verificherai che il tuo gruppo di Auto Scaling AWS EC2 abbia avviato un’istanza EC2. Questa istanza è quella che hai specificato (Capacità desiderata) nel passaggio quattro della sezione “Creazione di un gruppo di Auto Scaling AWS EC2”.

1. Seleziona la casella di controllo accanto al tuo gruppo di Auto Scaling appena creato e fai clic sulla scheda Attività per visualizzare tutte le attività nel tuo gruppo di Auto Scaling.

Nella sezione Cronologia attività in fondo, vedrai la Descrizione dell’evento più recente nel tuo gruppo di Auto Scaling. In questo caso, la descrizione indica “Avvio di una nuova istanza EC2”, con lo stato di successo e l’ID dell’istanza (i-09b699064f6e06070).

Copia l’ID dell’istanza, poiché ti servirà per verificare la tua istanza nel passaggio successivo.

Viewing your activity history.

2. Passa alla dashboard EC2 e confronta l’ID dell’istanza che hai copiato nel passaggio uno con le istanze in esecuzione.

Vedere corrispondere entrambi gli ID delle istanze indica che il tuo gruppo di Auto Scaling ha avviato con successo un’istanza EC2.

Comparing the instance ID

3. Torna alla pagina del gruppo di Auto Scaling, fai clic sulla scheda Gestione delle istanze e vedrai tutte le informazioni sulle tue istanze EC2 in un unico punto. La parte più critica delle informazioni in questa scheda è:

  • La colonna Ciclo di vita – Puoi vedere che l’istanza EC2 nel tuo gruppo di Auto Scaling è nello stato InServizio, il che significa che l’istanza è disponibile per gestire le richieste.
  • La colonna dello Stato di salute – Puoi vedere che lo stato del controllo di salute della tua istanza EC2 è Sano, il che indica che l’istanza sta superando tutti i controlli di salute.

Terminare un’istanza EC2

Ora che hai verificato che il tuo gruppo di Auto Scaling sta funzionando, puoi testare ulteriormente il gruppo di Auto Scaling terminando l’istanza EC2 al suo interno. Ricorda, terminare un’istanza nel gruppo fa sì che il gruppo di Auto Scaling lanci automaticamente una nuova istanza EC2 come sostituto.

Nei casi reali, utilizzeresti un gruppo di Auto Scaling per scalare automaticamente in risposta a condizioni mutevoli. Quando? Ad esempio, uno dei tuoi server web NGINX è sovraccarico di richieste e rischia di andare giù.

Ma per ora, testerai il tuo gruppo di Auto Scaling terminando manualmente l’istanza EC2 per simulare cosa succederebbe se un’istanza fallisse.

1. Passa alle tue istanze e spunta la casella accanto all’istanza per selezionarla.

Una volta selezionata, clicca sul menu a discesa dello stato dell’istanza → Termina istanza per terminare l’istanza selezionata.

Terminating an EC2 instance

2. Successivamente, clicca su Termina quando ti viene chiesto di confermare la terminazione dell’istanza.

Confirming instance termination.

Di seguito, puoi vedere un messaggio che indica che l’istanza EC2 è stata terminata con successo.

Il periodo di attesa predefinito per un gruppo di ridimensionamento automatico è di 300 secondi (5 minuti), il che significa che ci vorranno almeno cinque minuti al gruppo di ridimensionamento automatico per avviare una nuova istanza dopo aver terminato quella vecchia.

Verifying successful instance termination

Infine, controlla la cronologia delle attività nel gruppo di ridimensionamento automatico mentre attendi il lancio della nuova istanza.

Come mostrato di seguito, vedrai che una nuova istanza EC2 è stata avviata automaticamente. Questo output conferma che il tuo gruppo di ridimensionamento automatico sta funzionando come previsto.

Checking a new EC2 instance is launched automatically

Conclusion

Gestire il carico per la tua applicazione è una parte essenziale per mantenerla in esecuzione senza problemi. Fortunatamente, con AWS EC2 Auto Scaling, puoi garantire che la tua applicazione abbia sempre le risorse necessarie per gestire i cambiamenti nei modelli di traffico.

E in questo tutorial, hai imparato come creare un gruppo di ridimensionamento automatico, avviare istanze nel gruppo e ridimensionare il gruppo in risposta alle condizioni mutevoli. A questo punto, puoi creare con fiducia gruppi di ridimensionamento automatico di AWS EC2 per le tue applicazioni.

Con questa nuova conoscenza, perché non creare gruppi di ridimensionamento automatico con AWS CloudFormation per ancora più comodità? Ti ringrazierai più avanti quando il tuo carico aumenterà e non dovrai preoccuparti di provvedere manualmente a più risorse!

Source:
https://adamtheautomator.com/ec2-autoscaling/