Risposte:
AWS ha appena annunciato la disponibilità generale della funzionalità per monitorare gli addebiti stimati utilizzando gli avvisi di fatturazione tramite Amazon CloudWatch (a quanto pare era disponibile per gli account premium AWS già dalla fine del 2011, vedi la risposta di Daniel Lopez a Esiste un modo per impostare Amazon AWS limite di fatturazione? ):
Stimiamo regolarmente la tariffa mensile totale per ogni servizio AWS che utilizzi. Quando abiliti il monitoraggio per il tuo account, iniziamo a memorizzare le stime come metriche di CloudWatch, dove rimarranno disponibili per il normale periodo di 14 giorni. [...]
Come indicato nel post di blog introduttivo, puoi iniziare utilizzando gli avvisi di fatturazione per farti sapere quando la tua fattura AWS sarà più alta del previsto , vedi Monitorare i costi stimati utilizzando Amazon CloudWatch per maggiori dettagli su questa funzionalità.
Questo è già abbastanza utile per molte esigenze di base, tuttavia, l'utilizzo delle API CloudWatch per recuperare le metriche memorizzate da soli (vedi GetMetricStatistics ) in realtà ti consente di guidare flussi di lavoro arbitrari e logica aziendale basata su questi dati e, naturalmente, potresti generare un rapporto giornaliero anche su quanto speso il giorno precedente .
Per quanto riguarda quest'ultima, viene sottolineata anche la portata di questa offerta:
È importante notare che si tratta di stime, non di previsioni . La stima approssima il costo dell'utilizzo di AWS fino ad oggi nell'ambito del ciclo di fatturazione corrente e aumenterà mentre continui a consumare risorse . [...] Non tiene conto delle tendenze o dei potenziali cambiamenti nel modello di utilizzo di AWS. [enfasi mia]
Cioè, la granularità delle metriche riportate deve ancora essere analizzata (vedo i punti dati ogni 4-8 ore, ma non necessariamente i valori aggiornati ogni volta, come ci si aspetterebbe in realtà), quindi derivare un rapporto giornaliero sufficientemente preciso potrebbe richiedere elaborazione post statistica.
Purtroppo questo è meno semplice di quanto si possa pensare, soprattutto perché i dati desiderati possono essere controllati manualmente tramite il tuo account. Esistono due opzioni di monitoraggio che ci si aspetterebbe:
Né AWS né altri fornitori IaaS / PaaS / SaaS di cui sono a conoscenza offrono attualmente l'accesso API ai loro dati contabili (forse a causa delle potenziali implicazioni finanziarie / legali), rendendo qualsiasi forma di integrazione di terze parti (che sarebbe facile da al giorno d'oggi) ingombrante nella migliore delle ipotesi, nella misura in cui è necessario ricorrere al web scraping per recuperare i dati in primo luogo.
Fortunatamente una nuova offerta da Cloudability [link rimosso dopo l'interruzione del livello gratuito] è entrata di recente sul palco per fare proprio questo in modo agnostico professionale e di fornitore, la stiamo usando con grande successo già per AWS in particolare - attualmente ricevere comunque un rapporto giornaliero (o meno frequente) sulla spesa mensile , ovvero non ancora ripartito sulla spesa giornaliera. Aggiungere l'incremento giornaliero sarebbe ovviamente banale, quindi spero e mi aspetto che rendano più informazioni come questa disponibili nel tempo.
Anche il loro approccio ai prezzi [link rimosso dopo l'interruzione del livello gratuito] è rinfrescante (nonostante sia ovvio) e semplicemente legato alla tua spesa cloud, quindi dovrebbe pagare da solo non appena realizzi il rispettivo potenziale di risparmio (non fanno pagare nulla se spendi meno di $ 2,5 k / mese).
Aggiornamento 2012-2016 : Sfortunatamente la Cloudability ha cambiato il loro modello di prezzo in uno più comune, che include ancora un livello gratuito (e ha un prezzo ragionevole in generale), ma rimuove l'accesso a funzionalità avanzate al suo interno, che ho considerato un approccio piacevolmente equo e intelligente per gli utenti con budget limitati, che potrebbero essere ancora moltiplicatori altrove o aggiornarsi una volta cresciuti.
Aggiornamento 20150115: Sfortunatamente Cloudability ha scelto il percorso di molti fornitori SaaS freemium e alla fine ha interrotto del tutto il livello gratuito: dal 1 ° febbraio, non offriremo più l'edizione Cloudability Free che stai utilizzando oggi .
Il precedente avvertimento (conservato come riferimento di seguito) di richiedere le credenziali AWS principali non si applica più - AWS ha recentemente introdotto nuove funzionalità IAM: gestione delle password e accesso alle pagine dei rapporti sull'attività e sull'utilizzo dell'account :
Questa nuova funzionalità consente di creare utenti IAM separati e distinti per scopi aziendali e tecnici. Puoi concedere ai tuoi utenti aziendali l'accesso alle pagine Attività dell'account e / o Rapporti di utilizzo del sito Web AWS per consentire loro di accedere ai dati di fatturazione e utilizzo senza concedere loro l'accesso ad altre risorse AWS come istanze EC2 o file in S3
La cloudability ha ora integrato anche questo, quindi non è più necessario consegnarli più le credenziali AWS principali o spendere lo sforzo extra per stabilire la fatturazione consolidata solo per ottenere informazioni sulla spesa cloud, vedere Come configurare Amazon IAM (Identity Account Management ) per i dettagli.
C'è un avvertimento che uno dovrebbe essere consapevole in anticipo però:
Per poter accedere ai tuoi dati dovrai consegnare le tue credenziali AWS principali, perché altrimenti non potrebbero raschiare il tuo account, ovviamente. Per AWS, in particolare, è ancora possibile evitarlo facilitando la fatturazione consolidata , in cui si consolidano i pagamenti per più account Amazon AWS [...] designando un singolo account a pagamento , che a sua volta non ha accesso alle risorse e ai dati di elaborazione.
Usando gli strumenti di awscli , puoi ottenere il totale dal mese ad oggi:
$ aws --region us-east-1 cloudwatch get-metric-statistics \
--namespace "AWS/Billing" \
--metric-name "EstimatedCharges" \
--dimension "Name=Currency,Value=USD" \
--start-time $(date +"%Y-%m-%dT%H:%M:00" --date="-12 hours") \
--end-time $(date +"%Y-%m-%dT%H:%M:00") \
--statistic Maximum \
--period 60 \
--output text | sort -r -k 3 | head -n 1 | cut -f 2
2494.47
I totali di due giorni diversi possono essere sottratti per ottenere il delta giornaliero. In alternativa, è possibile ottenere una stima in una sola volta aumentando la finestra temporale ( end-time
- start-time
) a 24 ore e sottraendo il punto dati più recente dall'ultimo.
Gli appunti:
date
(per altri date
s, ad es. su OSX, date -v-12H
potrebbe funzionare)Se hai davvero bisogno di un rapporto sui costi giornalieri, dovrai utilizzare lo strumento " Rapporto sull'utilizzo " nel tuo account AWS. Puoi richiedere un rapporto per ogni servizio che usi, in qualsiasi periodo di tempo desideri, in granularità da ora a mese. Quindi scarica un CSV.
Dovrai fare un po 'di post-elaborazione su quel CSV (poiché non è in costo, ma in uso ecc.), Ma ti fornirà i dati di cui hai bisogno per avere un costo giornaliero.
Amazon fornisce gli addebiti mensili correnti qui:
http://aws-portal.amazon.com/gp/aws/developer/account/index.html?ie=UTF8&action=activity-summary
Verso la parte superiore della pagina indica quanto attuali sono i dati. Trovo che tenda a ritardare di alcune ore.
Questo è il record più accurato e aggiornato che puoi ottenere da Amazon o da chiunque altro in questo momento.
Forse questo modulo Python su Github può aiutarti a iniziare: pyec2costs (per istanze riservate o ondemand).
Esiste un nuovo strumento open source di Netflix chiamato Ice: https://github.com/Netflix/ice che consente di visualizzare i dettagli di fatturazione recuperati tramite i report AWS generati nei bucket S3.
Dai un'occhiata a Xervmon. Forniscono la spesa e l'utilizzo quotidiani oltre all'analisi dei dati storici. Sono un fornitore di servizi imminente con integrazioni dettagliate con Amazon AWS pianificato nei prossimi 3 mesi.
Alcuni screenshot dal mio account corrente sono i seguenti. http://cloudmaya.net/~develop/demo/Slide1.jpg http://cloudmaya.net/~develop/demo/Slide2.jpg
Un gruppo di professionisti ha creato ed è abbastanza pulito.
Ecco un semplice script che dimostra come analizzare e analizzare il file CSV di fatturazione AWS dettagliato:
Dovrebbe essere abbastanza facile da poter costruire la tua analisi!
Utilizzo del comando CLI AWS di CostExplorer È possibile recuperare le metriche di costo e utilizzo per l'account
Ad esempio: se è necessario recuperare i costi dall'inizio del mese fino ai giorni nostri, è possibile utilizzare il comando seguente.
aws ce get-cost-and-usage --time-period Start=$(date -u -d "$TODAY" '+%Y-%m-01'),End=$(date -u +"%Y-%m-%d" --date="+1 day") --granularity MONTHLY --metrics UnblendedCost --output text | sort -r -k 3 | head -n 1 | cut -f 2
Uscita: 615.6129260967
Se è necessario ottenere il costo su base GIORNALIERA, utilizzare GRANULARITÀ QUOTIDIANAMENTE come mostrato di seguito:
aws ce get-cost-and-usage --time-period Start=$(date -u -d "$TODAY" '+%Y-%m-01'),End=$(date -u +"%Y-%m-%d" --date="+1 day") --granularity DAILY --metrics UnblendedCost
Ho visto le aziende costruire i propri strumenti interni per questo - fondamentalmente scartano la pagina di fatturazione di AWS e sulla propria dashboard, visualizzano il costo corrente e, in un esempio, lo dividono per i giorni del mese che sono trascorsi e moltiplicalo per ottenere il costo totale stimato del mese.
AWS non offre ancora un'API di fatturazione (sono sicuro che lo faranno in futuro), ma ci sono un paio di servizi esterni che possono aiutarti. Uno è CloudVertical (divulgazione: lavoro qui), dove è possibile ottenere il costo giornaliero, mensile e orario, suddiviso per servizio e per più account.
Il vero Santo Graal per un servizio come AWS non è solo quello di tenere traccia della spesa giornaliera, ma di mostrare approfondimenti sull'efficienza (costo + utilizzo = efficienza) e anche di evidenziare opportunità di risparmio (ad es. Tempi di utilizzo di istanze riservate o spot)
C'è uno strumento per visualizzare il tuo utilizzo della fatturazione AWS in cui puoi suddividere e tagliare il tuo utilizzo su diverse risorse AWS fino a un minimo di 30 minuti. Ho pubblicato una risposta più approfondita su /programming//a/37585673/1526342
Ora puoi farlo con l'API Cost Explorer. Puoi accedere molto facilmente tramite awscli / boto3, ad esempio, ma il punto è che è molto più facile di prima.