Domande generali

D: Cos'è AWS CloudFormation?

AWS CloudFormation è un servizio che offre ad aziende e sviluppatori strumenti di facile utilizzo per la creazione di una raccolta di risorse AWS e di terze parti correlate e il provisioning e la gestione delle risorse in modo ordinato e prevedibile.

D: Cosa possono fare gli sviluppatori con AWS CloudFormation?

Gli sviluppatori possono distribuire e aggiornare calcolo, database e molte altre risorse in modo semplice e in formato dichiarativo eliminando la complessità legata all'utilizzo delle API delle specifiche risorse. AWS CloudFormation è progettato per consentire la gestione reiterabile, prevedibile e sicura dei cicli di vita delle risorse e permettere allo stesso tempo rollback automatici, gestione automatizzata dello stato e gestione degli account in tutti gli account e le regioni. Miglioramenti e opzioni recenti offrono diversi modi per creare le risorse, tra cui l'utilizzo del Kit di sviluppo per il cloud AWS per codificare in linguaggi di livello più elevato, importare risorse esistenti e rilevare le deviazioni di configurazione. Inoltre, un nuovo registro rende più facile creare tipi di risorse personalizzate che ereditano molti vantaggi intrinseci di CloudFormation.

D: In cosa differisce CloudFormation da AWS Elastic Beanstalk?

Si tratta di servizi creati per completarsi a vicenda. AWS Elastic Beanstalk fornisce un ambiente che permette di distribuire ed eseguire applicazioni nel cloud con la massima semplicità. È una soluzione che si integra con gli strumenti degli sviluppatori e fornisce un'esperienza centralizzata per la gestione del ciclo di vita delle applicazioni. La possibilità di gestire i carichi di lavoro delle applicazioni come se fossero carichi di lavoro di Elastic Beanstalk offre un'esperienza di creazione e aggiornamento delle applicazioni chiavi in mano. Nella pratica, Elastic Beanstalk usa CloudFormation per creare e mantenere le risorse. Se i requisiti delle applicazioni richiedono un controllo più personalizzato, la funzionalità aggiuntiva di CloudFormation offre maggiori opzioni per controllare i carichi di lavoro.

AWS CloudFormation è un meccanismo di provisioning che si applica a un'ampia gamma di risorse AWS e di terze parti. Supporta le necessità infrastrutturali di diversi tipi di applicazioni, tra cui applicazioni aziendali esistenti, applicazioni legacy, applicazioni che impiegano una serie di risorse AWS e soluzioni basate su container (incluse quelle create usando AWS Elastic Beanstalk).

AWS CloudFormation supporta gli ambienti applicativi di Elastic Beanstalk come tipo di risorsa AWS. In questo modo, è possibile ad esempio creare e gestire applicazioni in hosting in AWS Elastic Beanstalk con database RDS per memorizzare i dati dell'applicazione. È possibile aggiungere al gruppo qualsiasi risorsa AWS supportata.

D: Quali novità introduce AWS CloudFormation?

CloudFormation introduce quattro novità. Un modello è un file in formato dichiarativo JSON o YAML che descrive lo stato previsto di tutte le risorse necessarie per distribuire un'applicazione. Uno stack implementa e gestisce il gruppo di risorse definite nel modello, consentendo la gestione contemporanea dello stato e delle dipendenze di tali risorse. Un set di modifiche è un'anteprima delle modifiche che saranno eseguite dalle operazioni dello stack per creare, aggiornare o rimuovere le risorse. Un set di stack è un gruppo di stack gestibili insieme in grado di replicare un gruppo. 

D: Quali risorse supporta AWS CloudFormation?

È possibile consultare l'elenco completo di risorse AWS supportate e relative caratteristiche nella pagina relativa ai servizi AWS supportati nella sezione Cronologia delle versioni della documentazione.

Il registro di AWS CloudFormation e le risorse personalizzate di AWS CloudFormation consentono di gestire anche altre risorse AWS e di terze parti.

D: È possibile gestire singole risorse AWS che fanno parte di uno stack di AWS CloudFormation?

Sì. CloudFormation non pone alcun vincolo, lasciando il pieno controllo di tutti gli elementi dell'infrastruttura e la possibilità di continuare a usare gli strumenti AWS e di terze parti esistenti per gestire le risorse AWS. Tuttavia, dato che CloudFormation può prevedere ulteriori regole, best practice e opzioni di controllo della conformità, è opportuno consentire a CloudFormation di gestire le modifiche delle risorse. Questo approccio controllato e prevedibile consente la gestione di centinaia o migliaia di risorse nel portafoglio delle applicazioni.

