prd-021 - amazon cloudformation
TRANSCRIPT
Community - Cloud AWS su Google+
Cloud AWS
Amazon Web Services
cloud-aws.com
Amazon CloudFormation
Hangout 21 del 28.07.2014
● Davide Riboldi● Massimo Della Rovere
Oggi vediamo il servizio di Amazon CloudFormation per gestire le risorse AWS tramite dei template.
CLOUD AWS
#cloudaws
Amazon CloudFormation - Introduzione
Cloud AWS
● CloudFormation fornisce agli sviluppatori e amministratori di sistema un modo per poter gestire le risorse AWS attraverso l’utilizzo di template.
● È possibile scrivere un template da zero, oppure iniziare con uno dei modelli di esempio che vengono forniti da AWS nella documentazione ufficiale.
● Il servizio può essere usato anche per non ripetere sempre le stesse operazioni manuali sia esse eseguite da console o da linea di comando.
Amazon CloudFormation - (servizi supportati)
Cloud AWS
Autoscaling CloudTrail
DynamoDB EC2
IAM Kinesis
RDS Route 53
Formation
S3
SNS
SQS
CloudWatch
Beanstalk
Redshift
CloudFront
ElastiCache
OpsWorks
Amazon CloudFormation - Lo stack
Cloud AWS
● Per poter utilizzare il servizio CloudFormation bisogna creare degli stack, i quali contengono le risorse aws che devo essere avviate e coordinate.
● Uno stack è un insieme di risorse che derivano dal deploy di un template. È possibile creare uno stack da un template memorizzato su Amazon S3.
● Sulla base di questo e di tutte le dipendenze si determinano le risorse che devono essere create e l’ordine in cui vengono create all’interno dello stack.
Amazon CloudFormation - Lo stack (modifica)
Cloud AWS
● Uno stack esistente può essere anche modificato, basta sottomettere un nuovo template o lo stesso template modificato per le nuove risorse.
● In molti casi i cambiamenti verranno apportati senza pregiudicare il funzionamento dell’applicazione, tuttavia questa condizione non è sempre possibile.
● Ad esempio per aggiornare una AMI su un’istanza EC2, il servizio creerà una nuova risorsa da inserire nello stack, eliminando la vecchia una volta che il servizio ha terminato l’intero aggiornamento.
Amazon CloudFormation - Templates
Cloud AWS
● Il template è il cuore di questo servizio, è un file in formato JSON che contiene tutte le informazioni che riguardano un’ambiente AWS.
● Nel template bisogna dichiarare diversi tipi di oggetti come version, description, parameters, conditions, resources, mappings e outputs.
● Tra tutti gli oggetti da dichiarare per la creazione di uno stack solo il “resources” è obbligatorio, tutti gli altri possono essere opzionali.
Amazon CloudFormation - Templates (schema)
Cloud AWS
{ "AWSTemplateFormatVersion" : "2010-09-09", "Description" : "Template per tutorial AWS", "Parameters" : { set of parameters }, "Mappings" : { set of mappings }, "Conditions" : { set of conditions }, "Resources" : { set of resources }, "Ouputs" : { set of outputs }}
Parameters
Mappings
Conditions
Resources
Outputs
Amazon CloudFormation - Templates (sezioni)
Cloud AWS
● AWSTemplateFormatVersion: la versione del formato del template è una dichiarazione opzionale e poiché il formato del template in CloudFormation non è ancora cambiato, attualmente esiste un solo valore supportato: 2010-09-09.
● Description: la descrizione del template è facoltativa, quando viene specificata deve seguire la sezione AWSTemplateFormatVersion. Questa sezione viene utilizzata per inserire una descrizione arbitraria del template.
● Mappings: in queste sezioni vengono associate delle chiavi ad un insieme di valori. Ad esempio, se si desidera impostare dei valori in base alla regione, è possibile creare una mappatura che utilizzi il nome della regione come chiave che contenga i valori che si desidera specificare per ogni specifica regione. (appunto mappatura).
Amazon CloudFormation - Templates (sezioni)
Cloud AWS
● Conditions: è possibile definire delle condizioni utilizzando delle funzioni intrinseche, è possibile, ad esempio, confrontare se un valore è uguale ad un altro valore e sulla base del risultato della condizione è possibile creare delle risorse specifiche.
● Resources: in questa sezione vengono dichiarate tutte le risorse AWS che faranno parte dello stack e che quindi che verranno create. Questa è l’unica sezione obbligatoria del template e deve essere sempre dichiarata, mentre tutte le altre sono facoltative. Per ogni risorsa dichiarata si possono anche specificare delle proprietà che definiscono nel dettaglio come deve essere creata la risorsa stessa.
● Outputs: questa sezione consente di restituire all’utente uno o più valori in risposta al comando describe-stacks di CloudFormation. Grazie a questa sezione è possibile, ad esempio, ottenere l’ID delle istanze EC2 create oppure l’URL per un collegamento alle risorse di Amazon CloudFront che sono state create nello stack.
Amazon CloudFormation - Stack API
Cloud AWS
● Oltre all’utilizzo tramite management console, CloudFormation fornisce un insieme di API con cui è possibile svolgere le operazioni più importanti.
Create Stack
List Stacks
DeleteStack
Describe Stack
Events
ListStack
Resource
UpdateStack
Amazon CloudFormation - Editor JSON
Cloud AWS
● Se volete analizzare i file JSON di esempio che trovate nella documentazione ufficiale vi consigliamo di utilizzare lo strumento http://www.jsoneditoronline.org/.
Amazon CloudFormation - Ringraziamenti & Video
Cloud AWS
Cloud Computing
Amazon Web Service 1
AmazonSNS
AmazonMFA
AmazonCloudFront
AmazonFree Trial
AmazonS3
AmazonGlacier
Amazon Web Service 2
ElasticTranscoder
Storagegateway
AmazonSES
AmazonCloudTrial
AmazonCloudWatch
AmazonSQS
AmazonIAM Top 10
AmazonRDS
AmazonRDS/MYSQL
AmazonIAM