Tutto quello che devi sapere su AWS CloudFormation

Pubblicato: 2021-12-28

Encap - Blog (continua)


AWS CloudFormation è un servizio dedicato fornito da Amazon allo scopo di aiutare gli utenti a configurare e modellare le risorse AWS. Ti consente di dedicare più tempo a cose importanti come concentrarti sulla gestione delle risorse AWS e concentrarti sulle applicazioni eseguite all'interno di AWS.

Puoi creare un modello che offra una descrizione delle risorse all'interno di AWS che desideri, come le istanze database Amazon RDS e le istanze Amazon EC2. CloudFormation intende prendersi cura in modo ottimale della configurazione e del provisioning di tali risorse AWS per gli utenti. Non è più necessario creare o configurare queste risorse individualmente poiché AWS CloudFormation si occupa completamente di questo.

In questo blog cercheremo di comprendere tutto ciò che devi sapere sulla configurazione di AWS.

Funzionamento di AWS CloudFormation


AWS CloudFormation è un concetto che funziona sul concetto di stack. Ti dà il potenziale per creare ed eliminare risorse AWS collettivamente rispetto a un'unità. Gli utenti possono definire le caratteristiche associate alle mappature, ai parametri dello stack, ai valori di output e alle proprietà delle risorse. Questo viene fatto con un modello che è un file conforme a JSON.

Puoi scrivere e creare il modello dall'inizio oppure puoi anche utilizzare uno dei modelli di esempio offerti in anticipo da AWS. Insieme a questo, gli utenti possono ottenere il massimo dai numerosi prodotti AWS all'interno di CloudFormation come Amazon EC2, Amazon RDS, Amazon Elastic Beanstalk.

Durante la creazione di uno stack, AWS CloudFormation effettua chiamate di servizio specifiche su AWS. Questo aiuta nella configurazione e nel provisioning delle risorse AWS. CloudFormation esegue solo le azioni per le quali hai l'autorizzazione. Ad esempio, se desideri creare Amazon EC2 con AWS CloudFormation, avrai bisogno di autorizzazioni speciali per questo. Insieme a questo, sarà anche necessario eliminare gli stack e terminare le istanze.

Per gestire le autorizzazioni, le persone possono utilizzare AWS Identity and Access Management. Successivamente, le chiamate che AWS CloudFormation elabora vengono dichiarate dai modelli. Per assicurarti di creare e modificare un modello CloudFormation all'interno di YAML o JSON, è necessario utilizzare AWS CloudFormation Designer. Puoi creare l'account e iniziare subito a progettare.

Inoltre, puoi anche preferire altri editor di testo per fare lo stesso, ma il designer AWS è una piattaforma adatta per derivare l'efficacia. Il modello CloudFormation elabora le risorse che desideri utilizzare e le impostazioni ad esse associate. Ad esempio, se desideri creare un'istanza EC2, il tuo modello dichiarerà lo stesso e descriverà le proprietà di conseguenza.

Dopo aver creato il modello, lo salvi nel bucket S3 o in locale. Devi anche assicurarti di salvarlo con un'estensione come .yaml, .txt o .json. Crea lo stack CloudFormation specificando l'URL Amazon S3 o il percorso del file modello sul computer locale. Nel caso si pensi che il template includa dei parametri allora si possono dare i valori di input per lo stesso dopodichè si può procedere nella direzione della creazione dello stack. I parametri ti consentono di inserire valori per il modello CloudFormation e con esso puoi personalizzare le risorse ogni volta che desideri creare uno stack.

Tieni presente che nel caso in cui tu stia semplicemente specificando o chiamando un modello archiviato localmente, CloudFormation lo caricherà automaticamente sul bucket S3 nell'account AWS. AWS CloudFormation è pensato per la creazione di bucket per tutte le regioni in cui puoi caricare un file modello. I bucket all'interno di CloudFormation sono accessibili da chiunque abbia le autorizzazioni Amazon S3 abilitate nell'account.

Concetti di AWS CloudFormation


Ogni volta che utilizzi AWS CloudFormation, puoi lavorare con modelli e stack. Puoi creare modelli per descrivere le risorse AWS e le loro proprietà. Ogni volta che crei uno stack, CloudFormation effettua il provisioning delle risorse descritte nel modello.

