Amazon Web Services

Conosciamo tutti quanti Amazon come uno dei più grandi negozi di commercio elettronico del mondo. Iniziò la sua attività di vendita libri online nel lontano anno 1995 per finire ad oggi che vende di tutto. Amazon per raggiungere questo obiettivo non ha dovuto affrontare solo questioni di marketing, ma ha dovuto investire sul sistema informativo e sulla base hardware per gestire un enorme volume di traffico che veniva generato ogni giorno a livello mondiale.

Per questo motivo in pochissimi anni si è ritrovata un’infrastruttura di networking invidiabile e una serie di servizi chiamati “Amazon Web Services” o AWS concepiti e basati sull’affidabilità, sulla scalabilità e sulla velocità. Questa esperienza è stata concepita proprio dallo staff interno di Amazon, in quanto al momento non esisteva un computer in vendita capace di soddisfare il traffico generato dall’azienda nel mondo internet.

Se vogliamo capire i servizi messi a disposizione, dobbiamo assimilare bene due concetti, uno legato agli Amazon Web Services detti anche AWS e l’altro sulla struttura di networking. Su questo articolo vi riporterò una descrizione per chiarire meglio alcuni concetti, mentre subito dopo verranno elencati i servizi, suddivisi per gruppo, con eventuale collegamento. Se dopo la lettura volete scambiare qualche idea con noi iscrivetevi alla Community Cloud AWS.

Definizione di cloud computing

Sono state spese molte parole per cercare di dare una definizione al termine di cloud computing e purtroppo ancora esiste molta confusione per cercare di capire cosa può essere considerato un cloud e cosa no. Sicuramente non tutti i servizi e le tecnologie a cui siamo abituati ad accedere possono essere definiti dei servizi di cloud computing.

Per cercare di definire questo paradigma in costante evoluzione ci viene incontro un testo del National Institute of Standards and Technology (detto NIST) che nell’ottobre del 2011 ha rilasciato la versione finale della definizione di cloud computing e relativa terminologia, qui di seguito il link ufficiale => (NIST pubblicazione speciale 800-145).

La nascita degli Amazon Web Services

La vera idea arriva nel 2006, quando Amazon capisce che la sua infrastruttura e i suoi servizi web, che attualmente vengono utilizzati solo per se stessa, potrebbero essere condivisi con le altre aziende che hanno bisogno di una infrastruttura affidabile per i loro affari. In poche parole incomincia a vendere una tecnologia di cloud computing con molti anni di anticipo rispetto a qualsiasi altra società di servizi informatici.

Anche la modalità di pagamento è particolare, infatti si paga solo ciò che si utilizza, non ci sono contratti forfettari o abbonamenti fissi come siamo abituati a vedere nei  piani di hosting, anche qui come avremmo modo di vedere, i vantaggi sono tantissimi e si possono risparmiare cifre notevoli rispetto ad una struttura proprietaria.

Struttura di networking mondiale

Amazon mette a disposizione un numero di data center sparsi per il mondo, vengono usati i termini di zona geografica e zona di disponibilità. La prima identifica la zona fisica dove si trovano i datacenter delle risorse che vogliamo acquistare, mentre la seconda identifica i centri ridondanti che sono presenti nella stessa zona geografica.

Ad esempio nella zona geografica Europea dell’Irlanda abbiamo 3 zone di disponibilità diverse, mentre nella zona USA Virginia abbiamo la possibilità di scegliere 4 zone di disponibilità. Per molti servizi (come Amazon S3) basterà scegliere la zona geografica e le risorse saranno automaticamente replicate per le varie zone di disponibilità.

AWS edge locations

La scelta della zona geografica su AWS è molto importante, in quanto influenza la latenza e quindi i tempi di risposta, normalmente è bene scegliere la zona geografica più vicina, i costi per lo stesso servizio sono diversi tra Brasile, USA, Europa, etc, etc. Ci sono alcuni servizi che inizialmente non sono disponibili per tutte le aree geografiche.

Per quanto riguarda invece la distribuzione dei contenuti a livello mondiale, ad esempio le risorse statiche o alcuni file multimediali come video in streaming, vengono usate anche le Edge Locations, che sono delle infrastrutture che vengono usate per le funzione specifiche di delivery, in maniera tale da avvicinarsi alle richieste e migliorare i tempi di risposta. Se volete vedere la mappa andate su Amazon Global Infrastructure.

Amazon Web Services

I servizi messi a disposizione ad oggi sono parecchi, anche perché la sezione AWS di Amazon ogni mese rilascia qualche novità o qualche servizio nuovo. In ogni caso per facilitarne la selezione gli AWS vengono suddivisi in sei differenti gruppi:

Compute: in questo gruppo troviamo tutti i servizi per le risorse di computazione, quindi la gestione di server virtuali in cloud EC2, il servizio Lambda per l’esecuzione di codice a seguito di eventi su altri servizi AWSContainer Service (ECS) per facilitare la gestione di gruppi di istanze con particolari caratteristiche in comune.

Storage: qui ci sono tutti i servizi che riguardano lo storage e la memorizzazione di dati online di grandi dimensioni. Nell’elenco troviamo il servizio di storage Amazon S3, uno storage studiato per i backup chiamato Amazon Glacier, una soluzione di collegamento diretto senza internet tra azienda e cloud con Storage Gateway.

Database: tramite questi servizi possiamo gestire dei database senza dover installare i software specifici sui nostri server virtuali e usufruire della scalabilità automatica di amazon. Possiamo scegliere un database NoSQL come DynamoDB, un database relazione come MySQL e Microsoft SQL Server in RDS, sistema di caching RAM in ElastiCache e un sistema di data warehouse ad altissima velocità in Redshift.

