Как я могу создать сценарий оповещения, когда использование моего Amazon Web Service превышает определенное значение?

Мы используем S3, SimpleDB и SQS в довольно сложном проекте.

Я хотел бы иметь возможность автоматически отслеживать их использование, чтобы быть уверенным, что мы внезапно не потратим большие суммы денег, когда не собирались (возможно, из-за ошибки).

Есть ли способ прочитать данные об использовании всех веб-сервисов Amazon и / или текущую долларовую стоимость учетной записи в реальном времени из сценария?

Или какой-либо сервис или скрипт, который выдает предупреждения на основе этого?


person frabcus    schedule 02.03.2010    source источник
comment
Хороший вопрос - мне нравится EC2, но мне всегда досадно трудно было подсчитать с точностью до минуты затраты на использование.   -  person gareth_bowles    schedule 03.03.2010
comment
Возможно, вам больше повезет, если вы зададите этот вопрос на форуме поддержки EC2; пожалуйста, отправьте ответ здесь, если вы его получите.   -  person gareth_bowles    schedule 24.03.2010
comment
Спасибо, Гарет - я разместил вопрос здесь developer.amazonwebservices.com/connect/   -  person frabcus    schedule 14.04.2010


Ответы (3)


Amazon только что объявила, что теперь вы можете «устанавливать будильник для любого показателя, который отслеживает Amazon CloudWatch» (загрузка ЦП, чтение и запись на диск, сетевой трафик и т. д.). Кроме того, теперь все инстансы бесплатно поставляются с базовым мониторингом.

person Justin Garrick    schedule 03.12.2010

Мы только что выпустили службу Lab Management, которая добавляет политики к использованию AWS: ограничения по времени, максимальное количество экземпляров, максимальные размеры компьютеров и т. Д. Вы можете попробовать это и посмотреть, поможет ли это: http://LabSlice.com. Поскольку это стартап, мы очень ценим отзывы о том, как решать такие проблемы, как ваша (например, напишите мне, если вы считаете, что приложение можно было бы лучше изменить в соответствии с вашими требованиями).

Я не верю, что есть какой-либо прямой способ контролировать затраты на AWS в долларах. Я сомневаюсь, что Amazon предоставляет API для получения подробных показателей использования, поскольку, очевидно, не в их интересах помочь вам сократить расходы. На самом деле я столкнулся с двумя случаями, когда в компании (банке) возникли неожиданные расходы из-за неправильно настроенных скриптов, поэтому я знаю, что это может быть проблемой.

person Simon at LabSlice-com    schedule 11.08.2010

Я столкнулся с той же проблемой с экземплярами 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

Вы можете подумать о том, чтобы сделать что-то подобное в соответствии с вашими потребностями. В этом случае будьте особенно осторожны, остановив службу перед изменением образа, чтобы экземпляр не отключился до того, как у вас появится возможность повторно связать.

Если вы хотите, вы можете отключить экземпляры в определенное время (после того, как все уйдут с работы?), Или вы можете передать значение продолжительности активности / времени отключения через параметры -d или -f в ec2-run-instances и проанализировать его в скрипте. .

person Justin Garrick    schedule 13.04.2010
comment
Спасибо - и мы планируем сделать так, чтобы все наши экземпляры исчезли через некоторое время. Тем не менее, это по-прежнему не останавливает ошибку, генерирующую 10000 экземпляров, и они заряжаются в течение часа. И это не устраняет другие ошибки при использовании SQS или S3, вызывающие огромные расходы. - person frabcus; 14.04.2010