1. Modelli


Un modello AWS CloudFormation è un file di testo formattato JSON o YAML. È facile salvare questi file con qualsiasi estensione come .yaml, .template, .txt o .json. AWS CloudFormation utilizza questi modelli come progetti per la creazione delle risorse AWS.

Ad esempio, puoi descrivere un'istanza Amazon EC2 in un modello come tipo di istanza, ID AMI, mappatura del dispositivo a blocchi e nome della coppia di chiavi Amazon EC2. Ogni volta che crei lo stack, puoi anche menzionare un modello che CloudFormation sta utilizzando per creare qualsiasi cosa tu abbia descritto nel modello.

2. Pile

Quando utilizzi AWS CloudFormation , puoi gestire le risorse correlate come una singola unità denominata stack. Diventa facile creare, aggiornare e persino eliminare una raccolta di risorse semplicemente creando, aggiornando ed eliminando gli stack. Tutte le risorse presenti in uno stack sono definite dal modello CloudFormation dello stack.

Supponiamo che tu abbia creato un modello che include un gruppo Auto Scaling, un'istanza del database Amazon Relational Database Service e un sistema di bilanciamento del carico Elastic Load Balancing. Per la creazione di queste risorse, puoi creare uno stack inviando il modello che hai creato e CloudFormation fornisce tutte queste risorse per te. Puoi lavorare con gli stack utilizzando la console CloudFormation, l'AWS CLI e l'API.

3. Cambia set

Se ritieni che debba essere modificato nelle risorse in esecuzione in uno stack, puoi aggiornare lo stack. Prima di apportare modifiche alle risorse, è possibile generare un changeset che è fondamentalmente un riepilogo di tutte le modifiche proposte. I set di modifiche consentono di vedere come le modifiche influiscono sulle risorse in esecuzione, in particolare per le risorse critiche prima di implementarle.

Ad esempio, nel caso in cui modifichi il nome di un'istanza del database Amazon RDS, AWS CloudFormation creerà un nuovo database ed eliminerà quello vecchio. Non puoi rischiare di perdere i dati nel vecchio database a meno che tu non ne abbia già eseguito il backup. Nel caso in cui formi un set di modifiche, vedrai che la modifica causerà la sostituzione del database e sentirai di pianificare di conseguenza prima di aggiornare lo stack.

Perché è necessario AWS CloudFormation?

Per creare un'architettura che supporti ambienti di accettazione, produzione e test, è necessario AWS CloudFormation che può aiutare a svolgere alcune attività per lo stesso. Le attività comuni svolte da CloudFormation per la costruzione di questa architettura sono l'avvio di un'istanza, la creazione di bilanciatori di carico, le installazioni richieste, il collegamento di istanze ai bilanciatori di carico, la creazione di RDS e la configurazione del gruppo di sicurezza EC2, la creazione e la configurazione dei gruppi di sicurezza e la creazione dell'auto -gruppi di scala.

Il modello AWS CloudFormation per l'automazione dell'infrastruttura è un file JSON che è fondamentalmente inteso come un potente strumento in grado di gestire tutte le cose importanti. Fondamentalmente aiuta a specificare la necessità delle risorse mentre CloudFormation ti alimenta con il provisioning delle risorse in una tangente prevedibile.

Situazioni in cui è possibile utilizzare AWS CloudFormation

AWS CloudFormation aiuta a distribuire o aggiornare il modello e la relativa raccolta di risorse con l'uso della Console di gestione AWS, AWS Command Line Interface e API. I suoi casi d'uso non vengono addebitati in aggiunta perché devi pagare solo per le risorse AWS che sono importanti per l'esecuzione di applicazioni dedicate.

Pertanto, si può concludere che AWS CloudFormation è Infrastructure as Code , il che significa in realtà che può essere utilizzato per leggere, riutilizzare e rivedere le cose. Di seguito, vedremo alcune situazioni in cui viene utilizzato AWS CloudFormation. Questo aiuterà a ottenere una chiarezza molto migliore.

