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:le risorse vengono archiviate all’interno di buckets, ovvero contenitori logici su cui è possibile impostare i permessi di accessoad ogni risorsa salvata è associata una chiave all’interno del bucketle risorse archiviate sono disponibili via http e puntando alla url del servizio e alla chiave dell’oggetto e sono anche accessibili via rest/soap API tramite protocollo httpsnon ha limiti di storageservizio scalabile, durevole e affidabilegestisce versioning e lifetime delle risorsele chiamate a S3 sono tutte crittografate con una chiave tramite un serviziosi può attivare il logging di accesso alle risorsesi possono configurare eventi (al get/put delle risorse)si paga lo spazio occupato
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:Metadata: tutte le informazioni associate alla macchina. in qualsiasi momento si può verificare lo status dell’istanza interrogando i Metadata.User Data: informazioni da mandare all’istanza in modo che vengano eseguiti degli script al boot della macchina.
Caratteristiche principali:alta scalabilitàpossibilità di sfruttare il servizio di Auto-Scaling: vengono accese in automatico delle istanze in base a logiche da noi definite; possiamo impostare metriche sulle risorse (ad es cpu) o su fasce orarie in base al traffico previstoaccesso di root alla macchinapossibilità di definizione di una chiave di accesso alla macchina via sshmassimo controllo della risorsa (sotto il profilo hardware e software)possibilità di gestire dei tag sulle risorse in modo da identificarle all’interno del cloudpossibilità di configurare security groupspossibilità di sfruttare il bilanciamento di traffico mediante Elastic Load Balancingusa hardware intel xeon sempre aggiornatosi pagano solo le risorse utilizzate (dal momento in cui accendo la macchina)
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:Security-groups: legati alle istanze EC2 lanciate all’interno della VPC. Funzionano come se fossero dei firewall che regolamentano il traffico outbound/inbound all’interno della VPC. Agiscono a livello di singola istanza EC2 e sono stateful.ACL per filtrare il traffico a livello di subnet, controllano il traffico in base al tipo di accesso (inbound/outbound) e sono stateless.
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:Amazon Dynamo DB: database no sql fully managed; è possibile tarare il provision (size read/write) in base alla previsione di utilizziAmazon RDS: gestore di database relazionale (db engine supportati: mysql, mariadb, microsoft sql server, postgres, oracle). Le istanze di database girano sotto la VPC, servizio scalabile e deployabile su diverze availability zones. E’ possibile configurare backup automatici configurando schedulazione e retention.Amazon Aurora: database relazionale compatibile con MySql ma (a detta di Amazon) estremamente performanteAmazon ElastiCache: servizio di caching che implementa i motori Redis e Memcached; servizio scalabile e distribuibile.
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.
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.