Networking & CDN: in questo gruppo troviamo i servizi che riguardano le risorse di rete, quindi la gestione di un DNS con Route 53, le risorse private con server non pubblici e confini di rete personalizzabili VPC con Virtual Private Cloud, connessioni dedicate tra azienda e Amazon AWS con connessione VPN tramite Direct Connect, la distribuzione di contenuti statici e multimediali su diverse regioni geografiche con CloudFront.

Migration: in questa sezione sono presenti i servizi di Amazon che provvedono alla migrazione di diverse risorse, ad esempio possiamo migrare database eterogenei con il servizio di Amazon DMS o migrare grosse quantità di dati aziendali con un apparato hardware chiamato Snowball da spedire direttamente alla sede di Amazon.

Developer Tools: tutti i servizi per un supporto ai flussi generali di programmazione e condivisione sorgenti. Salvare i sorgenti in un Git Privato con CodeCommit, gestire il rilascio continuo con CodePipeline automatizzare il deploy con CodeDeploy.

Management Tools: tutti i servizi per la gestione di aspetti che riguardano la gestione generale del sistema. Controllare gli indicatori di performance e attivare delle azioni automatiche con CloudWatch, controllare la cronologia completa sulla configurazione attuale e storico delle sue modifiche con Config, tenere sotto controllo le chiamate API con CloudTrail e ottenere consigli sulle risorse da Trusted Advisor.

Security & identify: servizi per la gestione generale e il controllo degli accessi tramite politiche di sicurezza. Controllare e gestire in maniera sicura tutte le autorizzazioni di accesso con IAM, sincronizzare active directory con Directory Service, etc etc.

Analytics: qui troviamo i servizi che effettuano delle analisi basandosi su delle grosse strutture dati. Il primo servizio rilasciato è Elastic MapReduce basato su un framework chiamato Hadoops, ideale per  data warehousing. Altri servizi che troviamo in questa sezione sono Data Pipeline e l’ultimo arrivato Kinesis.

Intelligenza artificiale: in questo gruppo troviamo diversi servizi utili agli sviluppatori per integrare algoritmi IA nelle proprie applicazioni. Ad esempio è possibile usare il servizio di Amazon Rekognition con cui è possibile riconoscere oggetti o scene in una immagine o il servizio Amazon Polly per la traduzione di un testo in formato Audio.

Internet of Things: AWS ha creato specifici servizi IoT come AWS Greengrass e AWS IoT. Ti aiuteranno a raccogliere e inviare dati al cloud, facilitando il caricamento e l’analisi di tali informazioni e consentendoti di gestire i tuoi dispositivi in modo da poterti focalizzare sullo sviluppo di applicazioni che soddisfano le tue esigenze.

Game Development: questo gruppo è dedicato ai servizi per lo sviluppo di videogiochi professionali in cui vengono messi a disposizione sia i strumenti di sviluppo che le risorse hardware necessarie. Ad esempio troviamo il servizio di Amazon GameLift, il servizio di Amazon Lumberyard un motore di giochi 3D multipiattaforma.

Mobile Services: in questa sezione ci sono i servizi che possono essere utilizzati dalle applicazioni mobile per eseguire dei compiti specifici. Come la gestione identità per gli accessi e le sincronizzazioni con Cognito e le statistiche mobile con Mobile Analytics.

Application Services: qui troviamo tutti quei servizi che possiamo utilizzare chiamando direttamente delle applicazioni specifiche che girano nel cloud senza dover acquistare istanze EC2 o storage online. Ad esempio un motore di ricerca chiamato CloudSearch, conversioni video con Elastic Transcoder, pianificazione lavori con SWF e sviluppo applicazioni in ambiente di bassa latenza per gaming con AppStrea.

Messaging: nel gruppo della messaggistica troviamo tutti i servizi di Amazon con cui è possibile gestire le comunicazioni di messaggi, ad esempio una gestione completa delle notifiche tra diversi supporti con Amazon SNS, un servizio di spedizione posta con Amazon SES e la gestione della distribuzione del carico di lavoro tramite code messaggi con Amazon SQS.

Business Productivity: in questo gruppo troviamo tutti i servizi per le applicazioni aziendali, come ad esempio il servizio per la gestione della posta elettronica aziendale con WorkMail e la gestione per i documenti con WorkDocs. Alcuni di questi servizi potranno essere integrati nella propria azienda con dei client rilasciati da amazon.

Desktop & App Streaming: in questo gruppo ci sono tutti i servizi che appartengono agli ambienti di desktop come il servizio di Desktop Virtuale chiamato WorkSpaces e il servizio per lo sviluppo di applicazioni in streaming conosciuto come AppStream 2.0.

Compute

Compute & networking

EC2

Un servizio web che fornisce capacità di elaborazione dati in cloud, fornisce tramite la virtualizzazione la possibilità di scegliere diversi sistemi operativi, servizi e banche dati già pronte. Il servizio può essere gestito tramite una console web o tramite delle API per essere usato in ambiente di programmazione. Amazon EC2 mette a disposizione anche una serie di sotto servizi per la gestione avanzata della nostra istanza, come ad esempio il bilanciamento del traffico, la funzione di Auto Scaling ed altro ancora.

ECS Container Service

Amazon EC2 Container Service (ECS) è un servizio di gestione di contenitori altamente scalabile ad elevate prestazioni che supporta i contenitori Docker e consente di eseguire applicazioni su un cluster gestito di istanze Amazon EC2 in modo semplice.

Lightsail

Con questo nuovo servizio è possibile gestire facilmente una VPS Virtual Private Server e avviare in pochissimi minuti una applicazione web con delle immagini già predefinite, ad esempio WordPress, Joomla, Magento, Drupal ed altro ancora. Per utilizzare questo servizio non è necessario avere conoscenze sistemistiche particolari ed è possibile avviare un server in produzione con pochi e semplici passaggi.

