{"id":975,"date":"2019-10-04T16:36:33","date_gmt":"2019-10-04T14:36:33","guid":{"rendered":"https:\/\/blog.besharp.it\/autoscaling-like-a-pro-come-utilizzare-gli-auto-scaling-lifecycle-hooks-di-ec2\/"},"modified":"2021-03-17T12:53:52","modified_gmt":"2021-03-17T11:53:52","slug":"autoscaling-like-a-pro-come-utilizzare-gli-auto-scaling-lifecycle-hooks-di-ec2","status":"publish","type":"post","link":"https:\/\/blog.besharp.it\/it\/autoscaling-like-a-pro-come-utilizzare-gli-auto-scaling-lifecycle-hooks-di-ec2\/","title":{"rendered":"Autoscaling like a pro: come utilizzare gli Auto Scaling Lifecycle Hooks di EC2."},"content":{"rendered":"

Vi \u00e8 mai capitato di dover indagare le cause di un arresto inaspettato di un\u2019istanza EC2 appartenente ad un Auto Scaling group o di doverla configurare prima di portarla nello stato InService?<\/span><\/p>\n

Questi sono entrambi casi in cui i Lifecycle Hooks di EC2<\/strong> possono venirci in aiuto.\u00a0<\/span><\/p>\n

In questo articolo approfondiremo il loro funzionamento esaminando alcuni casi d\u2019uso particolarmente significativi.<\/span><\/p>\n

Partiamo con un breve recap delle principali caratteristiche del servizio AWS EC2 Auto Scaling.<\/span><\/p>\n

EC2 Auto Scaling<\/strong> \u00e8 un servizio offerto da Amazon Web Services che permette di adattare il numero delle istanze EC2 in uso per garantire il corretto funzionamento delle applicazioni in base al reale andamento del traffico.<\/strong> Le istanze sono logicamente raggruppate in Auto Scaling groups.<\/strong> Per ciascuno di questi gruppi \u00e8 possibile impostare valori di capacit\u00e0 minima, massima e desiderata.<\/strong> Ad ogni Auto Scaling group possono essere associate particolari policy di scaling.<\/strong>\u00a0 Nel caso in cui nessuna policy sia associata, invece, il comportamento di default si traduce nel mantenimento di un numero di istanze healthy che coincide con il valore desiderato, inizialmente impostato. Per poter mantenere questo valore stabile, vengono eseguiti periodicamente health check su ciascuna istanza<\/strong> in modo tale che, per ogni istanza trovata in stato unhealthy, ne venga immediatamente avviata un\u2019altra funzionante in sostituzione.<\/span><\/p>\n

Oltre allo scaling manuale in cui i valori di capacit\u00e0 minima, massima e desiderata vengono impostati e aggiornati manualmente, esiste la possibilit\u00e0 di rendere lo scaling automatico.<\/strong><\/span><\/p>\n

In particolare ci sono due diversi tipi di scaling automatico:<\/span><\/p>\n