RSS

DigitalOcean

30 Marzo 2014

Varie

DigitalOcean

Presento oggi un servizio di virtual server (cloud computing) che sto utilizzando con successo e a un prezzo veramente ottimo, pertanto posso fornire suggerimenti per chi volesse intraprendere questa avventura.
Cominciamo però con qualche premessa.

Servizi Web

Oggi esistono molti provider web ci permettono di creare il sito personale, mettendoci a disposizione i classici servizi pressochè indispensabili per realizzarlo:

  • Spazio su disco (con o senza accesso ftp)
  • Server Apache
  • Database Mysql
  • PHP abilitato

Con questi strumenti si possono creare pressochè la totalità dei siti, perchè l’utilizzo di un CMS permette di bypassare tutte le operazioni di basso livello di programmazione, permettendoci di concentrarsi sui contenuti.

I punti di forza sono:

  • Il provider si occupa della sicurezza del server (tenendolo aggiornato) e dei vari backup, nonchè della loro gestione fisica.
  • Se si accetta l’utilizzo della pubblicità, non serve pagare nessun canone mensile per il servizio erogato (o in ogni caso il canone non è eccessivo).

I punti sfavorevoli sono:

  • Non si ha un accesso di root nel server (quindi non si possono eseguire file binari)

Se volete allestire un forum che discute del vostro gioco online favorito, non avete nessun problema a realizzarlo con i provider visti sopra, ma se volete lanciare un server che ospita i giocatori per il gioco stesso, non potete farlo, perchè non avete modo di esegure l’applicazione binaria del gioco che accetta le connessioni degli utenti e gestisce l’arena virtuale.

Per far questo abbiamo bisogno di un tipo diverso di servizio, ovvero ci serve l’accesso di root al server dove risiede il nostro sito per poter installare l’applicativo.

Fai da te

Una possibile soluzione a basso costo sarebbe di allestire un Rasperry Pi, collegato in rete con indirizzo IP pubblico e gestire il tutto tramite di esso.

I punti favorevoli sarebbero:

  • basso costo per allestire il nostro server
  • basso costo di esercizio del server (il pc consuma 2W di potenza)

I punti sfavorevoli sarebbero:

  • La potenza non è molta: se pianifico di avere molti programmi che girano sul server esso potrebbe non reggere il carico di lavoro
  • La connessione internet che abbiamo potrebbe non essere sufficiente per gestire un flusso di dati in/out dal nostro server se abbiamo molti utilizzatori dei nostri servizi (oppure potremo averla, ma il costo mensile della banda sarebbe elevato).
  • Dobbiamo prevedere un gruppo di continuità per sopperire ad eventuali carenze energetiche per non bloccare il servizio.
  • Se vogliamo scalare in alto dobbiamo passare ad un hardware più grande non essendo possibile espandere il Rasperry.

Soluzioni più performanti diventano quelle di avere un pc dedicato, con conseguante aumento dei costi di acquisto e di gestione.

Può valere la pena?

Virtual Server

La soluzione alternativa è di utilizzare un server virtuale, ovvero avere a disposizione una macchina virtuale che il provider configuerà secondo le nostre richieste e tasche. A lui spetta il compito di garantire il servizio, ovvero la potenza del pc, della rete, del gruppo di continutità, ecc, mentre a noi spetta il compito di gestire il server in tutti i suoi aspetti (installazione, configurazione, sicurezza, software).

Per chi già armeggia con VmWare, KVM o sistemi affini, il tutto si riduce a gestire (in modalità ridotta) la macchina virtuale che si trova locata su un computer fisico remoto e non sul nostro pc.

Esistono molte azienda che offrono questo servizio, ma la mia scelta è ricaduta su DigitalOcean per la modalità di prezzo che viene applicata e che è veramente concorrenziale

DigitalOcean

DigitalOcean

I prezzi sono infatti così articolati:

  • 1 core, 512MB RAM, 20GB SSD, 1TB traffico: 5$ al mese
  • 1 core, 1GB RAM, 30GB SSD, 2TB traffico: 10$ al mese
  • 2 core, 2GB RAM, 40GB SSD, 3TB traffico: 20$ al mese
  • 2 core, 4GB RAM, 60GB SSD, 4TB traffico: 40$ al mese
  • 4 core, 8GB RAM, 80GB SSD, 5TB traffico: 80$ al mese

