AWS CloudFormation - Introduzione a DevOps in AWS

AWS CloudFormation

AWS CloudFormation è un servizio che consente agli sviluppatori di creare delle risorse AWS in modo ordinato e prevedibile. Le risorse vengono scritte in file di testo utilizzando il formato JavaScript Object Notation (JSON) o Yet Another Markup Language (YAML). I modelli richiedono una sintassi e una struttura specifiche che dipendono dai tipi di risorse create e gestite. Puoi creare le tue risorse in JSON o YAML con qualsiasi editor di codice come AWS Cloud9, e poi puoi archiviarle in un sistema di controllo delle versioni e successivamente CloudFormation creerà i servizi specificati in modo sicuro e ripetibile.

Un modello di CloudFormation viene distribuito nell'ambiente AWS come stack. Puoi gestire gli stack tramite la Console di gestione AWS, l'interfaccia a riga di comando AWS o le API di AWS CloudFormation. Per apportare modifiche alle risorse in esecuzione in uno stack, puoi aggiornare lo stack. Prima di apportare modifiche alle risorse, puoi generare un set di modifiche, che è un riepilogo delle modifiche proposte. I set di modifiche ti consentono di vedere in che modo le modifiche possono influire sulle risorse in esecuzione, soprattutto nel caso di risorse critiche, prima di applicarle.

Figura 1

Figura 1 - AWS CloudFormation crea un intero ambiente (stack) partendo da un modello

Puoi utilizzare un singolo modello per creare e aggiornare un intero ambiente o modelli separati per gestire più livelli all'interno di un ambiente. Ciò consente di modulare i modelli e fornisce anche un livello di governance davvero importante per molte organizzazioni.

Quando crei o aggiorni uno stack nella console, vengono visualizzati eventi che mostrano lo stato della configurazione. Se si verifica un errore, per impostazione predefinita lo stack viene riportato allo stato precedente. Amazon Simple Notification Service (Amazon SNS) fornisce notifiche sugli eventi. Ad esempio, puoi utilizzare Amazon SNS per monitorare l'avanzamento della creazione e dell'eliminazione dello stack tramite e-mail e integrare tali operazioni con altri processi a livello di programmazione.

AWS CloudFormation semplifica la gestione e la distribuzione di raccolte di risorse AWS, consentendo di descrivere dipendenze o passare parametri speciali quando lo stack è stato configurato.

Con i modelli CloudFormation, puoi lavorare con un'ampia gamma di servizi AWS, quali Amazon S3, Auto Scaling, Amazon CloudFront, Amazon DynamoDB, Amazon EC2, Amazon ElastiCache, AWS Elastic Beanstalk, Elastic Load Balancing, AWS OpsWorks, IAM e Amazon VPC. Per l'elenco più recente delle risorse supportate, consulta la pagina di riferimento sui tipi di proprietà e di risorse AWS.