Amazon EC2 come calcolare i costi su Elastic Compute Cloud
da Massimo Della Rovere · pubblicato il 22 dicembre, 2012 · modificato il 5 giugno, 2017

La domanda che riguarda i costi del servizio Amazon EC2 è sicuramente una delle più frequenti in ambito AWS. Il motivo principale è legato al fatto che non essendo un costo fisso su base mensile o annuale a molte persone questo crea delle perplessità,  infatti non è possibile come per altri servizi internet, ad esempio quelli di hosting, avere un prezzo fisso annuale ed ottenere di contro un pacchetto di servizi ben definito.

Amazon per l’erogazione dei suoi servizi in cloud usa la tecnica di pagamento chiamata “pay-as-you-use” che tradotto significa “paghi solo quello che usi”.

Inizialmente, voler acquistare dei servizi di cui bisogna calcolare i costi con delle formule e nonostante tutto avere dei fattori non prevedibili come il traffico, può portare giustamente a delle insicurezze, però se analizziamo bene il perchè di questa scelta ci renderemo subito conto di quanto essa sia più elastica di un servizio a costo fisso.

La prima cosa che dobbiamo capire è che Amazon EC2 non è un servizio di hosting o di dedicated server, il servizio EC2 è molto di più e ci permette di acquistare quantità di elaborazione in un sistema cloud per il tempo e la potenza che ci serve, che poi con questa tecnica possiamo configurare un web server funzionante e attivo 24H24 questo è solo un singolo aspetto delle decine di possibilità messe a disposizione.

Calcolo dei costi su EC2

Per calcolare i costi di un server virtuale bisogna andare nella sezione EC2 Pricing e cercare la “zona geografica” su cui si vuole lavorare, infatti i costi del data center in Irlanda sono differenti rispetto a quelli in Virginia negli Stati Uniti. Una volta selezionata la regione potrete vedere una tabella suddivisa per potenza di calcolo richiesto e sistema operativo da installare. Infatti se installiamo Linux avremo un prezzo più basso di Windows, in quanto non dobbiamo pagare la licenza M$.

Alcune istanze EC2 Calcolo del prezzo Annuale
Linux M1.Micro (0.020 ora) x 24 x 365 175 $
Linux M1.Small (0.047 ora) x 24 x 365 412 $
Linux M3.Medium (0.077 ora) x 24 x 365 675 $
Linux M3.Large (0.154 ora) x 24 x 365 1.349 $

Nell’esempio che ho riportato ho indicato i prezzi del servizio con riferimento ad un costo annuale per dare un’idea di massima, in realtà queste tariffe andrebbero usate solo quando viene richiedo un server virtuale per un determinato periodo, ad esempio qualche ora, una settimana o un mese. Se serve attività intensiva servono le riservate.

Infatti se dovessi avere un’esigenza diversa, come nel caso di un server web attivo 24H24 per tutto l’anno, devo fare riferimento alle istanze riservate. Con questo tipo di istanza si paga una tantum in base alla potenza richiesta e la tariffa oraria è molto più bassa, vi riporto l’esempio di prima facendovi vedere il risparmio che è possibile ottenere.

Alcune istanze EC2 Calcolo del prezzo Annuale Anticipo Totale
Linux M1.Micro (0.008 ora) x 24 x 365 70 $ 62 $ 132 $
Linux M1.Small (0.016 ora) x 24 x 365 140 $ 123 $ 263 $
Linux M3.Medium (0.028 ora) x 24 x 365 245 $ 222 $ 467 $
Linux M3.Large (0.057 ora) x 24 x 365 499 $ 443 $ 942 $

Attenzione: I prezzi riportati cambiano in continuazione, ovviamente con il tempo diventano sempre più bassi, quindi non prendete queste tabelle solo come esempio per calcolare il prezzo annuale della vostra istanza. Vedere sempre su EC2 Pricing.

Pay-to-use per ambienti di sviluppo