Elastic Beanstalk

Il servizio di Amazon EC2 mette a disposizione solo potenza computazionale, la quale una volta configurata dal punto di vista sistemistico e con l’aggiunta di software specifico, può far girare qualsiasi applicazione. Per molte persone questo si traduce in un’inconveniente, perché bisogna farsi carico di tutte le problematiche legate alla configurazione dell’istanza prima di preoccuparsi dell’applicazione. Proprio per questo Amazon ha sviluppato Elastic Beanstalk, che permette di caricare su AWS direttamente l’applicazione senza preoccuparsi di altri aspetti.

Lambda

Un servizio che permette di definire delle funzioni che possono chiamare un particolare codice che deve essere eseguito al verificarsi di un evento sui servizi AWS. Ad esempio se si modifica un file su S3, se viene inserito un elemento su DynamoDB o un messaggio che arriva ad Amazon Kinesis. La particolarità di questo servizio è che non ci dobbiamo preoccupare della scalabilità, ad esempio non ci interessa se su Amazon S3 avvenga una modifica al secondo o 100.000, le funzioni continueranno a funzionare e ad eseguire il codice che gli verrà assegnato.

Batch

AWS Batch consente di eseguire in maniera semplice ed efficace centinaia di migliaia di lavori di elaborazione in batch su AWS. Effettua dinamicamente il provisioning della quantità e del tipo ottimali delle risorse di calcolo (CPU o memoria) in base al volume e ai requisiti di risorse specifici ai lavori in batch inviati. Con AWS Batch, non c’è bisogno di installare e gestire software di calcolo o cluster di server per eseguire i lavori e questo ti consente di concentrarti sull’analisi dei risultati e la risoluzione di problemi.

Storage

Cloud Storage

S3

Con questo servizio di “storage” è possibile archiviare e recuperare grandi quantità di dati, in qualsiasi momento e da qualsiasi punto del web. Fornisce agli utilizzatori la possibilità di accedere alla stessa infrastruttura di storage dei dati, altamente scalabile, affidabile e veloce che Amazon utilizza per mantenere in funzione la propria rete di siti web. Questo servizio può essere utilizzato anche come forma sicura di backup, sia per gli altri servizi AWS come EC2, ma anche come backup per server aziendali.

Elastic File System

Fornisce storage di file scalabile per l’utilizzo con le istanze Amazon EC2. Amazon EFS è facile da usare e offre una interfaccia che permette di creare e configurare i file system in modo rapido e semplice. Il servizio è progettato per offrire disponibilità e durabilità, fornisce prestazioni in grado di soddisfare un’ampia gamma di carichi di lavoro, incluse applicazioni per Big Data.

Glacier

A differenza del servizio di Amazon S3 rappresenta una soluzione low-cost adatta alla memorizzazione di ciò che riguarda le funzioni di backup. Sicuramente è un servizio ottimo per gli ambienti di rete aziendale, ma può essere usato anche per uso personale al posto di altri servizi come ad esempio Dropbox, l’importante è capirne bene le differenze e controllare la tabella dei costi. Questo servizio è stato studiato per la memorizzazione di informazioni che normalmente non devono essere scaricate, se non per problemi di recupero. Se usato in questa maniera, i prezzi sono molto vantaggiosi e il costo è molto più basso rispetto ad S3, il quale è ottimizzato per la pubblicazione dei contenuti e non solo per la loro memorizzazione.

Storage Gateway

Questo servizio permette di installare nella propria rete locale un software che si occupa della copia fisica dei dischi collegati ai server locali nell’ambiente di storage su S3. Se si dovesse guastare un disco, possiamo ripristinarlo velocemente dal servizio di Amazon S3 e riavviare il sistema al suo funzionamento normale. Se invece dovessimo avere un guasto, possiamo avviare delle istanze su EC2 e ripristinare gli snapshot EBS, almeno fino al ripristino normale.

Database

Cloud & Database

RDS

Un servizio web che offre la gestione completa di un database relazionale come MySQL, Oracle, Microsoft SQL, etc e con cui è possibile integrare gli altri servizi AWS, oltre alla semplificazione delle attività di backup, ridimensionamento e patching. Con questo servizio non dobbiamo installare e configurare un software di database sulle nostre istanze EC2 e non dobbiamo preoccuparci dell’allineamento dei dati e tanto meno della scalabilità. Tutti questi aspetti verranno gestiti automaticamente dal servizio di Amazon RDS.

DynamoDB

Questo servizio permette la gestione completa di un database NoSQL in un’ambiente di cloud computing. Un binomio eccezionale per la scalabilità e l’eliminazione di alcuni limiti presenti nei database relazionali. Questo servizio nasce dopo 15 anni di esperienza con SimpleDB e Dynamo usati nel sito di Amazon.com, i quali avevano comunque dei limiti sulla dimensione del dataset. Il servizio di DynamoDB non avrà limiti di dimensione e replicherà automaticamente i dati su tre data center. Il servizio ci svincola anche dalle problematiche di backup e recovery.

ElastiCache

Con questo servizio possiamo gestire in maniera semplice una funzionalità complessa come un cluster di caching RAM. Questo servizio è completamente compatibile con Memcached. Infatti su un cluster Memcached bisogna affrontare dei passaggi sistemistici abbastanza complessi, oltre al fatto che viene richiesta molta manutenzione di controllo e verifica in generale. Con il servizio di Amazon ElastiCache tutta questa gestione diventa molto più semplice e incredibilmente scalabile. Si possono generare con pochi click server di cache con oltre 200G di RAM disponibile.

