Answers:
AWS刚刚宣布了该功能的总体可用性,该功能可通过Amazon CloudWatch 使用账单警报来监视估计的费用(显然,自2011年底以来,该功能已适用于AWS高级账户,请参阅Daniel Lopez对“ 是否可以设置Amazon AWS的方法 ”的回答)。帐单限额?):
我们会定期估算您使用的每个AWS服务的每月总费用。当您启用对帐户的监控后,我们便开始将估算值存储为CloudWatch指标,在通常的14天时间段内它们都将保持可用状态。[...]
如介绍性博客文章中所述,您可以通过使用计费警报开始,以通知您AWS账单何时会高于预期,有关此功能的更多详细信息,请参阅使用Amazon CloudWatch监控估计的费用。
对于许多基本需求,这已经非常有用,但是,使用CloudWatch API自己检索存储的指标(请参阅GetMetricStatistics)实际上允许您基于此数据来驱动任意工作流和业务逻辑,当然,您可以生成每日报告前一天的花费也是如此。
关于后者,还强调了此产品的范围:
重要的是要注意,这些只是估计,而不是预测。该估算值近似于当前在当前计费周期内迄今为止AWS使用的成本,并且随着您继续消耗资源而增加。[...]它没有考虑您的AWS使用模式的趋势或潜在变化。[强调我的]
也就是说,尚未分析报告指标的粒度(我会每隔4到8小时看到数据点,但不一定每次都更新值,正如人们实际期望的那样),因此得出足够精确的每日报告可能需要一些统计后处理。
不幸的是,这比人们想象的要简单,特别是考虑到可以通过您的帐户手动检查所需的数据。一个监控选项有两个:
目前我不了解的AWS或任何其他IaaS / PaaS / SaaS供应商都没有提供API访问其会计数据的权限(可能是由于潜在的财务/法律影响),从而进行了任何形式的第三方集成(这很容易实现)如今最多)很繁琐,因为您首先需要借助网络抓取来检索数据。
幸运的是,Cloudability的一项新产品[免费等级终止后已删除链接]现已进入阶段,以专业人士和供应商不可知的方式为您做到这一点,我们已经在AWS上成功地使用了该产品-您目前将不过,仅会收到您每月支出的每日(或更不频繁)报告,即尚未细分为您的每日支出。添加每日增量当然是微不足道的,因此我希望并希望他们随着时间的推移会提供更多类似的信息。
他们的定价方法(免费级终止后链接被删除)也正在刷新(尽管很明显),并且仅与您自己的云支出相关联,因此,一旦意识到各自的储蓄潜力,它们便会收回成本(他们不收费)如果您每月花费少于$ 2.5k,则可以选择任何费用)。
20121016更新:不幸的是,Cloudability已将其定价模型更改为更常见的定价模型,该模型仍包括免费套餐(通常定价合理),但是删除了其中的高级功能,我认为对于用户而言,这是一种令人耳目一新的公平,明智的方法预算很少,他们可能仍然是其他地方的乘数,或者一旦成长便会升级。
更新20150115:不幸的是,Cloudability选择了许多免费增值SaaS供应商的路径,并最终完全停止了免费套餐:从2月1日起,我们将不再提供您今天使用的Cloudability Free版本。
以前要求您提供主要AWS凭证的警告(以下保留以供参考)不再适用-AWS最近引入了新的IAM功能:密码管理以及对帐户活动和使用情况报告页面的访问:
这项新功能使您可以为业务和技术目的创建独立的IAM用户。您可以授予业务用户访问AWS网站的账户活动和/或使用情况报告页面的权限,以允许他们访问账单和使用情况数据,而无需授予他们访问其他AWS资源(例如EC2实例或S3中的文件)的权限。
Cloudability现在也已对此进行了集成,因此您无需再将其交给您的主要AWS凭证,也无需花费额外的精力来建立Consolidated Billing即可了解您的云支出,请参阅如何设置Amazon IAM(身份帐户管理) )以获取详细信息。
有一个警告,但应该注意:
为了访问您的数据,您需要将其交给您的主要AWS凭证,因为显然,否则它们将无法抓取您的账户。特别是对于AWS,您仍然可以通过简化Consolidated Billing来避免这种情况,在该方法中,您可以通过指定一个付款帐户来合并多个Amazon AWS帐户的付款,而该帐户又无法访问您的计算资源和数据。
使用awscli工具,您可以获得当月的总数:
$ 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
可以减去两个不同日期的总计,以获得每日增量。或者,可以通过将时间窗(end-time
- start-time
)增加到24h并从最新值中减去最早的数据点来一次性获得估算值。
笔记:
date
(date
例如对于OSX上的其他版本,date -v-12H
可能会工作)亚马逊在这里提供您当前的当月费用:
http://aws-portal.amazon.com/gp/aws/developer/account/index.html?ie=UTF8&action=activity-summary
在页面顶部,它指示数据的最新程度。我发现它往往会滞后几个小时。
这是您目前可以从Amazon或任何其他人那里获得的最准确和最新的记录。
也许Github上的Python模块可以帮助您入门: pyec2costs(用于保留或按需实例)。
Netflix开源了一个名为Ice的相当新的工具:https : //github.com/Netflix/ice,它可以可视化通过S3存储桶中生成的AWS报告检索的账单明细。
看看Xervmon。他们提供了有关历史的附加分析的日常支出和使用情况。他们是即将到来的服务提供商,计划在未来3个月内与Amazon AWS进行详细集成。
我当前帐户的一些屏幕截图如下。 http://cloudmaya.net/~develop/demo/Slide1.jpg http://cloudmaya.net/~develop/demo/Slide2.jpg
一群专业人士已经建立,这很整齐。
使用CostExplorer AWS CLI命令可以检索该帐户的成本和使用情况指标
例如:如果您需要从当月开始到今天取回费用,可以使用以下命令。
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
输出:615.6129260967
如果您需要每天获取成本,请使用GRANULARITY作为DAILY,如下所示:
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
我已经看到公司为此构建了自己的内部工具-基本上,他们在自己的仪表板上抓取AWS账单页面,显示当前成本,并在一个示例中,将其除以当月已过的天数,然后乘以该值即可得出估算的每月总费用。
AWS尚不提供计费API(我相信将来会提供),但是有两个外部服务可以提供帮助。一种是CloudVertical(披露:我在这里工作),在这里您可以按服务,多个帐户细分的每日,每月和每小时成本。
AWS之类的服务的真正圣杯虽然不仅要跟踪日常支出,而且要显示出对效率的洞察力(成本+使用率=效率),并强调节省的机会(即:使用预留实例或现货实例的时间)
有一个工具可查看您的AWS Billing Usage(AWS账单使用情况),您可以在其中将不同AWS资源之间的使用情况切成薄片并将其切成小块,只需30分钟。我已经在/programming//a/37585673/1526342上发布了更详尽的答案
现在,您可以使用Cost Explorer API进行此操作。例如,您可以通过awscli / boto3轻松访问,但要点是它比以前容易得多。