Questo è il mio primo articolo e sono molto emozionato all’idea di pubblicarlo!
Ho deciso di scrivere questa guida con l’intento di essere utile a tutti coloro che desiderano avere a disposizione, senza spendere un euro, un server pubblico per fare esperimenti :D, per far girare LAMP, MEAN o qualsiasi altra cosa si possa fare su di un server linux.

L’unica cosa necessaria è una carta di credito (la postepay o altre ricaricabili vanno benissimo) per poter effettuare l’iscrizione ad AWS (Amazon Web Services)

Attivazione di AWS – Iscrizione ad Amazon

  1. Visitare il sito Amazon AWS
  2. Cliccare sul pulsante Get started for free e seguire le indicazioni per creare un nuovo account o per accedere con un profilo esistente nel caso si possegga già un account Amazon
  3. Compilati tutti i dati necessari per la creazione del nuovo account, sarà necessario fornire i dati della propria carta di credito per concludere la procedura
  4. Una volta effettuato l’accesso, assicurarsi di avere di fronte la EC2 dashboard, che è possibile raggiungere dal menù Service

Configurazione EC2 – Un assetto rapido per un server funzionale

  1. Scegliere la località più vicina (Irlanda dall’Italia) dal menù a tendina situato nella parte superiore sinistra della pagina, tra HELP ed il nome utente
  2. Raggiungere la sezione NETWORK & SECURITY > Key Pairs dal menù laterale, cliccare sul pulsante Create Key Pair, digitare un nome per la nuova chiave di sicurezza (ad esempio “Chiave-1”) e confermare
  3. A questo punto il browser dovrebbe scaricare il file della chiave crittografica <nome-scelto-per-la-chiave>.pem, che va archiviato con cura sul proprio computer poiché non sarà possibile scaricarlo una seconda volta
  4. Spostarsi su NETWORK & SECURITY > Network Interfaces dal menù laterale, cliccare sul pulsante Create Network Interface, inserire una descrizione, scegliere una subnet qualsiasi e confermare
  5. Passare a INSTANCES > Instances dal menù laterale, cliccare sul pulsante Launch Instance, selezionare l’opzione Quick Launch Wizard, digitare un nome per l’istanza server, scegliere la distribuzione Linux che si preferisce (è consigliabile scegliere Ubuntu per fruire al meglio di questo articolo), cliccare sui pulsanti Continue, Launch ed infine Close
  6. Prendere nota del valore assegnato per il Security Group dell’istanza appena creata, sarà necessario per il prossimo punto
  7. Dal menù laterale, recarsi su NETWORK & SECURITY > Security Groups, cliccare sul security group utilizzato dall’Istanza (quello di cui è stata presa nota) e successivamente selezionare la scheda Inbound dal pannello inferiore
  8. Sarà sufficiente aggiungere le porte sulle quali si desidera mettere in ascolto il server, scegliendole dall’elenco o creandone di nuove, e cliccare sul pulsante Add Rule. Nel caso si abbiano dubbi sulle porte da scegliere, selezionare HTTP, premere Add Rule e quindi Apply Rule Changes
  9. Giunti finalmente al momento di assegnare un IP statico, che Amazon chiama Elastic IP, raggiungere il relativo pannello da NETWORK & SECURITY > Elastic IPs
  10. Cliccare sul pulsante Allocate New Address, quindi selezionare la neo-nata Instanza dall’elenco a tendina, spuntare Allow Reassociation e premere Yes, Associate
  11. Una volta completata la configurazione, prendere nota dell’IP pubblico assegnato (Elastic IP) o copiarlo negli appunti
  • Nel caso si dovesse riscontrare un’errore di assegnazione dell’interfaccia di rete (Network interface), provare a cliccare sul pulsante Edit Details, nella seconda schermata dell’attivazione dell’Istanza, quindi confermare e continuare a seguire i passaggi successivi regolarmente