D: Da quali elementi è composto un modello di AWS CloudFormation?

I modelli di CloudFormation sono file di testo in formato JSON o YAML che contengono cinque tipi di elementi:

1. Un elenco opzionale dei parametri del modello (valori di input forniti in fase di creazione dello stack)
2. Un elenco opzionale di valori di output (ad es. l'URL completo a un'applicazione Web)
3. Un elenco opzionale di tabelle di dati usate per verificare i valori di configurazione statici (ad es. nomi di AMI)
4. L'elenco di risorse AWS con i relativi valori di configurazione
5. Il numero di versione del formato del file di modello

Per personalizzare determinati aspetti del modello in fase di runtime, è possibile modificarne i parametri durante la creazione dello stack. Nel processo di creazione, è ad esempio possibile inoltrare le dimensioni del database Amazon RDS, i tipi di istanze Amazon EC2, il database e i numeri di porta del server Web ad AWS CloudFormation. Ogni parametro può avere una descrizione e un valore predefiniti e può essere contrassegnato come "NoEcho" per nascondere il valore effettivo inserito sia sullo schermo sia nel log di eventi di AWS CloudFormation. Quando viene creato uno stack di AWS CloudFormation, la Console di gestione AWS fa immediatamente un resoconto mostrando un modulo a comparsa che consente di modificare i valori dei parametri.

I valori di output consentono di mostrare all'utente le risorse chiave dello stack (ad esempio l'indirizzo del sistema di bilanciamento del carico di Elastic Load Balancing o il database di Amazon RDS) tramite la Console di gestione AWS o gli strumenti a riga di comando. È possibile usare funzioni semplici per concatenare valori letterali stringa e valori degli attributi associati con le risorse AWS effettive. Con un modello, è possibile utilizzare anche i tipi di risorse del registro, i tipi di risorse privati personalizzati e le macro, nonché recuperare i parametri di configurazione di AWS Secrets Manager e AWS System Manager Parameter Store.

D: Come vengono scelti i nomi delle risorse effettive in AWS CloudFormation?

È possibile assegnare nomi logici alle risorse AWS in un modello. Al momento della creazione di uno stack, AWS CloudFormation collega il nome logico al nome della risorsa AWS effettiva corrispondente. I nomi delle risorse effettive sono una combinazione tra il nome dello stack e il nome logico della risorsa. In questo modo, è possibile creare diversi stack da un modello senza causare conflitti di nomi tra risorse AWS.

D: Perché non è possibile assegnare nomi a tutte le risorse?

Anche se AWS CloudFormation consente di assegnare i nomi ad alcune risorse, ad esempio ai bucket Amazon S3, questa operazione non è disponibile per tutte le risorse. Assegnare un nome a una risorsa limita la riusabilità di un modello e provoca conflitti di denominazione quando una risorsa viene sostituita a seguito di un aggiornamento. Per ridurre al minimo questi problemi, il supporto all'assegnazione di nomi viene valutato caso per caso.

D: È possibile installare software al momento della creazione dello stack mediante AWS CloudFormation?

Sì. AWS CloudFormation offre un set di script di processi di bootstrap applicativi che consentono di installare pacchetti, file e servizi sulle istanze EC2 semplicemente descrivendoli nel modello di CloudFormation. Ulteriori informazioni e istruzioni sono disponibili suBootstrapping Applications via AWS CloudFormation.

È possibile integrare CloudFormation anche con Systems Manager per eseguire e mantenere le installazioni dei software con i documenti di Systems Manager Automation.

D: È possibile usare AWS CloudFormation con Chef?

Sì. AWS CloudFormation può essere impiegato per eseguire il bootstrap sia di Chef Server sia del client Chef sulle istanze EC2. Ulteriori informazioni e istruzioni sono disponibili su Integrating AWS CloudFormation with Chef.

D: È possibile usare AWS CloudFormation con Puppet?

Sì. AWS CloudFormation può essere impiegato per eseguire il bootstrap sia di Puppet Master sia del client Puppet sulle istanze EC2. Ulteriori informazioni e istruzioni sono disponibili su Integrating AWS CloudFormation with Puppet.

D: È possibile usare AWS CloudFormation con Terraform?

