7

我们在一个相当复杂的项目中使用 S3、SimpleDB 和 SQS。

我希望能够自动跟踪它们的使用情况,以确保我们不会在不打算的时候突然花费大量资金(可能是因为错误)。

有没有办法从脚本中读取所有 Amazon Web Services 的使用数据和/或帐户的当前实时美元成本?

或者任何基于此提供警报的服务或脚本?

4

3 回答 3

3

亚马逊刚刚宣布,您现在可以“为 Amazon CloudWatch监控的任何指标设置警报”(CPU 利用率、磁盘读写以及网络流量等)。此外,所有实例现在都免费提供基本监控。

于 2010-12-03T13:57:28.183 回答
2

我们刚刚发布了一项实验室管理服务,它为 AWS 使用添加了策略:时间限制、最大实例数、最大机器大小等。您可能想尝试一下,看看它是否有帮助:http: //LabSlice.com。由于这是一家初创公司,我们非常重视有关如何解决诸如您的问题的反馈(即,如果您认为可以更好地修改应用程序以满足您的要求,请给我发电子邮件)。

我不相信有任何直接的方法可以控制 AWS 成本。我怀疑亚马逊是否提供了一个 API 来深入了解使用情况,因为帮助您降低成本显然不符合他们的利益。实际上,我遇到了两个例子,由于脚本配置错误,公司(银行)会产生意外成本,所以我知道这可能是个问题。

于 2010-08-11T14:43:40.373 回答
1

我在 EC2 实例上遇到了同样的问题,但以不同的方式解决了这个问题——我没有监控实例,而是让它们在设定的时间后自动杀死自己。根据您的描述,听起来这在您的环境中可能不实用,但我想我会分享以防万一。我的 AMI 是基于 Fedora 的,所以我创建了以下 bash 脚本,将其注册为服务,并让它在启动时运行:

#!/bin/bash
# chkconfig: 2345 68 20
# description: 50 Minute Kill
# Source Functions
. /etc/rc.d/init.d/functions

start()
{
    # Shut down 50 minutes after starting up
    at now + 50 minutes < /root/atshutdown
}

stop()
{
    # Remove all jobs from the at queue because I'm not using at for anything else
    for job in $(atq | awk '{print $1}')
    do
        atrm $job
    done
}

case "$1" in
    start)
        start && success || failure
        echo
        ;;
    stop)
        stop && success || failure
        echo
        ;;
    restart)
        stop && start && success || failure
        echo
        ;;
    status)
        echo $"`atq`"
        ;;
    *)
        echo $"Usage: $0 {start | stop | restart}"
        RETVAL=1
esac    

exit $RETVAL

您可能会考虑做一些类似的事情来满足您的需求。 如果您这样做,请特别注意在修改映像之前停止服务,以便实例在您有机会重新捆绑之前不会关闭。

如果您愿意,您可以让实例在固定时间关闭(在每个人下班后?),或者您可以通过-dor-f参数传入保持活动长度/关闭时间ec2-run-instances并将其解析到脚本中。

于 2010-04-13T20:11:51.790 回答