Connessione al server – SSH per ottenere il controllo

  • Ubuntu / Linux Mint / MacOSX

    1. Spostare il file .pem della chiave di sicurezza nella cartella ~/.ssh
    2. Alterare i permessi del file .pem, per ragioni di sicurezza, con chmod 600
    3. Aggiungere la chiave di sicurezza al portachiavi di sistema con ssh-add
    4. Aprire il terminale e, dalla cartella dove risiede il file .pem della chiave, eseguire quanto segue tenendo presente che chiave-di-sicurezza.pem deve essere sostituito con il nome del proprio file .pem:
      • Ubuntu:
      • MacOSX:
    5. Aggiunta la chiave, sarà sufficiente un breve comando per accedere all’Istanza EC2, elastic-ip-assegnato deve essere sostituito con l’elastic IP che è stato assegnato precedentemente:
    6. Rispondere (o yes a seconda della lingua di sistema) per confermare l’affidabilità del server di destinazione e della connessione
  • Windows

    1. Scaricare il setup di Putty dal sito ufficiale
    2. Eseguire l’installazione del software appena scaricato selezionando, come componenti da installare, solo PuTTY e PuTTYgen
    3. Una volta conclusa l’installazione, sarà necessario convertire il file .pem, eseguire dunque PuttYgen e cliccare sul pulsante Load
    4. Comparsa la finestra per la selezione del file, selezionare All files (*.*) come tipo di file, ed il file chiave-di-sicurezza.pem, quindi confermare
    5. Premere OK,se dovesse comparire un messaggio, e cliccare sul pulsante Save Private Key,dunque su Yes ed infine digitare un nome per il file chiave-di-sicurezza.ppk
    6. Creare un nuovo collegamento a PuTTY sulla scrivania, rinominarlo Server EC2 o un qualsiasi nome a piacere, cliccare sul collegamento col tasto destro del mouse ed aprirne le Proprietà
    7. Aggiungere al valore del campo Destinazione uno spazio e poi quanto segue: -i chiave-di-sicurezza.ppk ubuntu@elastic-ip-assegnato, sostituendo opportunamente i valori chiave-di-sicurezza e elastic-ip-assegnato
    8. Cancellare il valore contenuto nel campo Da ed inserire il percorso completo dove risiede il file chiave-di-sicurezza.ppk
    9. Nel caso dovesse comparire un messaggio di dialogo, rispondere o yes per confermare l’affidabilità del server e della connessione
  • È possibile salvare il comando ssh, con tutti i suoi parametri, come script bash per rendere la procedura di connessione più semplice (Linux / MacOSX)
  • Se dovessero comparire errori, assicurarsi di aver eseguito chmod sul file .pem, altrimenti provare a connettersi tramite ssh utilizzando un nome utente diverso da ubuntu come ad esempio root,ec2-user
  • è raggiungere l’istanzia creata da un indirizzo come ec2.esempio.it nel caso si disponga di un dominio con la possibilità di poter gestire i record DNS e quindi di aggiungere un Record A per l’Elastic IP assegnato

Aggiornamenti e aggiustamenti

  1. Una volta connessi al server, aggiornare il sistema e ovviare ad alcuni parametri mancanti, che possono generare errori con Perl, copiando ed incollando quanto seguente nel terminale connesso al server:
  2. Confermare qualsiasi richiesta digitando yes