Redshift

Con questo servizio possiamo crearci in pochissimi minuti un sistema di data warehouse ed eseguire tutte le query SQL di database che necessitiamo. Con questa soluzione si possono abbattere i costi iniziali di un sistema data warehouse ed evitare le complessità legate a questa tipologia di soluzione. Infatti utilizzando il servizio di Redshift possiamo pensare solo alla memorizzazione dei nostri dati e non preoccuparci della complessità legata alla struttura hardware e alle problematiche di mantenimento di una infrastruttura costosissima.

Networking & Content Delivery

Cloud & Networking

VPC

Un collegamento sicuro tra l’infrastruttura di un’impresa e la nube AWS. Amazon VPC permette alle aziende di connettere le proprie reti alle risorse su Amazon Web Services attraverso la VPN (virtual private network), così da poter espandere le funzioni tramite la tecnologia cloud. Ad esempio potremmo demandare alcune funzioni di elaborazione molto pesanti a dei server avviati nel cloud, che comunque saranno raggiungibili solo dalla nostra rete interna e accessibili solamente dagli account dell’azienda.

CloudFront

CloudFront è un servizio web per il “content delivery” cioè la distribuzione di contenuto statico o in streaming ad alta velocità e con bassa latenza. La configurazione è molto semplice dato che il servizio è collegato ad Amazon S3, infatti basta associare la risorsa di un buckets a CloudFront e automaticamente la risorsa sarà replicata nei diversi “edge point” sparsi nel mondo, i quali verranno utilizzati per far fronte alle richieste che si troveranno più vicine.

Direct Connect

Sappiamo benissimo che uno dei punti deboli per il cloud in azienda, specialmente in Italia, è il collegamento e la banda internet, infatti i servizi di Amazon vengono molto apprezzati quando si tratta di risorse pubbliche mentre vengono visti più problematici quando bisogna implementare una rete privata con collegamenti VPN in cloud. Per le aziende che necessitano di un collegamento sicuro è possibile creare una linea diretta tra l’azienda e il data center di Amazon più vicino, senza passare per internet.

Route 53

Route 53 è un servizio DNS veloce ed affidabile per poter gestire la rete aziendale o le risorse presenti in Amazon Web Services come Amazon EC2 o S3. Con questo servizio potete gestire un numero illimitato di domini ed usare anche delle feature di Load Balancing, utilizzando la tecnica del Weighted Resource Record Sets. Ovviamente potete usare questo servizio anche per una rete privata o per la gestione di domini che avete presso altri register. Sono previste anche le opzioni avanzate di controllo Health Check e la possibilità di comprare o trasferire domini.

Migration

Data migration

Application Discovery Service

Questo servizio aiuta i responsabili di sistema a pianificare in modo rapido la migrazione delle applicazioni identificando automaticamente le applicazioni in esecuzione nei data center locali, nonché le dipendenze e i profili prestazionali. Queste informazioni vengono conservate previa crittografia nel database di AWS Application Discovery Service, che è possibile esportare come file CSV o XML per utilizzarlo su diverse soluzioni di migrazione cloud.

DMS (migrazione)

Database Migration Service aiuta a migrare un database in modo semplice. Il database di origine resterà operativo anche durante la migrazione, questo per ridurre al minimo le interruzioni delle applicazioni che lo utilizzano. Database Migration Service consente di migrare i dati da e verso la maggior parte dei database commerciali e open source più utilizzati. Il servizio supporta sia migrazioni omogenee, ad esempio da Oracle a Oracle, sia migrazioni eterogenee tra diverse piattaforme di database, ad esempio da Oracle ad Aurora o da Microsoft SQL Server a MySQL.

Server Migration

AWS Server Migration Service (SMS) è un servizio agentless che semplifica e velocizza la migrazione di migliaia di carichi di lavoro locali in AWS. Questo servizio consente di automatizzare, programmare e monitorare repliche incrementali di volumi di server attivi, rendendo molto più facile coordinare migrazioni di server su larga scala.

Snowball

Questo particolare servizio permette di spostare in ambiente di cloud grandi quantità di dati usando un componente hardware messo a disposizione da Amazon invece della banda internet. Ogni appliance può contenere 50 terabyte di dati ed è possibile richiederne anche diverse per eseguire un backup in modalità parallela. Possiamo ridurre diversi giorni di trasferimento internet in operazioni di 48 ore e seguire tutto il processo di ordine, spedizione e ripristino tramite management console.

Developer Tools

Cloud developer

CodeStar

CodeStar permette di sviluppare, creare build e distribuire applicazioni in AWS. Questo servizio offre un’interfaccia utente unificata che semplifica la gestione delle attività di sviluppo. Con AWS CodeStar, è possibile impostare una toolchain di distribuzione continua in pochi minuti, tramite la quale velocizzare la distribuzione di codice. AWS CodeStar semplifica la collaborazione del team di sviluppo e potenzia la sicurezza, poiché consente di gestire gli accessi con la massima semplicità e impostare i titolari di un progetto, nonché chi può modificarlo o solo visualizzarlo.

CodeCommit

CodeCommit è un servizio di controllo del codice sorgente completamente gestito che semplifica l’hosting aziendale di repository Git privati in modo sicuro e altamente scalabile. CodeCommit elimina il bisogno di gestire il tuo sistema di controllo di codice sorgente o di preoccuparti del ridimensionamento della sua infrastruttura CodeCommit fornisce capacità di storage, ad esempio di codice sorgente e codice binario, e si integra perfettamente con gli strumenti Git esistenti.

CodeBuild