AWS Cloud Formation aiuta a fare le seguenti cose:

1. Semplicità di gestione dell'infrastruttura

Per creare un'applicazione Web scalabile che includa anche un database back-end, potresti finire per utilizzare un gruppo Auto Scaling, un'istanza del database Amazon Relational Database Service e un sistema di bilanciamento del carico Elastic Load Balancing.

Questi servizi vengono utilizzati individualmente per il provisioning delle risorse e, dopo la creazione delle risorse, è possibile configurarle in modo che funzionino l'una con l'altra. Queste attività aggiungono complessità e tempo prima che l'applicazione sia operativa. Puoi creare un modello AWS CloudFormation e modificarne anche uno esistente.

Un modello è in grado di descrivere tutte le risorse e le proprietà. Quando utilizzi il modello per creare uno stack CloudFormation, viene eseguito il provisioning del gruppo con scalabilità automatica, del servizio di bilanciamento del carico e del database. Dopo che lo stack è stato creato correttamente, le risorse AWS sono attive e funzionanti. Lo stack può eliminare altrettanto facilmente e anche le risorse. Con CloudFormation, la raccolta di risorse può essere facilmente gestita come una singola unità.

2. Replica la tua infrastruttura

Se un'applicazione richiede maggiore disponibilità, significa che è necessario replicarla in più aree. Questo perché quando una regione diventa non disponibile, gli utenti possono utilizzare un'applicazione da un'altra regione.

C'è una sfida naturale che devi affrontare al momento della replica di un'applicazione, ovvero che devi replicare anche le risorse. È quindi importante che tu registri tutte le risorse sulla base delle richieste dell'applicazione. Tuttavia, oltre a questo, devi anche configurare ed eseguire il provisioning di tutte le risorse in ciascuna regione.

Il modello AWS CloudFormation può essere riutilizzato per creare le risorse in modo coerente e ripetibile. Consente il riutilizzo dei modelli e questo può essere fatto descrivendo le risorse una volta e fornendo le stesse in molte regioni. In questo modo, l'infrastruttura può essere replicata facilmente in più regioni.

3. Controllo delle modifiche apportate all'infrastruttura

In alcuni casi, a volte potrebbe essere necessario un aggiornamento. Un esempio di ciò può essere la necessità o l'urgenza di aggiornare un'istanza ad alte prestazioni nella configurazione di avvio con ridimensionamento automatico. In questo modo è possibile ridurre il numero totale di istanze all'interno del gruppo.

Il controllo manuale, il monitoraggio delle modifiche e l'esecuzione di aggiornamenti possono essere un'impresa complessa e per tutte queste cose è necessario ricordare dove si trovano le risorse modificate. L'utilizzo di AWS CloudFormation consente al modello di descrivere le risorse fornite ed elaborare le impostazioni. Diventa facile tenere traccia delle modifiche all'infrastruttura tra i modelli di file di testo.

Puoi anche integrare facilmente un sistema di controllo della versione insieme ai modelli per farti un'idea delle modifiche apportate all'infrastruttura. Oltre a questo, puoi anche tenere traccia di chi ha apportato la modifica e quando è stata effettuata. Se desideri annullare le modifiche nell'infrastruttura, puoi anche annullare la versione precedente del modello. Pertanto, il controllo e il monitoraggio delle modifiche all'infrastruttura diventa facile con AWS CloudFormation .

Conclusione

I dettagli sopra menzionati sono comunemente associati ad AWS CloudFormation. Si tratta di approfondimenti incentrati sulla funzionalità di CloudFormation e sul comfort per gli utenti di eseguire le proprie applicazioni.

AWS CloudFormation automatizza le best practice e ridimensiona anche l'infrastruttura a livello globale. La cosa migliore è che ti consente di integrare CloudFormation con gli altri servizi AWS. Puoi anche essere abbastanza capace per gestire le risorse private e di terze parti.

Se desideri utilizzare AWS CloudFormation, devi utilizzare i servizi di consulenza AWS che possono aiutarti a comprendere più dettagli, conoscere ciò che stai per integrare e sfruttare la semplicità per l'esecuzione delle applicazioni. Contattaci per saperne di più.