Installare MEAN – Ubuntu

  • MongoDB

    1. Importare la chiave pubblica GPG di MongoDB
    2. Aggiungere i repository ufficiali di MongoDB alla lista sorgenti software
    3. Aggiornare le dipendenze di sistema ed installare la versione ufficiale e stabile di MongoDB della 10gen
    4. Il servizio MongoDB si avvierà automaticamente ad installazione completata

    È sufficiente copiare, ed incollare quanto segue nel terminale, per avere un server MongoDB attivo e funzionante in pochi secondi!

  • NodeJS

    1. Aggiungere i ppa non-ufficiali di NodeJS alla lista sorgenti software
    2. Aggiornare l’elenco delle dipendenze ed Installare la versione più recente e stabile di NodeJS

    Utilizzando quanto segue nel terminale, sarà possibile avere NodeJS installato sul proprio server linux!

  • Il pacchetto MEAN

      1. Installare GIT
      2. Creare il gruppo ftp-users
      3. Creare una cartella per i progetti al percorso /var/webservices, impostarne il proprietario a ubuntu ed il gruppo a ftp-users

     

  • Estrarre il contenuto del pacchetto scaricato
  • Lanciare il comando npm-install per scaricare automaticamente tutto il necessario per MEAN, ed anche di più
  • Eseguire quanto segue per scaricare,estrarre ed installare con npm il pacchetto MEAN:

Montare l’istanza EC2 – Sfogliare i file del server dal proprio pc

Dal momento che gestire e caricare files sul server è utile, se non indispensabile, è necessario configurare un accesso semplice al file-system dell’Istanza.

  • Ubuntu / Linux Mint

    1. Aprire una finestra di Nemo o di Nautilus e cliccare sul menù File > Connetti al server…
    2. Sarà sufficiente immettere l’Elastic IP dell’Istanza come valore del server, il nome utente del server come nome utente e selezionare SSH dalla lista delle connessioni disponibili
    • Nel caso si dovessero riscontrare degli errori, assicurarsi di aver aggiunto il file pem al portachiavi di sistema, come descritto in precedenza:
  • MacOSX

    1. Scaricare FileZilla per MacOSX (intel) dal sito ufficiale, estrarne il contenuto nella cartella Applicazioni del Mac
    2. Avviare FileZilla, andare su File > Gestore Siti, cliccare sul pulsante Nuovo Sito ed immettere un nome per la connessione, ad esempio Server EC2
    3. Spostarsi sulla parte destra, digitare l’Elastic IP nel campo Host, selezionare SFTP come Protocollo, Interattivo come tipo di accesso, inserire il nome utente del server come Utente ed infine cliccare su Connetti
    4. Dovrebbe comparire un avviso, in tal caso spuntare la casella Considera sempre sicuro questo host e premere OK
    • Nel caso si dovessero riscontrare degli errori, assicurarsi di aver aggiunto il file pem al portachiavi di sistema, come descritto in precedenza:
  • Windows

    1. Scaricare ed installare FileZilla per windows dal sito ufficiale
    2. Una volta avviato FileZilla, cliccare sul menù Modifica > Impostazioni
    3. Dalla finestra Impostazioni, selezionare la sezione Connessione > SFTP dall’elenco posto sulla sinistra
    4. Cliccare sul pulsante Aggiungi file chiave.., selezionare chiave-di-sicurezza.ppk, confermare e premere OK nella finestra Impostazioni
    5. Spostarsi sul menù File > Gestore Siti, cliccare sul pulsante Nuovo Sito ed immettere un nome per la connessione, ad esempio Server EC2
    6. Spostarsi sulla parte destra, digitare l’Elastic IP nel campo Host, selezionare SFTP come Protocollo, Interattivo come tipo di accesso, inserire il nome utente del server come Utente ed infine cliccare su Connetti
    7. Dovrebbe comparire un avviso, in tal caso spuntare la casella Considera sempre sicuro questo host e premere OK

Script di avvio e Nginx – Proxy Inverso ed applicazione NodeJS come servizio

Nel caso si desideri avviare la propria applicazione nodejs all’avvio del sistema e come servizio, leggere i prossimi passi

  1. Scrivere uno script di avvio in /etc/init/nodeserver.conf
  2. Installare nginx
  3. Impostare update-rc.d per avviare automaticamente nginx
  4. Creare una file di regole per configurare nginx in /etc/nginx/conf.d/meanserver.conf

Questo post è disponibile anche in: Inglese