CodeBuild è un servizio autogestito per la compilazione di codice sorgente, esecuzione di test e produzione di pacchetti software pronti al deploy. Con questo servizio non è necessario configurare e gestire server per nessun livello di potenza necessaria. Con questo servizio i processi vengono eseguito in parallelo e la scalabilità necessaria è gestita direttamente da Amazon producendo un risultato sempre performante.

CodeDeploy

Questo servizio consente di automatizzare il deploy di un’applicazione presente su delle istanze EC2. AWS CodeDeploy semplifica e rende più veloce il rilascio delle nuove funzionalità, consente di evitare tempi di inattività durante la distribuzione, nonché di gestire la complessità legata all’aggiornamento delle applicazioni. È possibile utilizzare questo servizio per automatizzare le distribuzioni, eliminando le operazioni manuali, soggette a errori, e la gestione della scalabilità in modo da utilizzare la stessa tecnica di distribuzione software ad una istanza o a migliaia.

CodePipeline

CodePipeline è un servizio di distribuzione continua per aggiornare delle applicazioni in modo rapido e affidabile. CodePipeline crea, esegue il testing e distribuisce il codice ogni volta che viene modificato, in base a modelli e processi personalizzati configurati dall’utente. Questo ti permette di distribuire in modo rapido e affidabile funzionalità e aggiornamenti. È possibile creare una soluzione completa con la massima semplicità impiegando i plug-in preinstallati di servizi di terze parti quali GitHub.

X-Ray

Il servizio aiuta gli sviluppatori ad analizzare ed eseguire il debug della produzione e delle applicazioni distribuite come quelle create con un’architettura di microservizi. Con X-Ray puoi identificare le prestazioni della tua applicazione e dei relativi servizi per individuare e risolvere la causa di origine di problemi ed errori di performance.

Management Tools

Cloud & Developer

CloudWatch

Uno degli aspetti fondamentali da tenere sotto controllo dopo aver sviluppato un’applicazione o un servizio web è quella di controllare le performance tramite un monitoring, non solo per quello che riguarda l’utilizzo dei dischi o della CPU, ma per molti altri parametri. Amazon CloudWatch è la soluzione di monitoring e allarmistica di Amazon Web Services. L’utilizzo di Simple Notification Service (SNS) permette l’invio degli allarmi tramite diversi supporti che possono essere attivati al raggiungimento di una soglia prestabilita, quindi essere avvisati immediatamente.

CloudFormation

Con Clouformation è possibile creare dei template con una struttura JSON che permettono la creazione di configurazioni predefinite, le quali possono essere usate per avviare e configurare delle risorse AWS che servono ad un’applicazione. Ad esempio potremmo preparare una template che configuri la partenza di una nuova istanza con un sistema operativo, decidere i software da installare e avviare dei servizi aggiuntivi. Ad oggi sono presenti diversi template per configurazioni di ogni tipo, ad esempio template per WordPress, Drupal e Joomla.

CloudTrail

AWS CloudTrail è un servizio che registra tutte le chiamate API generate da qualsiasi sorgente come console o applicazioni e scrive dei file di log. Vengono registrate le chiamante, l’ora delle chiamate, l’indirizzo IP di origine, i parametri di richiesta e gli elementi di risposta restituiti dal servizio AWS. Lo storico delle chiamata AWS API prodotto da CloudTrail consente un’analisi completa riguardo la sicurezza e di tracciare il cambiamento delle risorse AWS.

Config

Questo è un servizio che fornisce un inventario delle nostre risorse, elenca la cronologia delle configurazioni e le notifiche di qualsiasi modifica. Con Config è possibile scoprire le risorse esistenti, esportare un inventario con tutti i dettagli di configurazione e determinare sempre come e quando una risorsa è stata configurata in un qualsiasi periodo di tempo.

OpsWorks

OpsWorks è un servizio di gestione delle applicazioni creato per agevolare chi utilizza un modello di sviluppo DevOps, ulteriori info su wikipedia. OpsWorks può scalare in maniera automatica l’applicazione e mantenere in salute l’infrastruttura sostituendo le istanze che si bloccano. OpsWorks a differenza di Beanstalk offre maggiore flessibilità e controllo, consentendo di personalizzare i tipi di server e servizi impiegati.

Service Catalog

Service Catalog permette alle organizzazioni di creare e gestire cataloghi di servizi IT approvati per l’uso in AWS. Tali servizi IT possono includere di tutto, da immagini di macchine virtuali, server, software e database a intere architetture per applicazioni multi livello. Il servizio permette di controllare i servizi IT disponibili e le relative versioni, la configurazione dei servizi disponibili e l’accesso tramite permessi da parte di individui, gruppi, reparti o centri di costo.

Trusted Advisor

Con questo servizio è come avere un esperto di cloud personale, ti aiuta a migliorare le risorse seguendo delle best practice. Ispeziona l’ambiente AWS e trova le opportunità per risparmiare, migliorare le prestazioni e l’affidabilità del sistema, o contribuire a colmare le lacune di sicurezza. Dal 2013, i clienti che lo usano hanno ottenuto oltre 1,7 milioni di raccomandazioni e realizzato più di $300 milioni di riduzione sui costi.

Managed Services

Automatizza attività frequenti quali richieste di modifica, monitoraggio, gestione di patch, sicurezza e backup, nonché fornisce servizi completi per il ciclo di vita per gestire provisioning, esecuzione e supporto dell’infrastruttura. AWS Managed Services migliora l’agilità, riduce i costi e solleva dai compiti manuali per la gestione dell’infrastruttura che in genere distolgono preziose risorse dal core business.

Security & Identify

Cloud & Sicurezza

IAM