Ci sono casi dove insieme ai server di produzione ci sono dei server di sviluppo, questi server non vengono usati sempre, ma solo nei periodi di sviluppo del software o per eventuali test prima della messa in produzione. Questa caratteristica costringe l’azienda all’acquisto di un server che comporta costi doppi, legati alle licenze, alla manutenzione hardware, alla configurazione sistemistica, configurazioni di rete, etc.

Insomma una grande quantità di soldi spesi per avere qualcosa disponibile tutto l’anno quando in realtà viene utilizzata solo una parte di esso. Se invece di questa soluzione venisse adottata quella proposta da Amazon, pagheremo l’affitto di un server solo per un mese o due, in questa maniera il risparmio è significativo. Io personalmente ho visto diversi clienti spendere 8/10 mila euro per enormi server di sviluppo che sono stati mesi dentro i data center a prendere polvere in attesa di esigenze di test.

Senza contare che sul cloud è possibile avere ambienti di sviluppo infiniti, in quanto potremmo duplicare il server di produzione e provare delle modifiche ulteriori su un’altro server uguale al primo e questo magari solo per qualche ora. Possibilità molto utili e interessanti ma proibitive nell’ambiente di networking classico.

Pay-to-use per elaborazioni sulla ricerca

Nel campo della ricerca molte volte le elaborazioni richieste hanno una particolarità ben precisa, necessitano di potenza ma per poco tempo. In questi casi il risparmio può essere elevatissimo, infatti senza questa possibilità, bisognerebbe comprare risorse e server costosissimi per usarli solo qualche volta. Uno spreco enorme di risorse.

Research DNA

Invece con il metodo “pay-to-use” è possibile magari affittare 100/200 server o anche più per l’elaborazione parallela solo per qualche ora o giorno, il tempo necessario ad eseguire l’algoritmo scientifico che poi sarà la base di lavoro per i prossimi mesi. Non è difficile capire che in questi casi la differenza non sarebbe solo l’aspetto economico ma pensiamo a quanti problemi di gestione vengono risparmiati al team stesso.

Provare software e sistemi operativi

Alcune volte potremmo avere la necessità di provare un nuovo sistema operativo per testare il funzionamento di un’applicativo e vedere se ci possono essere problemi di malfunzionamento prima di un’eventuale update. Nell’ambiente tradizionale questa operazione sarebbe molto costosa, in quanto abbiamo bisogno di duplicare le risorse.

In ambiente cloud, invece basta avviare un’istanza EC2 con il sistema operativo da provare, installare il nostro software, fare tutti i test del caso e scrivere una relazione di funzionamento. Tutto questo senza comprare nessun hardware e evitando tutti i problemi di configurazione sistemistica e messa in opera del caso. Per esperienza personale, vi assicuro che ci sono stati dei casi dove ho potuto provare dei software con un sistema operativo diverso anche in poche ore con un costo di 3/4 euro.

Un’altro caso interessante è stato quello di fare un test su un software di WordPress per un sito molto frequentato, il quale non voleva rischiare con un’aggiornamento di trovarsi di fronte a problemi da risolvere. In questo caso ho duplicato l’immagine del server su un secondo server, sul quale ho eseguito l’aggiornamento che il cliente ha potuto provare. Il server è stato in linea per due giorni con un costo di 10€ circa.

Pagare potenza solo quando necessaria

Questo è forse l’aspetto più chiaro del perché il “pagare ciò che si usa” può essere molto vantaggioso. Prendiamo per esempio un portale che abbia durante l’anno una media di visite più o meno coerenti a livello mensile, però in due mesi all’anno, che potrebbero ad esempio essere le vacanze natalizie e il primo mese estivo, deve far fronte ad un numero di accessi e di visualizzazioni di pagine maggiore rispetto alla media annuale.

La macchina dovrà avere una potenza pari alla sua sollecitazione massima, quindi bisognerebbe comprare o affittare un server che per solo due mesi all’anno riuscirà ad usare la sua potenza, mentre per i restanti 10 mesi sarà solo un costo sprecato.

Nel mondo cloud di Amazon EC2 questo non succede, per questo viene chiamato Elastic Compute, infatti possiamo pagare per 10 mesi la potenza necessaria e solo per i due mesi eccezionali pagheremo un extra per la potenza addizionale.

