Un potente pc a noleggio, ecco quale potrebbe essere l’uso di un server virtuale.
Utilizzarlo per un picco di lavoro, durante il quale una elaborazione di machine learning vi richiede, per celerità di esecuzione, magari 32 GB di RAM, è una buona opzione in termini di costi/benefici.
Quindi, fra le varie possibilità di PVS (private virtual server) vediamo la proposta di Amazon. Al fine di familiarizzare con i prodotto, immaginiamo l’attivazione di una macchina gratuita (dalle prestazioni ben modeste), solo per prova.
Altre soluzioni posso essere fornite da Aruba (con prova gratis per 60 giorni) o il famosissimo digital ocean (solamente per fare chiarezza, per chi venisse da digital ocenan: una droplet di digital ocean corrisponde ad una istance di EC2, cioè un server virtuale in linguaggio comune).
I passi base per la creazione
Dopo la registrazione in Amazon, si passa all’attivazione.
Fra i circa 60 servizi offerti in Amazon Web Services, scegliamo il primo: EC2.
Nella pagina di EC2, clicchiamo su launch.
Fra le “Free tier eligible” possiamo scegliere Ubuntu Server 14.04 LTS (HVM), SSD Volume Type – ami-9abea4fb
Il passo 2 è obbligato: solo una configurazione è possibile gratuitamente, con 1 GB di RAM.
Al passo 3 permette di lanciare più serve al medesimo tempo (Number of instances), define Spot instances, cioè la possibilità di avere una macchina in funzione, in base al prezzo che si è disposti a pagare (solitamente molto inferiore al fisso).
Al passo 4 si inserisce l’HD (gratuito fino a 30 GB).
“Step 5: Tag Instance” al passo 5 la possibilità di caratterizzare l’instanza con delle etichette. Ad esempio si può definire il sistema di indirizzamento (se apache o nginx) oppure l’autore o il manutentore dell pvs, se site in un equipe.
Step 6: Configure Security Group
dove sistebiliscono i limiti di accesso al server, per tipologia di accesso (SSH, HTTPS
TCP
443
0.0.0.0/0
Si rivedono i parametri e la scheramta
- di creare un nuovo utente
- sudo useradd -m -s /bin/bash nome_utente
- e di attribuirgli una password
- sudo passwd nome_utente
- password_utente
- sudo passwd nome_utente
- di inserirlo nel gruppo dei sudo
- …
- di accedere come questo utente
- …
- e se serve di uscire
- nome_utente@ip-172-31-30-44:~$ exit
logout
- nome_utente@ip-172-31-30-44:~$ exit
Un esempio d’uso
Dapprima, se vogliamo usare un nome “normale”, intendiamo non usare l’indirizzo IP, ma registrare presso un DNS un dominio e poi farlo puntare al nostro server, dovremo, dalla pagina del registrar (cioè di chi ci ha venduto il noleggio del nome) indicare che il “nostro_dominio.it” deve puntare (campo A) all’IP elastic di Amazon.
Installo nginx
…/etc$ sudo apt-get install nginx
controllo se installato
…/etc$ dpkg -l nginx
La configurazione di nginx si trova nella cartellina /etc/nginx/, all’interno della quale troverete due altre cartelline:
rispettivamente /sites-available/ e /sites-enabled/
Nella prima, solitamente, si mettono i file di configurazione di tutti i siti o servizi che ci interessano, mentre nella seconda si attivano solo quelli che vogliamo effettivamente on line.
Quindi, spostandoci, per comodità nella cartellina /sites-available/ con
$ cd /etc/nginx/sites-available/
possiamo creare il nostro file di configurazione che chiameremo o
/etc/nginx/sites-available$ sudo nano
o completandolo (per ora) con la configurazione di default
server {
listen 80;
server_name superlists-staging.ottg.eu;location / {
proxy_pass http://localhost:8000;
}
}
e fare una copia di sicurezza datata
…/etc/nginx/sites-available$ file_copy=nostro_dominio.it
…/etc/nginx/sites-available$ sudo cp $file_copy $file_copy.$(date “+%Y_%m_%d_%H.%M.%S”)
come vedete tutti comandi dati con il sudo, perché siamo fuori dalla cartellina del nome_utente
a questo punto abilitiamo
…/etc/nginx/sites-available$ SITENAME=nostro_dominio.it
…/etc/nginx/sites-available$ sudo ln -s ../sites-available/$SITENAME \