Tramite questo servizio è possibile controllare e gestire in maniera sicura l’accesso ai servizi e alle risorse AWS da parte dei propri utenti. Usando IAM è possibile creare e gestire utenti e gruppi e utilizzare le autorizzazioni per consentire e/o negare gli accessi alle risorse. Il servizio IAM permette anche l’integrazione con gli utenti esistenti nella propria rete aziendale, inoltre mette a disposizione una serie di API per la personalizzazione e la gestione delle autorizzazioni tramite dei programmi procedurali, sarà possibile gestire utenti, ruoli, permessi e credenziali.

Inspector

Amazon Inspector è un servizio di sicurezza automatizzato che aiuta a migliorare la sicurezza di un sistema e la conformità delle applicazioni distribuite in AWS. Amazon Inspector esamina le applicazioni in cerca di vulnerabilità o divergenze dalle best practice. Dopo aver eseguito un esame, Amazon Inspector fornisce un elenco dettagliato con i risultati della valutazione, ordinati secondo il livello di gravità.

Certificate Manager

Certificate Manager è un servizio che semplifica l’acquisto e la gestione di certificati SSL per l’uso con i servizi AWS. I certificati SSL/TLS vengono utilizzati per proteggere le comunicazioni di rete e stabilire l’identità dei siti Web via Internet. Puoi richiedere rapidamente un certificato, distribuirlo su AWS come i sistemi di bilanciamento del carico Elastic Load Balancing o le distribuzioni Amazon CloudFront e consentire ad AWS Certificate Manager di gestire il rinnovo dei certificati.

Directory Service

Questo servizio consente di collegare le risorse su AWS tra un’ambiente on-premise di Microsoft Active Directory e uno stand-alone presente nel cloud. La connessione a una directory locale è semplice, e una volta stabilita la connessione, tutti gli utenti possono accedere alle risorse e alle applicazioni tramite le credenziali esistenti. È anche possibile lanciare delle directory basate e gestite su Samba in pochi minuti, rendendo più semplice la gestione dei carichi di lavoro di Windows utilizzando il cloud Amazon.

WAF & Shield

WAF è un firewall che aiuta a proteggere le applicazioni Web dagli exploit che possono intaccare la disponibilità delle applicazioni, compromettere la sicurezza o consumare risorse non autorizzate. Tramite il servizio di WAF è possibile selezionare regole di sicurezza personalizzate che permettono di definire il traffico consentito. Mentre la parte che riguarda Shield si occupa dei problemi legati ai DDoS.

Analytics

Cloud & Analytics

Athena

Questo servizio permette di interrogare gli oggetti presenti in un bucket S3 con un linguaggio compatibile SQL. In questo modo si evitano tutti quei complessi script che siamo costretti molte volte a scrivere per gestire gli oggetti presenti in S3. Athena è un servizio serverless e non necessita di nessuna infrastruttura per l’esecuzione delle query che verranno eseguite da un sistema batch presente in Amazon AWS.

Elastic MapReduce

MapReduce è un framework introdotto da Google per la computazione distribuita su grandi quantità di dati in cluster di computer. Il nodo Map() prende la richiesta del problema e l’algoritmo di risoluzione, lo suddivide in tanti sotto-problemi differenti e li distribuisce a nodi diversi. Il nodo Reduce() prende le risposte di tutti i sotto-problemi e prepara la risposta. In Amazon è possibile sperimentare questa tecnica con tutti i nodi di cui abbiamo bisogno e testare la velocità del nostro algoritmo di risoluzione.

CloudSearch

Questo servizio permette agli utenti di ricercare contenuti all’interno di applicazioni o siti web in modo rapido ed efficace. La tecnologia CloudSearch è la stessa utilizzata da Amazon.com per le ricerche legate ai prodotti, il servizio cerca di rendere gli sviluppatori, che desiderano integrare la ricerca nei loro siti, svincolati dalle logiche dei motori di ricerca pubblici. Utilizzando questo servizio, gli sviluppatori potranno creare un proprio dominio di ricerca e memorizzare tutte le informazioni in un database e personalizzare tutte le query di ricerca con la lista dei risultati.

Elasticsearch Service

Elasticsearch è un servizio gestito che semplifica distribuzione, funzionamento e ridimensionamento di Elasticsearch nel cloud AWS. Elasticsearch è un noto motore di ricerca e analisi open source, ideale per processi analitici, monitoraggio in tempo reale di applicazioni e analisi dei dati di clickstream. Tramite la Console di gestione, è possibile impostare e configurare il cluster Amazon Elasticsearch in pochi minuti.

Kinesis

Questo è un servizio completamente gestito per l’elaborazione in tempo reale dei dati in streaming su grande scala. Kinesis può continuamente catturare e memorizzare terabyte di dati provenienti da centinaia di migliaia di fonti, come ad esempio, siti web, transazioni finanziarie, social media etc, etc. Con Kinesis Client Library (KCL), è possibile costruire applicazioni e utilizzare dati in streaming per alimentare dashboard in tempo reale, generare avvisi, implementare dinamiche per prezzi e pubblicità.

Data Pipeline

Questo è un servizio che consente di elaborare e movimentare dati tra i diversi servizi AWS e da fonti di dati on-premise a intervalli specifici. Con Data Pipeline è possibile accedere ai propri dati, trasformarli, elaborarli e trasferire poi il risultato ai vari servizi: Amazon S3, RDS, DynamoDB o MapReduce. Con Data Pipeline, è possibile definire flussi di lavoro basati sui dati in modo che le attività correnti dipendano dal completamento delle attività precedenti.

Quicksight

Quicksight è il servizio di Amazon per il Business Intelligence, è possibile importare i dati da analizzare da diverse fonti, come ad esempio Redshift, Amazon RDS, Amazon S3, Fonti di terzi, file CSV, e molto altro. Una volta che i dati saranno acquisiti verranno elaborati da un motore molto potente chiamato SPICE il quale permetterà di ottenere i risultati in formato grafico con pochi secondi di elaborazione anche su molti dati.

