AWS for dummies
Lettura 10 minutiQualche settimana fa ho partecipato all’AWSome Day a Padova, evento gratuito organizzato da Amazon Web Service; si è trattato di una giornata di formazione e consulenza dagli esperti AWS, rivolta a IT Manager e sviluppatori che hanno iniziato a utilizzare le soluzioni di Cloud Computing di Amazon o che, come me, sono (anzi – erano) totalmente ignoranti sull’argomento.
Il taglio dell’evento era sicuramente entry-level, quindi perfetto per me che conoscevo questa tecnologia solo per sentito dire e che sono curiosa di approfondire, anche perché AWS è la nostra infrastruttura di riferimento per i servizi di hosting evoluti.
Ho preso un sacco di appunti con l’intenzione di condividere i contenuti di questa giornata con alcuni colleghi che, come me, sentono parlare di AWS ma non sono mai entrati nel merito della soluzione. Alla fine ho pensato che il nostro primo strumento di diffusione della conoscenza, internamente ed esternamente all’azienda, è il blog quindi perchè non trasformare dei sommari appunti in un vero e proprio articolo?
Cloud Computing: partiamo dalla base
Il Cloud Computing è una tecnologia che mette a disposizione, tramite la rete Internet, servizi basati sull’erogazione di risorse hardware e software con formula on demand.
Le risorse erogate comprendono, ad esempio: potenza di calcolo, spazio di archiviazione, strumenti di trasmissione dati e veri e propri servizi applicativi.
Un’azienda che necessita questo tipo di risorse per erogare i propri servizi online può appoggiarsi ad un provider di servizi cloud per acquistare e configurare un set di risorse, con la garanzia di poter ampliare questo set nel tempo in base alle esigenze di business e di capacità del sistema.
Le caratteristiche che hanno reso il Cloud Computing una tecnologia di successo sono:
Contenimento dei costi: principalmente si elimina l’esigenza di gestire un’infrastruttura IT personale, dall’acquisto dell’hardware e del software alla manutenzione del sistema passando dall’esigenza di avere in azienda figure specializzate. Inoltre il concetto di Cloud Computing si accompagna al concetto di flessibilità del costo in base alle reali risorse utilizzate (costo a consumo).
Scalabilità del sistema: possibilità di ampliare o diminuire le risorse a disposizione in base alla capacità richiesta per sopportare il carico garantendo stabilità al sistema; ad esempio incrementare le risorse a disposizione all’aumento della mole di dati da gestire, oppure all’aumento del traffico verso un servizio online.
Garanzia della sicurezza: un buon service provider si occupa di mettere in atto tutte le pratiche necessarie per garantire il rispetto delle policy di sicurezza, la protezione dei dati memorizzati nel cloud e la conformità con una serie di certificazioni necessarie per la messa in opera di servizi che richiedono adeguati livelli di sicurezza (crittografia dei dati, autenticazione, antivirus, cifratura dei dischi ecc…)
Tipologie di Cloud Computing
Le principali tipologie di tecnologia Cloud sono così classificate:
Amazon Web Services
Il cloud AWS è un sistema PaaS distribuito e disponibile in 190 paesi, suddivisi in aree geografiche (regions). Attualmente sono attive 14 regioni ma nel prossimo anno è prevista la nascita di altre 4.
Ogni regione comprende diverse zone di disponibilità (AZ – Availability Zone): le zone di disponibilità sono a tutti gli effetti dei data center distribuiti che permettono di replicare le applicazioni in modo da garantire scalabilità e disponibilità in caso di guasti su una particolare zona.
La scelta della regione da cui erogare i propri servizi e applicazioni dovrebbe essere dipendente dalla provenienza della maggior parte dei visitatori.
Componenti AWS, traduciamo un po’ di sigle
Nel sistema AWS quasi ogni componente o servizio è identificato, o meglio riconosciuto, da una sigla. Vediamo di far luce sulle principali.
S3 – Simple Storage Service
E’ il primo componente nato in Amazon: si tratta di un servizio di archiviazione di risorse accessibili e condivisibili. E’ particolarmente adatto all’archiviazione di risorse statiche (storage, backup, media, componenti software da scaricare al boot per il delivery di macchine EC2).
Ecco le caratteristiche principali:
Per approfondimenti: https://aws.amazon.com/it/s3
EC2 – Amazon Elastic Compute Cloud
Si tratta dell’infrastruttura che consente di disporre on demand di istanze di macchine virtuali configurabili in base alle proprie necessità.
E’ possibile ridimensionare, accendere e spegnere le istanze in base all’esigenza di potenza di calcolo necessaria per far fronte al carico: la prima caratteristica è quindi la scalabilità in termini di capacità di carico.
Per attivare una macchina si può partire da un’immagine (AMI – Amazon Machine Image) o da un template precedentemente salvato, che è a tutti gli effetti un “modello di macchina”.
Si scelgono quindi il sistema operativo (Linux / Windows), l’availability zone in cui accendere la macchina, la dimensione della macchina selezionando famiglia (famiglie: T2, M3, M4, C3, C4, R3, G2, I2, D2), l’architettura della macchina configurando RAM, CPU, dischi di storage e rete.
Successivamente si procede alla configurazione dell’istanza specificando le regole di shutdown, il monitoraggio, i permessi di accesso e altre specifiche.
Il self-configuration della macchina mette a disposizione due importanti strumenti:
Caratteristiche principali:
Per approfondimenti: https://aws.amazon.com/it/ec2/
EBS – Elastic Block Storage
Sono volumi di storage (dischi) montati sulle istanze EC2.
Risiedono nella medesima availability zone dell’istanza EC2 su cui vengono montati e sono particolarmente adatti come storage per dati che richiedono alta persistenza (indipendentemente dallo stato della macchina a cui sono collegati). Sono quindi adatti per l’utilizzo come file system primario o per lo storage di database o per memorizzare e gestire dati ad alta frequenza di lettura/scrittura.
Su una singola istanza EC2 possono essere montati diversi volumi EBS, un singolo volume EBS può però servire una singola istanza EC2 alla volta.
Per alti carichi di input/output su un disco si può scegliere la tipologia Provisioned IOPS SSD per garantire maggiori performance di I/O sul disco.
Tramite il servizio Amazon EBS Snapshot si possono gestire i backup dei dischi e bisogna fare attenzione alla tipologia di IP collegati, per garantire la persistenza degli indirizzi IP di riferimento in caso di azioni stop/start sull’istanza EC2 su cui è montato il volume.
Per approfondimenti: https://aws.amazon.com/it/ebs/
VPC – Amazon Virtual Private Cloud
Si tratta di un ambiente privato virtuale, logicamente isolato all’interno di AWS, in cui far risiedere le istanze EC2.
Di default Amazon crea una rete privata VPC per l’account utente, assegnando i servizi AWS attivi; è sempre possibile configurare le caratteristiche della rete VPC o crearne di nuove.
Altamente personalizzabile: è possibile selezionare gli intervalli degli indirizzi IP, configurare una VPN hardware con la propria rete aziendale e definire i permessi di accesso alla VPC.
E’ anche possibile creare delle subnet, o sottoreti: una subnet è sempre legata ad una availability zone.
La VPC prevede diversi livelli di sicurezza con possibilità di configurare:
Per approfondimenti: https://aws.amazon.com/it/vpc/
Database e cache
Amazon mette a disposizione alcuni servizi per la gestione di database: motori di database relazionali / nosql, sistemi di caching, servizi di migrazione dei databases nel cloud.
Di seguito un elenco:
Per approfondimenti: https://aws.amazon.com/it/products/databases/
Amazon Cloud Watch
E’ il sistema di monitoraggio di Amazon; ha una serie di metriche (ad es utilizzo cpu di una particolare istanza o gruppo di istanze) per monitorare le risorse AWS istanziate all’interno della propria VPC.
E’ possibile agganciare allarmi alle metriche per effettuare un’azione come ad esempio inviare una notifica email o agganciare una nuova macchina all’autoscaling group.
Si possono creare metriche custom aggiuntive a quelle Amazon (custom metrics).
Il servizio fornisce report grafici e statistiche sullo stato operativo delle risorse monitorate.
Per approfondimenti: https://aws.amazon.com/it/cloudwatch/
Amazon AWS console
Amazon fornisce un servizio web e un’applicazione per accedere alla console di gestione delle risorse AWS.
Per iniziare ad utilizzare AWS è necessario registrare un account gratuito e collegare una carta di credito; ricordiamoci che, al netto dei servizi gratuiti per il primo anno, il resto delle risorse istanziate e utilizzate saranno addebitate in base alla politica di pricing scelta.
Dalla console AWS è possibile configurare il proprio account, è possibile accendere / spegnere / configurare risorse e accedere alle statistiche del sistema di monitoraggio.
E’ anche possibile configurare il networking (VPC, ACL, Security groups) e tutte le regole relative a sicurezza, identità e gestione degli accessi alle risorse (utenti, gruppi e ruoli IAM, utenti federati)
Per approfondimenti: https://aws.amazon.com/it/console/
Politiche di pricing
Esiste AWS Free Tier che è il piano gratuito sfruttabile per avvicinarsi al mondo AWS senza dover sostenere dei costi.
In base al tipo di servizio esistono diverse politiche di pricing, approfondibili a questo link: https://aws.amazon.com/it/pricing/services/
Conclusioni
Sarebbe impossibile in un articolo esplorare l’intera gamma di prodotti AWS, per questo rimando al sito web ufficale che spiega in modo dettagliato le caratteristiche di ogni servizio e offre dei tutorial per iniziare ad utilizzare questa tecnologia.
Registrandosi al servizio si può accedere al piano gratuito di AWS della durata di 1 anno che permette l’utilizzo free (con alcune limitazioni) della maggior parte dei servizi.
Articolo scritto da
☝ Ti piace quello che facciamo? Unisciti a noi!