Avvertenza generale dei costi

La seguente guida è stata scritta per scopi informativi con l’obiettivo di spiegare le caratteristiche del “pay-to-use” e il metodo di calcolo dei costi. In ogni caso se volete fare un’analisi dei costi esatta per il vostro ambiente usate sempre le tabelle di amazon che trovate sul sito ufficiale. Vedere sempre il listino su EC2 Pricing.

Indice generale degli articoli correlati

Guida completa su AWS

Questo articolo appartiene ad una serie di pubblicazioni che costituiscono una guida completa dedicata agli Amazon Web Services.  Molti servizi che trattiamo in questo blog vengono anche spiegati con dei video che trovate nel nostro canale youtube. Se volete seguire questo percorso didattico iscrivetevi alla community Cloud AWS.

15 Commenti

  1. Salve, avrei bisogno un consiglio, dovrei creare un sito web per la vendita di prodotti digitali (per intenderci come megascans.se o friendyshade.com) che tipo di istanza mi serve? I prezzi?Ho cercato di capirci qualcosa ma tra t2 t3 m5 small large ect... Nn mi e molto chiaro

  2. Molto interessante. Finalmente un articolo che elimina un po’ di nebbia dalla mia testa. Mi sono avvicinato ai servizi cloud di Amazon da pochi giorni (meno di una settimana, sto provando CloudFront). Posso farti qualche domanda ‘ingenua’ ? Nell’istanza EC2 è compreso l’uso del webserver, mysql, php e email o sono servizi che occorre avviare a parte? Lo spazio fisico (EBS?) deve essere sufficiente per contenere anche il sistema operativo immagine, log del server etc.. oltre allo spazio per i miei file, database e agli snapshot?

  3. Ciao Carlo, nell'istanza EC2 ci installi quello che vuoi senza limiti e neppure costi aggiuntivi. È come se hai un server tutto tuo, hai un sistema operativo e il software che ti serve. EBS deve contenere sia OS che dati, però dipende dal tipo di istanza, ci sono alcune che hanno già un disco interno con OS, quindi in questo caso EBS lo useresti solo per i dati.

  4. Salve Massimo, vorrei passare a AWS ma non riesco a stimare il costo del traffico. Che differenza c'è tra "Data Transfer Out/In" e "Public IP/Elastic IP Data Transfer:" ? Ho due server web, il primo da statistiche di traffico, ha in Out 156GB mensili. Il secondo 1TB in 30g. Tutto il traffico stimato sarebbe traffico su internet quindi elastic IP.

    Grazie mille per le risposte, Nicola

  5. Ciao Nicola, quello che devi tenere in considerazione è il "data transfer", per quanto riguarda il traffico elastic IP è una cosa un pò particolare che in teoria non dovresti pagare mai, infatti paghi l'indirizzo se non lo usi legato ad una istanza, questo può sembrare strano ma serve per evitare che la gente se ne approfitti e allochi centinai di indirizzi ip pubblici che poi non utilizza, quindi tu prendi quello che ti serve lo utilizzi sempre e non paghi nulla, anche quando usi il traffico interno tra più server devi usare quello privato per rimanere in cloud, per scoraggiare l'uso pubblico ti addebitano il costo. Quindi levate queste particolarità che magari fanno solo confusione tu basati sempre sul "data transfert".

  6. Ciao Massimo, come prima cosa ti ringrazio per la risposta che mi hai fornito. Per quanto mi riguarda non credo di arrivare mai a gestire un traffico molto elevato come quello di animoto, in quanto l'app verrà rilasciata solo sullo store Italiano. Ho considerato che le richieste saranno tra le 300 e 400 al giorno non di più ( e sono molto poche come richieste), quindi a questo punto ti chiedo...con l'istanza reserved di tipo small dovrei starci abbastanza largo.

    Quindi ricapitolando dovrebbero essere circa 61$ se decido di fare un contratto annualmente oppure 96$ se decido di fare un contratto per tre anni ? Per il momento comunque sto testando quello free e non mi trovo per niente male...cerco 750 ore al mese non sono tantissime ma facendo i giusti interventi dovrei starci discretamente.

    Attendo una tua risposta. Grazie, Vincenzo

  7. Ciao macuser, ovviamente dipende dal tipo di elaborazione di ogni richesta, le richieste non sono tutte uguali, alcune possono essere anche diverse volte più pesanti di altre, in ogni caso tiene presente che io con un'istanza small sono arrivato a gestire più di 2000 visitatori unici al giorno con wordpress senza aver nessun problema di performance, quindi penso che per il tuo caso vada più che bene.

    Ti consiglio un domani di fare un contratto per una reserved istance che risparmi moltissimo, fino ad un 40%, però la reserved va pagata quando sei sicuro del taglio dell'istanza che necessiti, quindi prova un'istanza del taglio che desideri ad esempio "small" e provala in "on demand" per qualche tempo, quando sei sicuro compri una "reserved".

    Ciao e in bocca al lupo per la tua applicazione.

  8. Salve Massimo, come prima cosa ti ringrazio dell'articolo l'ho trovato molto interessate, anzi devo dirti la verità l'ho trovato l'unico articolo serio sui servizi Amazon. Ti scrivo perchè volevo avere delle piccole informazioni sulle instanze in sostituzione del mio server casalingo.

    Come prima cosa mi presento, mi chiamo Vincenzo e sono uno sviluppatore iOS alle prime armi,in quanto ho pubblicato una sola app su AppStore, ma conto prima della fine di luglio di pubblicarne altre.

    Allo stato attuale con il piccolo server che ho casa riesco a gestire il traffico delle richieste che mi arrivano dall'unica app pubblicata, purtroppo però mi sto accorgento che con la prossima app rieschierei di compromettere un pò il tutto e non riuscire a garantire i servizi che vorrei garantire come, accesso a immagini di circa 500 K e servizi come notifiche push in quanto la banda fornita dal mio gestore non è sufficiente e credo anche che il piccolo server in questione non riesca a far gestire bene tutto il carico di lavoro (parliamo di circa 50 persone che potrebbero accedere contemporaneamente)

    Stavo pensato a questo punto di poter utilizzare un server Amazon di mia proprietà quindi un server che sarebbe acceso 24 ore su 24 pertanto volevo optare per le istanze riservate che mi sembra abbiano i contratti annuali e non a tempo. Ho solo però dei dubbi che spero riuscirai a togliermi.

    1. L'istanza che volevo scegliere era la Small con localizzazione in Irlanda. Quello che però non capisco è il costo. Da quello che vedo sembra 63$ per 1 anno, oppure 96$ se decido di tenerlo tre anni ?

    2. Con questa tipologia di istanza (Small) ci sono problemi per quanto riguarda la banda ? Ho letto se non sbaglio di una banda molto molto bassa, spero non sia inferiore al mio mega in upload fornito da Infostrada. :-)

    3. E' possibile installare la JVM, successivamente Tomcat e MYSQL, oppure ci sono regole che devono essere rispetta e non posso installare nulla ? Faccio un esempio non posso installare la VM della Java ma devo usare OpenJdk

    Grazie mille per le risposte, Vincenzo

  9. Ciao macuser, per il traffico che mi stai specificando basterebbe una istanza small se non addirittura micro, in ogni caso il problema non è tanto quello che ti serve che può essere anche un piccolo server, ma quello che conta è la scalabilità, infatti se un giorno hai la fortuna che ti passa vicino e riesci a canalizzare tanto traffico anche improvvisamente, che fai lo perdi ? questo è il punto, con Amazon puoi portare a casa il risultato. Per chi scrive app questo elemento è fondamentale, basta vedere la storia di animoto

  10. Salve, io non capisco che si intende per tariffa oraria. Se carico un sito 24 ore su 24 pago tutte le ore annuali o solo le ore di attività?

  11. Ciao Luca, paghi tutte le ore in cui il tuo server rimane accesso a prescindere dalla CPU che consumi. Ovviamente se ti serve una macchina accesa in continuazione come il caso di un server web ti conviene prendere una istanza riservata che con un pagamento anticipato risparmi anche il 40% sul totale annuo. Verrebbe da pensare che sia la cosa più ovvia però non è così, infatti il cloud di amazon è basato sul concetto di "Elastic" quindi in realtà tu potresti avere necessità di potenza differente in periodo di orario o di tempo differenti, per questo motivo la tariffa è oraria per farti pagare solo quello che usi.

  12. Sperando di non essere OT: quale è la differenza sostanziale tra un'istanza linux riservata Amazon ed un nodo su Linode ? http://www.linode.com/

  13. Ettore, non è una domanda facilissima, purtroppo non possiamo neanche semplificarla come fanno centinaia di articoli su internet con amazon vs linode, amazon vs qualcosa di altro, vengono fatte tabelle di performance, tot richieste al secondo uno e tot l'altro. Tutte cose che sinceramente io personalmente ritengono che valgono un valore prossimo allo zero.

    Io parto da un presupposto diverso, cioè l'ecosistema, la quantità di servizi a disposizione, la scalabilità e l'esperienza accumulata. Tutto quanto rapportato all'esigenza specifica.

    Ad esempio ho un blog che non avrà mai grande pretese ?

    Mi basta un piano di hosting, è inutile andare sul cloud. Per il backup mi posso arrangiare con un trasferimento FTP una volta alla settimana. Se ho qualche fermo macchina per manutenzione del provider non succede nulla. Non è di fondamentale importanza.

    Ho un sito che ritengo importante e non voglio sorprese?

    Mi serve un server virtuale affidabile e con caratteristiche chiare, possiamo trovare tante soluzioni valide, i server dedicati classici e i servizi come linode vanno benissimo. Escluderei i piani di hosting condiviso dove davanti alle sorprese é impossibile reagire.

    Devo dare un soluzione ad un'azienda senza rischiare niente, o creare un sito che ha molte possibilità di crescita anche senza avviso in maniera imprevista ?

    Mi serve un sistema come quello di Amazon, dove girano siti come Pinterest, dove vengono memorizzate le immagini di 123RF, dove vengono serviti i file statici di twitter, sugli altri queste cose non possono girare, per il semplice fatto che nessuno ha a disposizione per il momento questa potenza infrastrutturale.

    Ho la necessità di sviluppare dentro un'unico sistema ?

    Questo è il caso più ovvio per utilizzare i servizi di Amazon, dove la virtualizzazione rappresenta solo un sottoinsieme di servizi, infatti potrei avere istanze di database distaccate dai miei server, senza neanche preoccuparmi su cosa o dove girano, posso usare database relazionali come database NoSQL, posso avere una politica di backup senza confronti, posso sviluppare applicazioni che mi consentono l'utilizzo di API ormai testate da anni e con cui è possibile fare di tutto, posso decidere le zone geografiche su cui essere presente per giocare con le latenze rispetto ai miei clienti, e potremmo continuare per qualche ora. E il bello che posso provare il tutto senza fare contratti a lungo termine ma pagare solo per i minuti, le ore o i giorni che mi serve per testare e trovare la mia soluzione migliore.

    Quindi concludendo, la differenza non è tra l'istanza e il nodo, ma è quello che sta intorno. Se non ti serve puoi scegliere uno o l'altro, in caso contrario devi scegliere Amazon.

  14. Sempre interessanti i discorsi sul Cloud Amazon…
    Curiosità… quando parli del traffico differenziato in funzione del periodo dell’anno sono però io amministratore che devo prevederlo e quindi chiedere l’upgrade per quel periodo e riportarlo più basso negli altri mesi, giusto? o viene gestito tutto in automatico? Se faccio la richiesta di pagamento per utenza riservata (quindi annuale) posso fare lo stesso questo tipo di operazione?

  15. Lo puoi fare sia manualmente quando ti accorgi che ti serve, ma puoi farlo anche automaticamente usando CloudWatch & Autoscaling che è sempre un Web Services che ti monitorizza l’uso dell’istanza CPU, RAM, banda di rete, ect. Puoi mettere dei parametri e dirgli quando aumentare la potenza, ti manda anche un SMS per avvisarti se succede qualcosa per cui interviene automaticamente.

condividi