Si può ad esempio partire con un server da 512MB di Ram e aumentare gradatamente di step qualora il nostro servizio su internet dovesse prendere piede.

Le considerazioni per questo upgrade sono semplici:

  • la macchina virtuale va spenta e in un minuto potete aggiungere la RAM e il processore.
  • Per aumentare la capienza del disco va effettuata una procedura che richiede più tempo (dai 10 ai 30 minuti), dato che va creata un backup dell’immagine corrente del server e questa va ampliata e sostituita alla precedente (o meglio la deve rimpiazzare per poter avere lo stesso indirizzi IP).

Il secondo punto è forse il più delicato perchè dovete pianifiare lo stop del servizio per mezz’ora, pertanto se avete già la sensazione che il vostro server crescerà in fretta, conviene partire dalla fascia di 1GB di RAM o più.

Tornando al server, se 512MB di RAM vi sembrano pochi, tenete presente che:

  • Il server lo amministrate via console o connessione SSH, pertanto non serve avere la grafica.
  • Il sistema operativo è Linux che pertanto sfrutta a dovere le risorse presenti
  • Potete sempre aggiungere una memoria di swap su file in modo che in situazioni di stress, il server non rimanga senza risorse. Dato che la memoria del disco è SSD, le performance sono comunque accettabili per lo swapping.

L’altro punto a favore di DigitalOcean è che pagate il reale utilizzo del PC (un tot a ora).
Se vi serve fare degli esperimenti (esempio installare Cent-OS e configurare Apache ma avete solo i weekend a disposizione) potete creare la macchina virtuale, lavorarci su per il tempo che vi serve e poi lasciarla spenta anche per giorni senza spendere nulla nel momento in cui essa è parcheggiata, per poi riprendere il lavoro quando avete di nuovo tempo.

Utilizzo

Alla fine l’utilizzo del servizio cloud di DigitalOcean è molto semplice.

  • Vi registrate al sito web (serve la vostra email)
  • Inserite del denaro sul vostro conto (potete ad esempio pagare con Paypal)
    Scegliete che tipo di piano vi serve (esempio server con 512MB di Ram) e a quel punto create il vostro dropnet.

Qui la procedura è veramente semplificata, perchè Digital Ocean vi mette a disposizione diversi tipi di distribuzioni tra cui scegliere e in 55 secondi la macchina virtuale completa del sistema operativo verrà creata e attivata.

I sistemi operativi previsti per l’installazione spaziano da Debian, Ubuntu, Fedora e CentOs, in varie versioni.

Sicuramente per fare esperimenti vi va bene qualsiasi sistema operativo, per il server dovreste puntare su Debian, Cent-Os o eventualmente Ubuntu con long term support. Anche se la utilizzo su Desktop scarterei Fedora, perchè dovreste aggiornare continuamente il vostro server (e se cambia il kernel per forza dovrete riavviare la macchina).

E’ anche possibile installare dei pacchetti di software pronto, sempre con un semplice click, ma a quel punto potrebbe essere più naturale utilizzare il package manager della distribuzione.

Una volta registrati avete due modalità di acesso al vostro server:

  • Tramite la console presente sul sito (è la console di accesso vero e proprio alla macchina virtuale)
  • Tramite l’account di root e la password che vi vengono spediti via mail relativi ad una connessione SSH.

A questo punto è bene (su DigitalOcean ci sono delle guide complete per questi ed altri punti):

  • creare un nuovo utente da usare al posto di root
  • configurare ssh per accettare solo connessioni da una lista nota di indirizzi ip (aggiungere quindi il vostro pc, se avete un indirizzo ip fisso) e utenti.
  • Inibire in ogni caso a SSH di accettare connessioni come utente root.
  • Installare dei software di monitoring che inseriscono a livello di firewall il blocco automatico degli indirizzi IP da cui stanno provenendo richieste di accesso che non hanno le credenziali corrette.

Fatto ciò non resta che installare tutto il software di cui avremo bisogno.

Pool

Nel mio caso ho creato un sito per mining di cryptomonete, in cui offro diversi pool per ogni moneta.
Con 512MB di Ram potete arrivare a gestire 4 pool (purchè non siano troppo trafficati e li prepariate tutti prima di attivarli), mentre con 1GB la cifra può raddoppiare.