Intelligenza artificiale

Intelligenza artificiale

Lex

Lex è un nuovo servizio di Amazon AWS per la creazione e la scrittura di un BOT per la gestione automatica di conversazioni usando sia testo che voce. Lo strumento è stato ideato per aiutare tutti gli sviluppatori ad integrare in modo semplice e veloce questi complessi algoritmi sulle loro applicazioni sia in ambiente desktop che mobile.

Polly

Con Amazon Polly è possibile tradurre un testo scritto in un file vocale che utilizzerà un linguaggio di tipo parlato, quindi non sarà solo una traduzione in voce ma sarà una vera interpretazione del testo che lo renderà una voce parlata reale. Nella console di questo servizio troverete diversi esempi con cui iniziare a fare delle prove generali.

Rekognition

Amazon Rekognition è un servizio di riconoscimento automatico legato alle immagini utilizzando diversi algoritmi di intelligenza artificiale. L’uso del servizio è semplicissimo e rimarrete sorpresi dalla facilità con cui è possibile utilizzarlo. Basta memorizzare una immagine su un bucket S3 richiamare un API e leggere il risultato in formato JSON.

Machine Learning

Amazon Machine Learning è un servizio che consente agli sviluppatori con qualsiasi livello di competenza di utilizzare la nuovissima tecnologia Machine Learning in tutta semplicità. Questo servizio offre strumenti di visualizzazione e procedure guidate che ti aiutano a completare il processo di creazione di modelli di Machine Learning (ML) senza dover apprendere tecnologie e algoritmi ML complessi.

Internet of Things

Internet of things

AWS IoT

Il servizio chiamato AWS IoT è una piattaforma che consente a dispositivi connessi di interagire in modo semplice e sicuro con applicazioni nel cloud e altri dispositivi. AWS IoT è in grado di supportare miliardi di dispositivi e migliaia di miliardi di messaggi, ed è in grado di elaborare e instradare tali messaggi agli endpoint di AWS e ad altri dispositivi in modo sicuro e affidabile.

Greengrass

È un software che ti consente di eseguire calcoli, messaggistica e caching dei dati a livello locale per i dispositivi. Con Greengrass, i dispositivi connessi possono eseguire funzioni AWS Lambda, mantenere sincronizzati i dati dei dispositivi e comunicare in maniera sicura con altri dispositivi, anche quando non connessi a Internet.

Pulsante AWS IoT

È un pulsante programmabile basato sull’hardware di Amazon Dash Button. Si tratta di un singolo dispositivo WI-FI semplice da configurare e progettato per consentire agli sviluppatori di iniziare a usare AWS IoT, AWS Lambda, Amazon DynamoDB, Amazon SNS e molti altri servizi di Amazon Web Services senza dover scrivere codice specifico.

Game Development

Videogames

GameLift

Amazon GameLift è un nuovo servizio che consente di distribuire, gestire e ricalibrare videogiochi multi-giocatore basati su sessioni riducendo da migliaia di ore a pochi minuti la quantità di tempo necessaria per creare back-end multi-giocatore. Disponibile per gli sviluppatori che utilizzano Lumberyard, GameLift è costruito su un’infrastruttura cloud che consente di espandere o ridurre rapidamente le capacità dei server dei giochi in base alla domanda, senza necessità di sostenere ulteriori costi di programmazione.

Lumberyard

I giochi multi-giocatore creati con Lumberyard, un motore di giochi 3D multipiattaforma gratuito e integrato con Amazon AWS e Twitch, sono pronti per l’utilizzo con il servizio di Amazon GameLift, il che riduce i rischi tecnici che spesso spingono i programmatori a eliminare le funzioni multi-giocatore basate sul cloud dai propri progetti.

Mobile Services

Cloud & Mobile

Mobile HUB

Il servizio di Mobile Hub consente di aggiungere con semplicità nuove caratteristiche alle tue applicazioni per dispositivi mobili, ad esempio autenticazione, storage dei dati, logica di back-end, notifiche push, distribuzione di contenuti e analisi. Dopo aver creato l’applicazione, con Mobile Hub potrai testarla su dispositivi reali usando pannelli di controllo che consentono di monitorare l’utilizzo dell’applicazione.

Cognito

Amazon Cognito semplifica il salvataggio dei dati degli utenti, come le preferenze delle app o lo stato attuale di un gioco. È possibile fare tutto senza scrivere codice backend e senza gestire una infrastruttura complessa. È possibile salvare i dati dell’utente in locale in modo che le applicazioni funzionino anche quando questi non sono in linea.

Device Farm

Il servizio di Device Farm permette di migliorare la qualità delle tue app iOS, Android e Web testandole su dispositivi mobili reali nel cloud AWS. A differenza degli emulatori, i dispositivi fisici forniscono informazioni molto dettagliate sulle modalità di interazione degli utenti con l’app, perché consentono di tenere in considerazione altri fattori come la memoria, l’utilizzo della CPU e molte altre caratteristiche.

Mobile Analytics

Con questo servizio è possibile raccogliere, visualizzare e comprendere i dati di utilizzo di un’applicazione su larga scala. Molte soluzioni di analisi legate alle app mobili danno le statistiche dopo diverse ore  dal verificarsi degli eventi. Questo servizio è progettato per fornire un report completo dopo solo 60 minuti dalla ricezione dei dati.

Pinpoint

