亚马逊AWS:如何以编程方式计算我的支出?

时间:2011-06-19 08:56:14

标签: amazon-ec2 amazon-web-services

我们正在使用亚马逊的EC2 我们希望能够编写一个程序来计算我们不时花费多少钱?

我们认为可以下载使用情况报告并应用定价规则。 有没有更好的方法?直接API?是否有可能实时进行(报告有些延迟)

使用情况报告:https://aws-portal.amazon.com/gp/aws/developer/account/index.html?action=usage-report

7 个答案:

答案 0 :(得分:5)

不幸的是,亚马逊不提供实时数据(实际上,您可能会注意到亚马逊的使用报告的准确性会在当前的结算周期内发生变化),也不会提供API来查询其当前数据价格。

我们目前正在为我们的系统执行此操作,并且已经找到了以下工作的组合:

  • 实时估算:根据监控数据(查看/ proc的自定义代理监控的实例数,开始日期,终止日期,带宽和IO使用情况)估算费用。我们在这里悲观地高估了。
  • 最近估算:根据使用情况报告替换实时估算的总费用。
  • Bill:根据实际账单替换总费用

在每个估算阶段,我们进行非常原始的调整,以便计算总数:我们应用信用/收费使数字符合下一个估算水平。

您可以花费大量精力来尽可能准确地获得这些估算值 - 这在很大程度上取决于您愿意承担多少数据收集和维护费用。

我们考虑每个应用程序的使用情况(每个实例可以在一个实例小时内为多个应用程序重用),因此这个代码的收集开销和维护是值得的。

答案 1 :(得分:1)

自从提出此问题以来,AWS结算已经发生了很多变化。借助AWS的详细结算文件和编程访问权限,您可以获取所有AWS使用情况的详细每小时结算数据。

而不是编写自己的解析器。您应该尝试使用Cloudability's AWS Cost Analytics之类的工具来整合和细分您的支出数据。

答案 2 :(得分:0)

找到这个Python代码来抓取并下载XML报告:

check_aws_usage.py

答案 3 :(得分:0)

有一些网站会为您做分析(像可信赖的顾问这样的东西),但您可能最终会根据自己的需要编写自己的工具。对于我的客户,我使用my own tool(每个人都免费)。您可以使用来自github的ec2price / rdsprice python脚本开膛手获取当前价格并将价格应用到您当前的帐户 - 我认为这是其他人所做的。

答案 4 :(得分:0)

首先要启用详细的帐单导出到S3存储桶(请参阅here

然后我在Python中编写了一个简单的服务器来检索您的详细账单,并根据服务类型和使用类型对其进行细分(请参阅此GitHib repo)。实时分析数据并解释您当前的每月费用。

因此,您可以随时查看您的费用是多少以及哪些服务的费用最高等等。

如果您标记EC2实例,S3存储桶等,它们也会显示在专用线上。

答案 5 :(得分:0)

答案更新:现在有一个 API

AWS Cost Explorer Service

答案 6 :(得分:0)

这个问题很久以前就被问到了,现在已经发生了很多变化。您可以使用成本管理器 API 以编程方式访问成本。使用此 API 数据将提供过去 12 个月的数据。此外,每个分页请求将产生 0.01 美元。虽然成本不会实时提供,但它需要 24 小时,因为成本管理器至少每 24 小时刷新一次您的成本数据,它使用用于生成 AWS 成本和使用率报告的相同数据。

参考:Analyzing your costs with Cost Explorer