Sì. CloudFormation può eseguire il bootstrap del motore Terraform sulle istanze EC2. I fornitori di risorse Terraform possono inoltre essere impiegati per creare risorse negli stack, sfruttando le dipendenze, la stabilizzazione, il rollback e la gestione dello stato degli stack.

D: AWS CloudFormation supporta l'applicazione di tag di Amazon EC2?

Sì. Le risorse Amazon EC2 che supportano l'applicazione di tag possono operare anche in un modello di AWS. I valori dei tag possono fare riferimento a parametri del modello, a nomi di altre risorse, a valori degli attributi delle risorse (ad es. indirizzi) o a valori calcolati da funzioni semplici (ad es. un elenco di stringhe concatenate). CloudFormation applica automaticamente un tag ai volumi di Amazon EBS e alle istanze Amazon EC2 con il nome dello stack di CloudFormation di cui fanno parte.

D: È possibile accedere all'istanza Amazon EC2 o ai campi dati utente della configurazione di avvio di Auto Scaling?

Sì. È possibile usare funzioni semplici per concatenare valori letterali stringa e valori degli attributi delle risorse AWS effettive inoltrandoli ai campi dati utente nel modello. Ulteriori informazioni su queste funzioni sono disponibili nei modelli di prova.

D: Cosa succede quando non è possibile creare correttamente una delle risorse in uno stack?

Di default si attiva la funzione "automatic rollback on error", che istruisce CloudFormation a creare o aggiornare tutte le risorse nello stack solo se tutte le operazioni vengono completate correttamente. In caso contrario, CloudFormation ripristina lo stack all'ultima configurazione stabile nota. Questa funzione è utile, ad esempio, quando si supera accidentalmente il limite predefinito di indirizzi IP elastici oppure quando non si dispone dell'accesso all'AMI EC2 da eseguire. L'utilità della funzione si basa sul fatto che gli stack vengono creati interamente o non vengono creati affatto, con la conseguente semplificazione dell'amministrazione di sistema e della creazione di soluzioni a più livelli con CloudFormation.

D: La creazione di stack può attendere l'avvio dell'applicazione?

Sì. Una delle opzioni offerte da CloudFormation è la risorsa WaitCondition che agisce come una barriera, bloccando la creazione di altre risorse finché non riceve un segnale di completamento da un'origine esterna, ad esempio l'applicazione o il sistema di gestione. Altre opzioni includono la creazione di logica personalizzata con le funzioni AWS Lambda.

D: È possibile salvare i dati quando uno stack viene eliminato?

Sì. CloudFormation consente di definire le policy di eliminazione delle risorse all'interno del modello. È possibile richiedere la creazione di snapshot dei volumi di Amazon EBS o istanze database di Amazon RDS prima della loro eliminazione. Puoi anche specificare che una risorsa venga conservata e non eliminata insieme allo stack. È una funzione utile, ad esempio, per conservare i bucket di Amazon S3 dopo l'eliminazione dello stack.

D: È possibile aggiornare uno stack dopo che è stato creato?

Sì. È possibile utilizzare CloudFormation per modificare e aggiornare le risorse degli stack in modo controllato e prevedibile. L'impiego dei modelli per gestire le modifiche agli stack dà la possibilità di applicare il controllo della versione all'infrastruttura AWS in modo analogo a come si fa con il software eseguito sull'infrastruttura stessa.

D: È possibile creare stack in Virtual Private Cloud (VPC)?

Sì. CloudFormation supporta la creazione di VPC, sottoreti, gateway, tabelle di instradamento e ACL rete, nonché la creazione di risorse quali indirizzi IP elastici, istanze Amazon EC2, gruppi di sicurezza EC2, gruppi Auto Scaling, sistemi di bilanciamento del carico elastici, istanze database di Amazon RDS e gruppi di sicurezza RDS in un cloud privato virtuale.

D: In che modo si può entrare a far parte della community CloudFormation?

Basta iscriversi alla community AWS CloudFormation su GitHub.

D: È possibile gestire le risorse create all'esterno di CloudFormation?

Sì. Con la funzione di importazione delle risorse, è possibile trasferire una risorsa esistente nella gestione di AWS CloudFormation.

Nozioni di base

D: Come ci si registra a AWS CloudFormation?

Per registrarsi a CloudFormation, basta fare clic su Crea un account gratuito nella pagina dei prodotti di CloudFormation. Dopo la registrazione, occorre consultare la documentazione di AWS CloudFormation, che comprende la guida alle nozioni di base.