Per fare questo ho installato diversi software:

  • Apache (per gestire il sito web)
  • MySql (per gestire tutti i database, 1 per ogni moneta)
  • PHP (per gestire le pagine dinamiche che fanno funzionare il pool)
  • Python (per gestire i processi di gestione porte per il mining)
  • C++ (per creare i binari dei demoni da eseguire per colloquiare con la rete e minare i coin)

Il risultato lo potete vedere in questa pagina riassuntiva, dove viene proposto l’andamento in tempo reale di tutti i pools gestiti attualmente (9).

multi-pool.info

multi-pool.info

Conclusioni

Se avete problemi col vostro server, il servizio del supporto tecnico risponde in tempi brevi (1 o 2 ore), a meno che non abbiate selezionato il flag per la criticità, nel qual caso l’intervento arriva nel giro di pochi minuti.

Invece se conoscete un servizio di hosting che attua prezzi inferiori di DigitalOcean a parità di servizio offerto, fatemo sapere, ma per il momento quello che offre è realmente concorrenziale e lo raccomando a tutti.

5 Responses to “DigitalOcean”

  1. rioslam Says:

    ciao, innanzitutto complimenti per la guida, davvero bene fatta! Poi scusa per la mia ignoranza in materia, ma avrei un paio di domande da farti: tramite digital ocean è possibile minare tutte le monete o solo qualcuna in particolare? E in caso, quali monete conviene minare attualmente? Io so dei Dogecoin e dei Vertcoin, di cui ho sentito parlare molto bene, ma non sono riuscito a farmi un’idea chiara della faccenda.
    Grazie!

  2. ice00 Says:

    ciao,

    allora se intendi che utilizzando Digital Ocean puoi minare monete direttamente lanciando i programmi nel server (cosa tecnicamente possibile avendo l’accesso di root) la risposta è no, sostanzialmente per due motivi:

    1) i server non hanno scheda grafica con cui puoi minare più velocemente della CPU agli algoritmi tipo scrypt e ipoteticamente SH256

    2) potresti minare algoritmi che utilizano solo la CPU (come i Primecoin o i Riecoin) ma ciò va contro le policy del servizio.

    L’anno scorso, quando il servizio era agli inizi, veniva permesso di minare gli algoritmi come i Primecoin (dato che a quel tempo non essendoci i miner ottimizzati di adesso, un Primecoin valeva sui 3$ e in un mese potevi superare i 5$ di costo del servizio. Oggi un Primecoin vale meno della metà).

    Adesso all’atto dell’iscrizione ti viene chiesto esplicitamente la finalità per cui verrà utilizzato il server proprio per evitare che venga utilizzata una risorsa al 100$ (cosa chee va contro il principio di avere server virtuali).

    Se invece intendo che tipo di pool puoi installare sul server virtuale, la risposta è pressochè tutti i coin che si possono minare tramite il protocollo stratum+tcp (scrypt, SHA256, scrypt-jane, scrypt-n, quark, riecoin).

    Riguardo a quale coin minare, ti rimando ai 4 articoli (di cui questo è il primo):
    http://eeepc901.altervista.org/blog/?p=4101

    Comunque in linea generale, se non hai dispositivi ASIC, non minare i coin con algoritmo hash256.

    Se hai solo la cpu, opta per Riecoin e Primecoin.

    Se hai la GPU usa gli altri algoritmi tipo Scrypt, quindi Dogecoin e Vertcoin vanno bene.

  3. rioslam Says:

    chiarissimo! grazie mille

  4. slam Says:

    complimenti per il post =)=)=)=)=), volevo chiederti rifacendomi alla domanda di rioslam posso comunque minare utilizzando le varie pool? e in tal caso quando mi iscrivo a D.O. cosa gli riferisco?

  5. ice00 Says:

    Se mini dal tuo pc non ti serve essere iscritto a D.O. perchè ti basta collegarti ad un sito che fornisce una pool, registrare il tuo miner e minare usando i parametri che ti fornisce.

    Se invece vuoi creare tu delle pool, allora ti serve un account tipo D.O., e dai un occhio a questa guida su come si avvia una pool:
    http://eeepc901.altervista.org/blog/?p=4510

    A D.O. va dichiarato che installi software per gestire pool.

Leave a Reply