{"id":421,"date":"2019-05-03T15:07:39","date_gmt":"2019-05-03T13:07:39","guid":{"rendered":"https:\/\/blog.besharp.it\/?p=421"},"modified":"2021-03-17T12:35:09","modified_gmt":"2021-03-17T11:35:09","slug":"aws-cloudformation-i-primi-5-motivi-per-non-usarlo","status":"publish","type":"post","link":"https:\/\/blog.besharp.it\/it\/aws-cloudformation-i-primi-5-motivi-per-non-usarlo\/","title":{"rendered":"AWS CloudFormation: i primi 5 motivi per non usarlo"},"content":{"rendered":"
A chi non \u00e8 capitato di avere problemi con AWS CloudFormation?<\/span><\/p>\n \u00c8 tristemente noto come AWS CloudFormation sia uno strumento tanto potente quanto frustrante; in questo breve articolo illustreremo le trappole pi\u00f9 comuni e le situazioni pi\u00f9 odiose, insieme ovviamente a modi per evitarle.<\/span><\/p>\n Iniziamo il nostro viaggio dalla descrizione del servizio:<\/span><\/p>\n \u201cAWS CloudFormation ti fornisce un linguaggio comune per descrivere ed effettuare il provisioning di tutte le risorse dell’infrastruttura nel tuo ambiente cloud. Con CloudFormation puoi usare un semplice file di testo per modellare ed effettuare il provisioning, in modo automatizzato e sicuro, di tutte le risorse necessarie alle tue applicazioni su tutte le regioni e tutti gli account. Questo file sar\u00e0 l\u2019unica sorgente del tuo ambiente cloud. <\/span><\/i><\/p>\n CloudFormation \u00e8 disponibile senza alcun costo aggiuntivo; ti vengono addebitati solo i costi delle risorse AWS necessarie per l’esecuzione delle applicazioni.\u201d<\/span><\/i><\/p><\/blockquote>\n Uno dei principali vantaggi di utilizzare AWS CloudFormation \u00e8 appunto quello di disporre di un template della propria infrastruttura, che pu\u00f2 essere versionato, revisionato, e replicato<\/strong> facilmente tutte le volte necessarie.<\/span><\/p>\n Tuttavia gi\u00e0 dalla descrizione del servizio iniziano i primi problemi.<\/span><\/p>\n Nonostante la pagina della presentazione del servizio AWS dica esplicitamente che AWS CloudFormation offra una modellazione completa delle infrastrutture Cloud, questo di fatto non accade.<\/span><\/p>\n Non sempre, almeno; esistono infatti molte configurazioni e\/o risorse che non \u00e8 possibile specificare all\u2019interno di un template<\/strong>\u00a0AWS CloudFormation.<\/span><\/p>\n Ad oggi, ad esempio non \u00e8 possibile: <\/span><\/p>\n Il nostro consiglio \u00e8 quello di assicurarsi che tutti i servizi e le configurazioni necessarie siano veramente modellizzabili con la versione attuale.<\/span><\/p>\n Quasi tutti i servizi vengono supportati, anche se per alcuni \u00e8 necessario aspettare un notevole lasso di tempo tra il rilascio ed il supporto ufficiale di AWS CloudFormation.<\/span><\/p>\n Esiste poi il modo di estendere le capacit\u00e0 di AWS CloudFormation utilizzando le custom resources. Di fatto permettono di effettuare il deploy di una Lambda function e di eseguirla come \u201cCustom Resource\u201d in un determinato momento durante la creazione dello stack.<\/span><\/p>\n Ecco la documentazione ufficiale di questa funzionalit\u00e0<\/a>.<\/span><\/p>\n Se \u00e8 vero che una volta confezionato il template l\u2019esecuzione \u00e8 pi\u00f9 rapida di quella manuale, il processo di produzione del template \u00e8 un processo lungo e basato su trial and error.<\/span><\/p>\n Non \u00e8 infatti possibile controllare al 100% un template in locale, \u00e8 possibile solo essere certi della correttezza sintattica senza prima eseguirlo.<\/span><\/p>\n Il che significa che prima di giungere ad una versione funzionante si deve passare per numerosi tentativi, ognuno dei quali ha tempi di esecuzione lunghi.<\/span><\/p>\n Per rendersi la vita pi\u00f9 semplice possiamo contare su alcuni alleati<\/strong>:<\/span><\/p>\n Il primo \u00e8 l\u2019API <\/span>ValidateTemplate<\/span><\/a> che fa un controllo molto pi\u00f9 approfondito di un semplice linter.<\/span><\/p>\n#1 Una modellazione <\/span>
completa<\/span><\/del> incompleta<\/span><\/h2>\n\n
#2 Tempi di attesa<\/span><\/h2>\n