D: Perché viene richiesta la convalida del numero di telefono durante la procedura di registrazione ad AWS CloudFormation?

Per registrarsi a CloudFormation, occorre fornire ad AWS un numero di telefono e un indirizzo e-mail validi per poter essere contattati se necessario. La convalida del numero di telefono richiede soltanto qualche minuto: durante la procedura di registrazione, riceverai una telefonata automatica e dovrai inserire un numero PIN mediante la tastiera del telefono.

D: Come è possibile iniziare a usare CloudFormation dopo aver eseguito l'accesso?

Il modo migliore per iniziare a usare CloudFormation è leggere la sezione Configurazione della Guida, inclusa nella documentazione tecnica. Bastano pochi minuti per distribuire e usare uno dei nostri modelli di esempio che illustrano come creare l'infrastruttura necessaria per l'esecuzione di applicazioni quali WordPress. Sono disponibili anche altre risorse di formazione su CloudFormation, da fornitori di piani di studio terzi a tutorial e articoli sul Web. Ulteriori informazioni sono disponibili su Risorse di CloudFormation.

D: Esistono dei modelli di esempio che consentano di vedere come funziona AWS CloudFormation?

Sì. CloudFormation include diversi modelli di esempio utilizzabili per provare l'offerta ed esplorarne le funzionalità. I modelli di esempio illustrano come creare interconnessioni e usare risorse AWS multiple in sinergia, seguendo le best practice per ottenere ridondanza su più zone di disponibilità, scalabilità e generazione di allarmi. Per iniziare, è sufficiente accedere alla Console di gestione AWS, fare clic su Create Stack e seguire la procedura per selezionare e avviare uno degli esempi. Una volta creato, occorre selezionare lo stack nella console ed esaminare le schede Template e Parameter per vedere quali informazioni del file di modello sono state usate per creare lo stack corrispondente. I modelli di esempio sono disponibili anche su GitHub.

Registro di AWS CloudFormation

D: Cos'è il registro di AWS CloudFormation?

Il registro di AWS CloudFormation è un servizio gestito che permette di registrare, utilizzare e trovare i tipi di risorse AWS e di terze parti. I tipi di risorse di terze parti devono essere registrati prima di poter essere utilizzati per eseguire il provisioning delle risorse con i modelli di AWS CloudFormation. Ulteriori informazioni sono disponibili nella sezione Utilizzo del registro di AWS CloudFormation della documentazione.

D: Quali sono i tipi di risorse in AWS CloudFormation?

Un fornitore di risorse è un insieme di tipi di risorse con specifiche e gestori che controllano il ciclo di vita delle risorse sottostanti mediante operazioni di creazione, lettura, aggiornamento, eliminazione ed elenchi. È possibile utilizzare i fornitori di risorse per modellare ed eseguire il provisioning delle risorse tramite CloudFormation. Per esempio, AWS::EC2::Instance è un tipo di risorsa proveniente dal fornitore Amazon EC2. È utilizzabile per modellare ed eseguire il provisioning di un'istanza Amazon EC2 tramite CloudFormation. Il registro di AWS CloudFormation permette di creare e utilizzare i fornitori di risorse per modellare ed eseguire il provisioning di risorse di terze parti, come il monitoraggio SaaS, la produttività del team, o di risorse di gestione del codice sorgente.

D: Qual è la differenza tra fornitore di risorse AWS e di terze parti?

La differenza tra fornitore di risorsa AWS e di terze parti è la loro origine. I fornitori di risorse AWS vengono progettati e mantenuti da Amazon e AWS per gestire le risorse e i servizi AWS. Per esempio, tre fornitori di risorse AWS ti aiutano a gestire le risorse di Amazon DynamoDB, AWS Lambda e Amazon EC2. Questi fornitori contengono tipi di risorsa come AWS::DynamoDB::Table, AWS::Lambda::Function e AWS::EC2::Instance. Per i riferimenti completi, consulta la nostra documentazione.

I fornitori di risorse di terze parti sono progettati da un'altra azienda, organizzazione o comunità di sviluppatori. Possono aiutarti a gestire le risorse AWS o di terze parti come quelle per applicazioni AWS o i servizi software SaaS non AWS come gli strumenti di monitoraggio, produttività del tea, gestione degli incidenti o gestione del controllo di versione.

D: Cos'è lo schema di una risorsa?

