Pubblicato il 06/05/2023 da alnao nella categoria AWS

Una delle applicazioni più usate di CluodFormation è creare sistemi applicativi in reti private ma esposte in internet con un Application Load Balancer che permette anche di creare un Autoscaling group per garantire la resilienza e la scalabilità della stessa applicazione. Usando CloudFormation è possibile disegnare e creare tutta l’architettura che comprende:

  • VPC con subnet private e pubbliche
  • VPC endpoint per accedere via client alla rete
  • Database applicativo con il servizio RDS
  • LoadBalancer per bilanciare il traffico e creare un endpoint pubblico
  • TargetGroup e AutoScalingGroup per gestire le istanze applicative e le regole di scalabilità
  • LaunchConfiguration per creare le regole di avvio delle istanze

In un semplice esempio è possibile installare l’applicativo WordPress e il server Apache usando l’userData e le ConfigSet previste dal servizio EC2, in questo modo è possibile gestire tutto in autonomia in modo da permettere che ogni istanza avvii l’applicazione indipendente che punta alla stessa base dati (RDS) ma vive di vita proprio. L’esempio completo è disponibile al solito repository:

https://github.com/alnao/AWSCloudFormationExamples/tree/master/Esempio25balancer

Questo esempio presenta dei difetti strutturali: ogni istanza è isolata e non c’è un filesystem condiviso, framework o applicazioni che necessitano storage condiviso non funziona, per esempio un sito WordPress in questo modo non funzionerebbe perché i media sarebbero storicizzati in una istanza e le altre non vedrebbero i files delle altre istanze, per risolvere il problema si può usare un disco EFS condiviso, template che sarà esposto nel prossimo esempio.