AWS: un’introduzione

Di - 11 December 2012 - in
Post image for AWS: un’introduzione

Tutti conosciamo Amazon attraverso il suo business originale e principale: la vendita di libri online. Amazon nacque nel 1996, subito prima dell’esplosione del Web, come negozio di libri. Trovandosi tra i pionieri del commercio elettronico, Amazon scelse una strategia completamente diversa da quella delle altre web company, crescendo molto lentamente, e in parte andando quasi in perdita, nei suoi primi anni di vita.

Questo le permise di sopravvivere senza alcuna conseguenza allo scoppio della bolla speculativa sulle dot-com, rendendola di fatto l’unica azienda nata in quegli anni ad essere tutt’ora in ottima salute. Trovandosi senza una seria concorrenza, quindi, ha iniziato ad allargare il suo business sia cominciando a vendere prodotti che non fossero libri, sia aprendo filiali in tutto il mondo, Italia compresa.

Amazon non è però solo una piattaforma di commercio: gli sviluppatori e le grandi aziende la conoscono anche, e forse soprattutto, per Amazon Web Services, nota anche come AWS, un’infrastruttura molto vasta che fornisce servizi ed API per moltissimi utilizzi pratici.

Vediamo come è arrivata ad un business cosí diverso da quello originario. Nei primi anni 2000 Amazon, pioniera anche in questo, ha introdotto il meccanismo degli Associate. Un Associate è una persona, o un’azienda, che tramite il proprio sito web pubblicizza prodotti venduti su Amazon, ottenendo in cambio una commissione sul venduto. Ad esempio, se sul mio sito web parlo di libri, posso inserire in ogni scheda di un libro un link “acquista su Amazon”, ricevendo una commissione sulle vendite dei libri fatte attraverso quel link.

Per far funzionare questo meccanismo, che è stato ed è una fonte di pubblicità molto grande per Amazon, l’azienda ha dovuto costruire un sistema di API (ovvero interfacce per far parlare software tra loro, in questo caso siti terzi con Amazon) abbastanza articolato, che ha dato vita nel 2002 al nucleo di AWS.

Ben presto in Amazon ci si accorse si avere a disposizione, grazie ad una lunga esperienza ed una grande cura nella progettazione, una rete di macchine molto vasta e ben strutturata, che avrebbe potuto essere utilizzata per qualcosa che fosse piú legato ad AWS che al commercio. Nel 2006, dunque, in seguito ad alcuni paper interni sull’argomento, uscí la prima beta dell’Amazon Elastic Compute Cloud, divenuta stabile due anni dopo, e piú nota come EC2.

Prodotto davvero sorprendente per un’azienda che fino a quel momento aveva fatto tutt’altro, EC2 è tra i primi sistemi di cloud computing seriamente interessanti, riuscendo a porsi in diretta concorrenza con aziende piú giovani ma che si erano sempre occupate di cloud, come Akamai Technologies, e a farsi rincorrere da aziende con una rete molto piú vasta e complessa, come Google.

EC2 permette di creare macchine virtuali su una cloud, completamente controllabili tramite API, collegabili tra loro e di dimensioni differenti a seconda delle esigenze, pagando in base al tempo di utilizzo. Un sistema di questo tipo permette sia di creare reti per sistemi di calcolo, sia (ed è probabilmente l’utilizzo principale) siti e sistemi web molto grandi, richiedenti un gran numero di macchine e di architetture complesse per il bilanciamento del carico, difficile da costruire fisicamente. La struttura è molto sicura e robusta, al punto che lo stesso sito web di Amazon è stato completamente spostato su EC2 nel 2010.

 

Contemporaneamente, veniva creato, e reso stabile già nel 2006, l’Amazon Simple Storage Service, o semplicemente S3, che può essere considerato il primissimo servizio di casa Amazon in questo campo, e che come suggerisce il nome è un semplice sistema di memorizzazione di file su cloud. Sempre controllabile via API, S3 permette di creare dei contenitori di file detti bucket (secchi), e di inserirci file, chiamati oggetti. Gli oggetti possono venire poi scaricati via HTTP o Bittorrent. Tramite una gestione appropriata dei record DNS di un dominio, è possibile ospitare un sito web statico in un bucket S3, appoggiandosi cosí alla robusta struttura di Amazon per contenuti che devono essere scaricati da troppe persone per essere rette da altri sistemi. Il pagamento viene effettuato sia in base allo spazio occupato che in base alla banda utilizzata in download.

Il terzo servizio di grande importanza è Amazon CloudFront. Si tratta di una content delivery network, che permette di ospitare file troppo grandi e pesanti a livello di banda (video, ad esempio) per essere scaricati da un unico server da parte degli utenti. Tali file saranno replicati su moltissimi server sparsi per il mondo, e resi disponibili a chi vuole scaricarli in modo da ottenerli sempre dal server piú vicino.

A questi tre grandi servizi se ne sono aggiunti, nel tempo, moltissimi altri, che vanno dalle basi dati, ai servizi di cloud storage variabili in base alle diverse necessità, passando per i servizi utili al business di Amazon, come i sistemi di pagamento o di ricerca. Diversi di questi servizi, dietro le quinte, si appoggiano ad almeno uno dei tre qui descritti.

Particolare interesse merita forse l’Amazon Mechanical Turk, essendo un vero e proprio sito web, orientato anche ad utenti finali, completamente basato su AWS, che permette a chi necessita di svolgere un compito ripetitivo e non fattibile da macchine (classificare parole per campo semantico, ad esempio) di farlo fare ad una grande quantità di persone, in modo che vada fatto poche volte a persona, offrendo un pagamento per ogni compito effettuato. Chiunque (sottostando a determinate regole) può scegliere un compito da fare e svolgerlo, venendo pagato. Si tratta di uno dei piú diffusi sistemi di crowdsourcing. L’idea dunque è quella di creare un sistema che lato sviluppatore si comporti come un’intelligenza artificiale, mentre in realtà è generato da moltissime intelligenze “biologiche” (da qui il motto artificial artificial intelligence) Per chi fosse curioso, il nome viene dal turco meccanico, un finto automa per giocare a scacchi.

AWS è ancora una piattaforma in grande crescita, e riesce ad essere uno dei leader del settore, al fianco di aziende che hanno i servizi cloud come core business. Questo blog cercherà di seguire proprio l’evoluzione di questi servizi, che rappresentano uno dei piú interessanti laboratori di evoluzione del computing su web.

Leave a Reply

Lorenzo Breda Articolo scritto da

Studente di Informatica a Roma, si occupa di programmazione web sopratutto lato server, e di accessibilità del web. Utilizza e ama Debian GNU/Linux, e si interessa di fisica, fumetto, trekking e fotografia (gli ultimi due possibilmente abbinati).
Collabora con Googlab da aprile 2012.

Contatta l'autore

Previous post:

Next post: