Panoramica
Questo laboratorio spiega come utilizzare AWS CloudFormation per eseguire il provisioning e l’aggiornamento di un’applicazione web con una serie di prodotti e servizi AWS di supporto, tra cui gruppi Auto Scaling, istanze Amazon Elastic Compute Cloud (EC2) ed Elastic Load Balancing.
Nella prima parte creerai una risorsa semplice, un bucket Amazon S3, con AWS CloudFormation ed esaminerai le diverse policy di conservazione applicate per l’eliminazione di uno stack AWS CloudFormation o per il ripristino dello stato precedente.
Nella seconda parte, eseguirai il provisioning di una semplice applicazione web in PHP utilizzando un’istanza Amazon Linux. Vedrai quindi come applicare nuovamente un template AWS CloudFormation all’applicazione esistente per modificare alcuni attributi, ad esempio il tipo di istanza Amazon EC2. Infine, aggiungerai un bilanciatore del carico e un gruppo Auto Scaling basato su una configurazione Auto Scaling.
Argomenti trattati
Alla fine di questo laboratorio sarai in grado di:
- Creare un bucket Amazon Simple Storage Service (Amazon S3) utilizzando AWS CloudFormation
- Eseguire il provisioning di una semplice applicazione web in PHP utilizzando un’AMI Amazon Linux
- Applicare un template AWS CloudFormation a un’applicazione esistente
- Modificare un’applicazione esistente utilizzando AWS CloudFormation
- Aggiungere ruoli IAM ed Elastic Load Balancing all’applicazione utilizzando AWS CloudFormation
Competenze tecniche preliminari
Per completare correttamente questo laboratorio, devi modificare gli script in un editor di testo.
Altri servizi AWS
La policy IAM assegnata all’utente del laboratorio vieta l’utilizzo dei servizi AWS non inclusi in questo laboratorio. In alcuni casi, sono previste ulteriori restrizioni ai fini della riuscita del laboratorio stesso. Pertanto, se proverai ad accedere ad altri servizi o a eseguire operazioni al di fuori di quelle richieste dal laboratorio, riceverai messaggi di errore.
AWS CloudFormation offre a sviluppatori e amministratori di sistema un modo semplice per creare e gestire un insieme di risorse AWS correlate, assegnandole e aggiornandole in modo sistematico e periodico.
Per descrivere le risorse AWS nonché dipendenze e parametri di runtime associati necessari per eseguire la tua applicazione, puoi utilizzare i template di esempio di AWS CloudFormation oppure crearne uno personalizzato. Non è necessario stabilire l’ordine corretto per il provisioning dei servizi AWS, né essere a conoscenza di tutti i trucchi che consentono il corretto funzionamento delle dipendenze. Di questi dettagli si occupa AWS CloudFormation. Quando le risorse AWS vengono distribuite, puoi modificarle e aggiornarle in modo controllato e prevedibile, applicando il controllo della versione all’infrastruttura AWS in modo analogo a come si fa con un comune software.
Per distribuire e aggiornare un template e il relativo insieme di risorse (chiamato stack), puoi utilizzare Console di gestione AWS, AWS Command Line o le API. AWS CloudFormation è disponibile senza alcun costo aggiuntivo; ti vengono addebitati solo i costi delle risorse AWS necessarie per l’esecuzione delle applicazioni.
Un template AWS CloudFormation è una dichiarazione delle risorse AWS che costituiscono uno stack. Il template viene memorizzato come file di testo in formato JavaScript Object Notation (JSON) o YAML. Poiché sono solo file di testo, puoi crearli e modificarli in qualsiasi editor di testo e gestirli nel tuo sistema di controllo del codice sorgente con il resto del codice sorgente.
Nei template di questo laboratorio, si utilizza la struttura YAML che AWS CloudFormation può interpretare per dichiarare quali risorse AWS creare e configurare. Nel formato YAML, un oggetto viene dichiarato come coppia nome-valore o un accoppiamento di un nome. In un template AWS CloudFormation puoi dichiarare i sei oggetti di primo livello riportati di seguito.
- AWSTemplateFormatVersion
- Descrizione
- Parametri
- Mappature
- Risorse
- Output
L’unico oggetto di primo livello necessario è Resources, che deve dichiarare almeno una risorsa. Questo laboratorio inizia con il template più semplice contenente solo un oggetto Resources, che contiene una singola dichiarazione di risorsa.
Le definizioni di ciascuno di questi oggetti sono disponibili nella documentazione Anatomia dei template.
Legenda icone
In questo laboratorio vengono utilizzate varie icone per richiamare l’attenzione su diversi tipi di istruzioni e note. Nell’elenco seguente viene illustrato lo scopo di ciascuna di esse:
- Output previsto: un output di esempio che puoi utilizzare per verificare l’output di un comando o di un file modificato.
- Nota: una nota, un suggerimento o indicazioni importanti.
- Ulteriori informazioni: dove trovare ulteriori informazioni.
- Prendi in considerazione quanto segue: un momento per riflettere su come applicare un concetto nel proprio ambiente o di avviare una conversazione sul topic in questione.
- Copia/incolla: un blocco di codice che mostra i contenuti di uno script o di un file da copiare e incollare, già creati preventivamente. Quando è necessario copiare solo una certa parte di un blocco di codice, i commenti TODO del codice verranno numerati.