DigitalOcean: VPS e Linux a portata di mano

14 mag 2015 23:39

_Logo Grazie alle molte piattaforme cloud nate negli ultimi anni gli sviluppatori hanno a disposizione tanti strumenti per il test e la prototipazione. DigitalOcean è un provider di Virtual Private Server con sede a New York che offre a prezzi contenuti server con sistemi Linux, attivabili in meno di un minuto.

Il processo di registrazione è semplice e veloce, ma è necessario fornire una carta di credito o versare 5$ tramite PayPal. Con una breve ricerca in Internet è anche possibile trovare un coupon per ottenere un credito di almeno 10$ (personalmente ho usato il codice ALLSSD10) o farsi referenziare da qualcuno per ottenere un credito di benvenuto sempre di 10$ (se avete bisogno inviatemi una mail).

In pochi minuti si può creare un server virtuale con sistema operativo Ubuntu, utile per lo sviluppo e la prototipazione di applicazioni che richiedono servizi installabili solo su piattaforme *nix o che è meglio testare anche sul sistema del pinguino. Per un paio di ore il costo non arriva nemmeno ad un euro. Interessante è anche la possibilità di provare applicativi .NET tramite Mono, senza dover installare nulla in casa.

Tra le distribuzioni disponibili: Ubuntu, Debian, Fedora, CoreOS, FreeBSD, CentOS. Tutti i piani includono dischi SSD. Il pagamento è orario e i prezzi relativamente bassi: il profilo più economico costa 5$ al mese offre un server con 512 MB di RAM, 20 GB SSD, 1 CPU e una banda di trasferimento di 1 TB. Il costo è comunque orario e un'ora costa effettivamente $0.0074.

Per fare un semplice paragone, l’offerta più bassa disponibile in Azure costa più del doppio. Certamente Azure è ben altra cosa con la sua molteplicità di servizi, ma la specializzazione di DigitalOcean ha prodotto un servizio molto professionale: lo si può notare consultando la knowledgebase, ricca di guide e tutorial, con tanto materiale anche per chi è alle prime armi con sistemi linux e server virtuali.

Il piano tariffario è chiaro e scalabile in base alle proprie esigenze. Le prestazioni buone e il pannello di controllo semplice ed intuitivo. Qui i server virtuali sono definiti droplet. E’ disponibile un backup manuale tramite snapshot oppure un backup automatico tramite una procedura che viene avviata ogni due giorni. Entrambi i backup possono essere riutilizzati per creare nuovi droplet.

Altri importanti aspetti:

  • E’ possibile configurare il DNS della macchine come indicato da questa semplice guida.
  • E’ disponibile un’API pubblica che mette a disposizione le stese funzionalità del pannello di controllo.
  • Per la sicurezza è possibile abilitare una chiave SSH.
  • Attenzione al fatto che spegnere un server non significa non spendere: bisogna creare uno snapshot e quindi distruggere il droplet.
  • Di default non è attivo alcun firewall che è consigliato configurare nel proprio server.

Creare un Droplet con MongoDB

Vediamo come creare un macchina Ubuntu per attivare un server MongoDB:

Create a Droplet

  • Dopo la registrazione avviare la procedura di creazione Droplet.
  • Indicare il nome del server e quindi selezionare una delle grandezze.
  • Selezionare la regione (tra cui Amsterdam, Francoforte e Londra)
  • Attivare varie opzioni (provate networking, IPv6 e Backups)
  • Selezionare l’immagine del sistema da installare (e la versione specifica: nel mio caso Ubuntu 14.04 x64).
  • Selezionare le applicazioni da installare (nel nostro esempio MongoDB, ma ve ne sono 24 tra cui Cassandra, Ruby on Rails, WordPress, Docker).
  • Avviare la creazione: in 90 secondi la macchina è pronta.
  • Per questa demo non utilizzerò una chiave SSH ma per altri usi è consigliata.

Droplet Created

Sempre da pannello di controllo è possibile avviare la console tramite VNC: l’IP e l’account per accedere arriveranno via e-mail in un paio di minuti. In Windows è meglio utilizzare PuTTY.

PuTTY

E’ naturalmente consigliato creare un nuovo utente e non utilizzare l’utente root,: questo obbliga a inserire sudo prima di ogni comando amministrativo. Qui la guida per creare un nuovo utente, assegnargli diritti root e abilitare SSH.

Avendo scelto l’installazione di MongoDB in fase di creazione non è necessario fare nulla di particolare: il servizio di MongoDB è già attivo. Infatti, è sufficiente avviare la shell mongo:

Mongo Shell

Per accedere in remoto, ad esempio dalla propria macchina dove presumibilmente vi è un po’ di codice per utilizzare Mongo, è necessario abilitare l’accesso tramite internet nella configurazione di MongoDB, memorizzata nel file /etc/mongod.conf. Con l’editor di testo predefinito modificare tale file:

vi /etc/mongod.conf

Cercare il valore di bind_ip e sostituire all’indirizzo locale predefinito (127.0.0.1) l’indirizzo del server:

Mongo Conf

Usare vi: dopo aver avviato vi attivare l’inserimento del testo premendo il tasto Ins. Sostituire l’ip locale (per incollare da clipboard premere il tasto destro del mouse), quindi uscire dalla modalità inserimento premendo ESC, infine digitare “:wq” (modalità comando a cui si passa write e quit). Se si vuole uscire senza salvare le modifiche usare q!.

Per rendere effettive le modifiche è necessario riavviare il daemon:

sudo service mongod stop
sudo service mongod start

Per arrestare il server e poter creare uno snapshot scrivere:

sudo shutdown -h now

Non dimenticate di distruggere la macchina se non la utilizzate! A proposito, ecco qui il costo del server utilizzato per più di un'ora:

Real Cost

Conclusione

Naturalmente avviare una macchina Linux per installare un database non è un'operazione così difficile e non è nemmeno richiesto ad uno sviluppatore di diventare un sistemista, ma poter utilizzare strumenti semplici e veloci come quelli offerti da DigitalOcean può essere di grande aiuto.

Per i progetti reali bisogno poi affidarsi ad un team più ampio e multiforme, proprio per poter meglio sfruttare le caratteristiche che la tali strumenti offrono: tra l’altro le offerte disponibili sono molto flessibili e scalabili.

Tag: VPS, MongoDB, Linux