Lo schema di una risorsa definisce un tipo di risorsa in un formato strutturato e coerente. Questo schema viene utilizzato anche per convalidare la definizione di un tipo di risorsa. Lo schema include tutti i parametri e gli attributi supportati per un dato tipo di risorsa, nonché le autorizzazioni necessarie per creare la risorsa con i minori privilegi possibili.

D: Come si sviluppano i tipi di risorse?

La CLI di AWS CloudFormation permette di creare i fornitori di risorse. Innanzitutto, è necessario definire un uno schema dichiarativo semplice per le risorse, che includa le autorizzazioni necessarie e le relazioni alle altre risorse. Con la CLI di CloudFormation, è possibile generare la struttura dei gestori del ciclo di vita della risorsa (Crea, Leggi, Aggiorna, Elimina ed Elenca) parallelamente agli stub di test per il testing dell'unità e dell'integrazione.

D: Come si registra un fornitore di risorse?

È possibile utilizzare la CLI di AWS CloudFormation di AWS o chiamare direttamente le API RegisterType e Registry relative disponibili tramite l'SDK di AWS e la CLI di AWS. Ulteriori informazioni sono disponibili nella sezione Utilizzo del registro di AWS CloudFormation della documentazione. I fornitori di risorse AWS sono già configurati e non richiedono alcun tipo di registrazione aggiuntiva prima dell'uso.

Fatturazione

D: Quanto costa AWS CloudFormation?

Non sono previsti costi aggiuntivi per l'utilizzo di AWS CloudFormation con i fornitori di risorse negli spazi dei nomi seguenti: AWS::*, Alexa::* e Custom::*. In questo caso, viene addebitato il costo dell'utilizzo effettivo delle risorse AWS (quali le istanze Amazon EC2, i sistemi di bilanciamento di carico di Elastic Load Balancing, ecc.) create utilizzando AWS CloudFormation come se fossero state create manualmente. I prezzi sono calcolati solo in base all'uso effettivo, senza tariffe minime né impegni anticipati.

Quando utilizzi fornitori di risorse con AWS CloudFormation fuori dagli spazi dei nomi sopraccitati, ti verranno addebitate le operazioni del gestore. Le operazioni del gestore sono crea, aggiorna, elimina, leggi o elenca su una risorsa. Ulteriori informazioni sono disponibili nella pagina dei prezzi.

D: Vengono addebitati i costi delle risorse sottoposte a rollback quando un tentativo di creazione di uno stack non va a buon fine?

Sì. I costi delle risorse AWS create durante l'avvio di un'istanza da un modello si applicano indipendentemente dalla corretta creazione dello stack.

Limitazioni e restrizioni

D: Ci sono limitazioni al numero di modelli o stack?

Non esiste alcun limite al numero di modelli. Ogni account AWS CloudFormation, tuttavia, applica un limite di 200 stack. Per richiedere di estendere questo limite, è necessario compilare la richiesta qui: risponderemo entro due giorni lavorativi.

D: Ci sono limitazioni alle dimensioni dei campi di descrizione?

I campi Template, Parameter, Output e Resource possono contenere fino a 4.096 caratteri.

D: Ci sono limitazioni al numero di parametri o di output in un modello?

È possibile includere fino a 60 parametri e fino a 60 output per modello.

D: È previsto un limite per il numero di risorse che è possibile creare in uno stack?

Al momento, è possibile creare fino a 200 regole per stack. La creazione di modelli e stack più piccoli e la modularizzazione dell'applicazione in più stack è una best practice per ridurre il raggio d'azione delle modifiche delle risorse e risolvere più velocemente i problemi con le diverse dipendenze delle risorse, poiché i gruppi di risorse più piccoli sono caratterizzati da dipendenze meno complesse rispetto a quelli più grandi.

Regioni ed endpoint

D: Quali sono i punti di accesso al servizio AWS CloudFormation in ciascuna regione?

Gli endpoint di ciascuna regione sono consultabili nella sezione Endpoint AWS CloudFormation della documentazione tecnica.

D: In quali regioni AWS è al momento disponibile AWS CloudFormation?

Ulteriori informazioni sulla disponibilità dei servizi di CloudFormation sono reperibili nella sezione relativa ai prodotti e servizi per regione.

Ulteriori informazioni sui prezzi di AWS CloudFormation

Visita la pagina dei prezzi di AWS CloudFormation
Tutto pronto?
Inizia a usare AWS CloudFormation
Hai altre domande?
Contattaci