如何在我的Amazon Web Service使用量超过一定数量时编写警报脚本?

fra*_*cus 6 amazon-s3 amazon-ec2 amazon-web-services amazon-simpledb

我们在相当复杂的项目中使用S3,SimpleDB和SQS.

我希望能够自动跟踪他们的使用情况,以确保我们不打算在我们不打算花费大量资金时(可能是因为一个错误).

有没有办法从脚本中读取所有亚马逊网络服务的使用数据和/或帐户的当前实时美元成本?

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

Jus*_*ick 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
Run Code Online (Sandbox Code Playgroud)

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

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