Uno sguardo al cloud computing, seconda ed ultima parte
Dopo aver visto una panoramica di quelli che sono i servizi di cloud computing più grandi ed efficienti oggi disponibili è giunto il momento di occuparsi della configurazione ed avvio di un semplice servizio di questo genere servendosi dell’offerta di Amazon.
Naturalmente è necessario comprendere la modularità del servizio stesso quindi possiamo dire che tutto ha inizio con il servizio di storage S3, non vi è limite allo spazio occupato all’interno di questa offerta ne tanto meno limite alla dimensione dei file da “uploadare”.
Proseguiamo con Sqs il quale si prospetta come un comodo servizio di accodamento dei messaggi molto potente e un sistema per lo storage di richieste di calcolo semplice ed efficace.
Questo servizio è pensato per sostituire le transazioni interattive da farsi in tempo reale e garantisce che il messaggio venga recapitato anche se il sistema di destinazione non è in linea avendo la certezza che venga elaborato una ed una sola volta.
Troviamo poi SimpleDB e cioè l’offerta database di Amazon che non si basa su comandi tradizionali ma bensì proprietari, le interrogazioni possono essere eseguite attraverso delle query.
Ogni singolo servizio descritto può essere acquistato separatamente dagli altri ed utilizzato in modo del tutto trasparente da un diverso client situato in ogni parte della rete web.
Un classico utilizzo del servizio S3 ad esempio è l’ampliamento dello spazio garantito con una soluzione di tipo dominio + spazio web per la gestione di file di grandi dimensioni.
Ma come già detto nella precedente parte del post il vero cuore del servizio offerto da Amazon è l’Ec2,è necessario quindi procedere con la scelta di una macchina virtuale già configurata o semplicemente creare una virtualizzazione propria da stoccare all’interno dell’S3 dove sarà possibile farla partire.
Molto interessante la possibilità di costruire macchine differenti, a seconda del lavoro da effettuare, e, dove averle salvate all’interno dell’S3, farne partire una o un’altra a seconda del tipo di elaborazione della quale si necessita in quel determinato instante.
Tutte le macchine già pronte sono delle varianti di Unix che partono dalle più famose distro GNU/Linux fino ad arrivare ad OpenSolaris, tuttavia è possibile installare una istanza di Windows Server il quale però andrebbe virtualizzato all’interno di una macchina virtuale certamente una soluzione scomoda, poco pratica e sicuramente meno performante delle altre visto i due livelli di virtualizzazione necessari.
Le macchine, come già detto prima, sono totalmente personalizzabili, linguaggi e framework sono a completa gestione dell’utente che in questo modo non ha le classiche limitazioni hardware di un server fisico, in questo modo è possibile provare diverse configurazioni o possibilità per effettuare uno studio di fattibilità e scelte architetturali senza spendere capitali.
Tutte le macchine virtuali utilizzate cessano di esistere non appena viene spenta la macchina stessa questo significa che smettono anche di gravare sulla bolletta finale visto che la fatturazione avviene per il reale utilizzo di risorse, se in una ipotetica installazione il traffico di rete, e quindi la mole di lavoro da svolgere, dovesse diventare problematica per una sola macchina è possibile moltiplicare la stessa fino a raggiungere la potenza necessaria a sostenere il carico di lavoro richiesto.
Un caso che di norma viene preso come esempio è quello di Animoto.com, questo è un servizio che permette la creazione di un filmato a partire da più foto.
Se fino a poco tempo prima il sito web era frequentato solo da coloro che vi erano incappati, e quindi sottoposto ad una mole di dati reputata normale, dopo una segnalazione tramite Facebook si è passati da 25.000 utenze in tre giorni a ben 250.000 utenze con circa 20.000 inscrizioni ogni ora con picchi di 25.000 utenze contemporanee per ora.
Una classica soluzione server sarebbe caduta sotto i colpi di un traffico così elevato con conseguente negazione del servizio e perdita di immagine del marchio ma questo non è successo grazie alla tecnologia di Amazon che ha retto con successo dando modo di dormire sonni tranquilli.
E’ venuto perciò il momento di iniziare a lavorare su queste soluzioni web.
Primi passi
Per prima cosa è necessario registrarsi fornendo i propri dati ed il numero di una carta di credito nella quale confluiranno le spese effettuate.
Nella procedura di registrazione verranno creati un certificato ed una chiave crittografica che andranno utilizzate in seguito per accedere ai vari servizi.
Tutto ciò di cui avete bisogno adesso per gestire completamente le vostre risorse è raggiungibile all’indirizzo aws.amazon.com/resouces.
Procediamo con l’installazione, per prima cosa dovrete aprire l’archivio zip, ed una volta spostati i file in una cartella di vostro gradimento, impostare una variabile che punti proprio in quella locazione con il comando:
1 | export EC2_HOME=<percorso> |
ora al posto di “percorso” inserite il reale percorso completo fino alla cartella bin all’interno della cartella precedentemente scelta per contenere tutti i tools necessari concludendo così l’installazione.
Per l’autenticazione tra il codice che ora risiede localmente e quello del data center dovete far riconoscere al precedente i certificati che vi sono stati consegnati precedentemente.
Assumiamo ad esempio che il certificato si chiami “certificato.pem” mentre la chiave “chiave.pem” considerando che la cartella nella quale volete conservare i due file sia /.ec2.
Dovete in questo caso digitare il seguente comando:
1 2 | export EC2_PRIVATE_KEY=~/.ec2/chiave.pem export EC2_CERT=~/.ec2/certificato.pem |
successivamente lanciate il comando:
1 | ec2-add-keypair gsg-keypair > nomefile |
in questo modo creerete una coppia di chiavi per la connessione scritte in un file di testo che avrete chiamato “nomefile”.
Apri aprite il file “nomefile” e cancellate ogni cosa sia scritta prima o dopo le linee che seguono:
1 2 | "-------BEGIN RSA PRIVATE KEY-------" "-------END RSA PRIVATE KEY-------" |
lasciando però intatte le linee appena descritte.
Giriamo la chiave
A questo punto possiamo girare la chiave per avviare la nostra macchina virtuale tramite il comando:
1 | ec2-run-instances ami-codicenumerico -k nomefile |
dove “codicenumerico” sta appunto per una serie di numeri che identificano la macchina (ami) e nomefile è il file con la coppia di chiavi che avete preventivamente elaborato, una volta eseguito l’ordine avrete una risposta del genere:
1 2 | RESERVATION r-2344c79d795084998643 default INSTANCE i-hf8dh7gf ami-codicenumerico pending gsg-keypair 0m1.small 2008-09-03T15:23:45+0000us-east-1° |
la seconda linea in questo caso è l’istanza della nostra macchina virtuale scelta.
Sappiate quindi che la vostra macchina è or completamente avviata ma siete ancora impossibilitati al raggiungimento della stessa in quanto è necessario l’apertura delle porte firewall per eseguire dei comandi dall’esterno digitate quindi il seguente comando:
1 2 | PROMPT> ec2-authorize default -p22 PERMISSION default ALLOWS tcp 22 22 FROM CIDR 0.0.0.0/0 |
ovviamente sarete voi stessi a decidere le porte da aprire secondo le vostre esigenze, in questo caso la porta indicata è la numero 22 che corrisponde al servizio ssh.
E’ il momento di collegarsi
Prima di collegarsi al sistema remoto è necessario scovare il suo hostname quindi digitiamo:
1 2 3 | PROMPT> ec2-describe-instance i-ae0bf0c7 RESERVATION r-2344c79d795084998643 default INSTANCE i-hf8dh7gf ami-codicenumerico ec2-54-354-6-978.compute-1.amazonaws.com |
perfetto, abbiamo il nome, colleghiamoci quindi con:
1 | ssh -i id_rsa-nomefile root@ ec2-54-354-6-978.compute-1.amazonaws.com |
tramite l’autenticazione attraverso certificato ora vi ritroverete catapultati all’interno di una shell con privilegi da amministratore pronti per la gestione della vostra macchina.
Non resta che fare l’upload dei vostri contenuti o procedere con l’installazione delle cose di cui avete bisogno per iniziare a fruire del servizio web di Amazon.
Ciao a tutti.




















