Respostas:
A AWS acaba de anunciar a disponibilidade geral da funcionalidade para monitorar cobranças estimadas usando alertas de cobrança via Amazon CloudWatch (aparentemente ela já está disponível para contas premium da AWS desde o final de 2011, consulte a resposta de Daniel Lopez em Existe uma maneira de configurar o Amazon AWS limite de faturamento? ):
Estimamos regularmente a cobrança mensal total de cada serviço da AWS que você usa. Quando você ativa o monitoramento de sua conta, começamos a armazenar as estimativas como métricas do CloudWatch, onde permanecerão disponíveis pelo período normal de 14 dias. [...]
Conforme descrito na publicação introdutória do blog, você pode começar usando os alertas de cobrança para saber quando sua conta da AWS será maior que o esperado , consulte Monitorar suas cobranças estimadas usando o Amazon CloudWatch para obter mais detalhes sobre essa funcionalidade.
Isso já é bastante útil para muitas necessidades básicas; no entanto, o uso das APIs do CloudWatch para recuperar você mesmo as métricas armazenadas (consulte GetMetricStatistics ) permite gerar fluxos de trabalho arbitrários e lógica de negócios com base nesses dados e, é claro, você pode gerar um relatório diário sobre quanto gastou no dia anterior também.
Em relação a este último, o escopo desta oferta também é enfatizado:
É importante observar que essas são estimativas, não previsões . A estimativa aproxima o custo de seu uso da AWS até o momento no ciclo de faturamento atual e aumentará à medida que você continuar consumindo recursos . [...] Não leva em consideração tendências ou possíveis mudanças no seu padrão de uso da AWS. [ênfase minha]
Ou seja, a granularidade das métricas relatadas ainda precisa ser analisada (vejo pontos de dados a cada 4 a 8 horas, mas não necessariamente valores atualizados a cada vez, como seria de esperar), portanto, obter um relatório diário suficientemente preciso pode exigir alguma pós-processamento estatístico.
Infelizmente, isso é menos direto do que se poderia pensar, especialmente porque os dados desejados podem ser inspecionados manualmente através da sua conta. Há duas opções de monitoramento que se esperaria:
Nem a AWS nem qualquer outro fornecedor de IaaS / PaaS / SaaS de que eu conheço oferecem acesso à API para seus dados contábeis atualmente (talvez devido às implicações financeiras / legais em potencial), criando qualquer forma de integração de terceiros (o que seria fácil de hoje em dia), na melhor das hipóteses, complicado, na medida em que você precisa recorrer à raspagem na Web para recuperar os dados em primeiro lugar.
Felizmente, uma nova oferta da Cloudability entrou em cena recentemente para fazer exatamente isso de uma maneira profissional e independente de fornecedor, estamos usando com grande sucesso já especificamente para a AWS - você atualmente no entanto, receba apenas um relatório diário (ou menos frequente) dos seus gastos mensais , ou seja, ainda não está dividido nos seus gastos diários. Adicionar o aumento diário seria trivial, é claro, então espero e espero que eles disponibilizem mais informações como essa ao longo do tempo.
A abordagem deles para os preços [link removido após a descontinuação da camada gratuita] também é atualizada (apesar de óbvia) e simplesmente ligada aos seus próprios gastos em nuvem; portanto, deve se pagar assim que você perceber o respectivo potencial de economia (eles não cobram qualquer coisa, se você gastar menos de US $ 2,5 mil / mês).
Atualização 20121016 : Infelizmente, a Cloudability mudou seu modelo de preços para um modelo mais comum, que ainda inclui uma camada gratuita (e é um preço razoável em geral), mas remove o acesso aos recursos avançados, que eu considerava uma abordagem agradável e inteligente para os usuários. com orçamentos pequenos, que ainda podem ser multiplicadores em outros lugares ou fazer upgrade depois de crescer.
Atualização 20150115: Infelizmente, a Cloudability escolheu o caminho de muitos fornecedores de freemium SaaS e finalmente interrompeu completamente o nível gratuito: a partir de 1º de fevereiro, não ofereceremos mais a edição Cloudability Free que você está usando hoje .
O ex ressalva (mantido para referência abaixo) de exigir que suas credenciais principais AWS não se aplica mais - AWS recentemente introduzidos New IAM Características: Senha gestão e acesso a Atividade da conta e Uso Relatórios Páginas :
Esse novo recurso permite criar usuários separados e distintos do IAM para fins comerciais e técnicos. Você pode conceder aos usuários de negócios acesso às páginas de Atividade da conta e / ou Relatórios de uso do site da AWS para permitir que eles acessem dados de cobrança e uso sem conceder a eles acesso a outros recursos da AWS, como instâncias ou arquivos do EC2 no S3
Agora, a cloudability também integrou isso, portanto, você não precisa mais fornecer suas principais credenciais da AWS ou gastar o esforço extra para estabelecer o Faturamento consolidado apenas para obter informações sobre seus gastos na nuvem, consulte Como configurar o Amazon IAM (Gerenciamento de contas de identidade) ) para obter detalhes.
Há uma advertência que você deve estar ciente de que existe:
Para acessar seus dados, você precisará entregar suas principais credenciais da AWS, pois, caso contrário, elas não poderão raspar sua conta, obviamente. Para a AWS em particular, você ainda pode evitar isso facilitando o Faturamento consolidado , onde consolida o pagamento para várias contas Amazon AWS [...] designando uma única conta paga , que por sua vez não tem acesso aos seus recursos e dados de computação.
Usando as ferramentas awscli , você pode obter seu total mensal:
$ 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
Os totais de dois dias diferentes podem ser subtraídos para obter o delta diário. Ou, uma estimativa pode ser obtida de uma só vez, aumentando a janela de tempo ( end-time
- start-time
) para 24h e subtraindo o ponto de dados mais antigo do último.
Notas:
date
(para outros date
s, por exemplo, no OSX, date -v-12H
pode funcionar)Se você realmente precisa de um relatório de custos diário, use a ferramenta " Relatório de uso " na sua conta da AWS. Você pode solicitar um relatório para cada serviço que usar, em qualquer período que desejar, em granularidade de hora a mês. Em seguida, ele baixa um CSV.
Você precisará fazer um pós-processamento nesse CSV (já que não está no custo, mas no uso etc), mas fornecerá os dados necessários para que você tenha um custo diário.
A Amazon fornece suas cobranças mensais atuais aqui:
http://aws-portal.amazon.com/gp/aws/developer/account/index.html?ie=UTF8&action=activity-summary
No topo da página, indica a atualidade dos dados. Acho que tende a demorar algumas horas.
Este é o registro mais preciso e atualizado que você pode obter da Amazon ou de qualquer outra pessoa no momento.
Talvez este módulo Python no Github possa ajudá-lo a começar: pyec2costs (para instâncias reservadas ou sob demanda).
Existe uma ferramenta relativamente nova de código aberto da Netflix, chamada Ice: https://github.com/Netflix/ice, que permite visualizar os detalhes de cobrança conforme recuperados através dos relatórios da AWS gerados em seus buckets S3.
Dê uma olhada no Xervmon. Eles fornecem gastos e uso diários, além de análises históricas. Eles são um próximo provedor de serviços com integrações detalhadas com o Amazon AWS planejadas para os próximos 3 meses.
Algumas capturas de tela da minha conta atual são as seguintes. http://cloudmaya.net/~develop/demo/Slide1.jpg http://cloudmaya.net/~develop/demo/Slide2.jpg
Monte de profissionais construíram e é bastante elegante.
Aqui está um script simples que demonstra como analisar e analisar seu arquivo CSV de cobrança detalhado da AWS:
Deve ser fácil o suficiente para que você possa criar sua própria análise!
Usando o comando CLI da AWS CostExplorer É possível recuperar as métricas de custo e uso da conta
Por exemplo: se você precisar recuperar o custo do início do mês até os dias atuais, poderá usar o comando abaixo.
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
Saída: 615.6129260967
Se você precisar obter o custo DIARIAMENTE, use GRANULARIDADE como DIARIAMENTE, conforme mostrado abaixo:
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
Vi empresas criarem suas próprias ferramentas internas para isso - basicamente elas descartam a página de faturamento da AWS e em seu próprio painel, exibem o custo atual e, em um exemplo, dividem-na pelos dias do mês que passou e vários para obter o custo total estimado do mês.
A AWS ainda não oferece uma API de cobrança (tenho certeza de que no futuro), mas existem alguns serviços externos que podem ajudar. Um deles é o CloudVertical (divulgação: trabalho aqui), onde você pode obter seus custos diários, mensais e por hora, discriminados por serviço e para várias contas.
O verdadeiro Santo Graal para um serviço como a AWS, porém, não é apenas rastrear os gastos diários, mas mostrar informações sobre eficiência (custo + uso = eficiência) e também destacar oportunidades de economia (por exemplo: horários para usar instâncias reservadas ou pontuais)
Existe uma ferramenta para visualizar seu uso de faturamento da AWS, no qual você pode fatiar e dividir seu uso em diferentes recursos da AWS em até 30 minutos. Publiquei uma resposta mais completa em /programming//a/37585673/1526342
Agora você pode fazer isso com a API do Cost Explorer. Você pode acessar muito facilmente via awscli / boto3, por exemplo, mas o ponto é que é muito mais fácil do que antes.