Con questo servizio si potranno gestire facilmente le campagne in ambiente mobile definendo il target degli utenti, i messaggi da inviare e molto altro. Amazon Pinpoint ti può aiutare a determinare a chi mandare le notifiche push e decidere quando mandarle, tutto con un sistema integrato che consentirà di controllare i risultati delle campagne.

Application Services

Cloud & Services

Step Functions

Con questo servizio è possibile gestire l’esecuzione del proprio codice e/o micro servizi utilizzando un visual workflow. È possibile aggiungere o rimuovere degli step senza la necessità di riscrivere il codice sorgente. Il servizio genererà un log per ogni stato dello step, in questo modo sarà più semplice la ricerca di un’eventuale bug.

SWF

Tramite questo servizio è possibile creare un controllore di flusso per coordinare l’esecuzione di vari task secondo una logica predefinita in ambiente cloud. Questa particolarità permette il risparmio sulla scrittura di codice che dovrebbe tenere sotto controllo tutte le fasi di un workflow che però è gestito da diverse macchine e diversi ambienti di elaborazione. Il servizio di Simple Workflow si prende carico di questa complessità e deciderà automaticamente i task da elaborare in base alle singole risposte di ogni singola unità di elaborazione.

API Gateway

API Gateway è un servizio completamente gestito che semplifica agli sviluppatori la creazione, la pubblicazione, la manutenzione, il monitoraggio e la protezione delle API su qualsiasi scala. Bastano pochi clic sulla Console di gestione AWS per creare un’API che agisca come porta d’entrata attraverso la quale le applicazioni possono accedere a dati, logica di business o funzionalità dei servizi di back-end.

Elastic Transcoder

Amazon Elastic Transcoder è un servizio che permette la conversione video, non è un servizio adatto alla conversione di filmati personali, che possiamo fare con un qualsiasi software installato sul PC, qui parliamo di sviluppare un’applicazione capace di convertire in diversi formati un video di input. Questa particolarità renderebbe semplice la visualizzazione di un video memorizzato nel cloud tra differenti device come ad esempio smartphones, tablets e PCs.

Messaging

Messaging

SQS

Amazon SQS è uno dei primissimi servizi rilasciati da Amazon che permette tramite delle code messaggi presenti su uno o più server la distribuzione delle operazioni e quindi del carico di lavoro. Ad esempio potremmo avere un server che analizza una pagina web ed inserisce in una coda dati i riferimenti a tutte le immagini presenti in questa pagina, la coda viene analizzate da una serie di altri server che possono dividersi il carico di lavoro e marcare alla conclusione il messaggio come elaborato.

SNS

Questo servizio è un componente molto importante dei servizi AWS e permette la notifica dei messaggi tramite diversi supporti. E’ stato aggiunto il supporto SMS mentre sono attivi da tempo Email, code dati e messaggistica HTTP/HTTPS. Recapita i messaggi alle applicazioni o agli utenti eliminando il polling nelle app. Invia messaggi a singoli dispositivi o collettivamente a più destinazioni.

SES

Questo servizio permette l’invio di email tramite l’infrastruttura, senza la necessità di server o postazioni dedicate. Questo è sicuramente un servizio dedicato alle aziende che devono fare azioni di Marketing tramite posta elettronica o devono gestire grandi mailing list. Chi utilizza il servizio EC2 può usufruire di 2000 email gratuite al giorno.

Business Productivity

Cloud & Enterprise

WorkDocs

Questo servizio è una soluzione di storage documentale che aggiunge anche funzioni di collaborazione tra i diversi utenti dell’azienda. Una volta memorizzati i documenti in questo servizio è possibile consultarli da diverse piattaforme. Infatti, oltre alla classica applicazione web, possiamo utilizzare tutti i device Android e iOS.

WorkMail

Tramite WorkMail è possibile gestire un’ambiente completo di posta elettronica con la gestione di un calendario e dei contatti. Il servizio di Amazon WorkMail è compatibile con il protocollo standard della Microsoft ed è possibile utilizzarlo con il noto client di Outlook. È possibile integrare il servizio anche con le applicazioni standard di posta elettronica presenti nei device iOS, Android e Microsoft Windows Phone.

Connect

È un servizio di call center autogestito basato sul cloud. Il servizio si basa sulla stessa tecnologia utilizzata dai partner del servizio clienti di Amazon in tutto il mondo per comunicare con milioni di clienti. L’interfaccia grafica autogestita in Amazon Connect permette anche agli utenti meno esperti di creare flussi di contatti, gestire gli agenti e monitorare i parametri prestazionali.

Chime

È possibile utilizzare Amazon Chime per riunioni online, videoconferenze, chiamate, chat e condividere contenuti, sia all’interno che all’esterno dell’organizzazione. Amazon Chime ti permette di lavorare in modo produttivo da qualsiasi luogo. Tutte le tue comunicazioni sono crittografate, la cronologia chat non è mai memorizzata sui tuoi dispositivi e puoi limitare le tue riunioni per verificare chi partecipa.

Desktop & App Streaming

Desktop

WorkSpaces

Questo servizio è una valida alternativa alle strutture basate su VDI (Virtual Desktop), infatti mette a disposizione un’ambiente completo di desktop in cloud dove è possibile scegliere diversi tipi di configurazione. Amazon WorkSpaces supporta anche l’utilizzo del servizio active directory della Microsoft per l’autenticazione degli utenti.

AppStream 2.0

Amazon AppStream 2.0 è un servizio di streaming per le applicazioni, che fornisce agli utenti un accesso immediato alle loro applicazioni desktop da qualsiasi luogo e su qualsiasi dispositivo. Il servizio di Amazon AppStream 2.0 semplifica la gestione, migliora la sicurezza e riduce i costi spostando le applicazioni di una società dai dispositivi fisici dei propri utenti al Cloud AWS.