Amazon AWS: как мне программно подсчитать расходы?

Мы используем Amazon EC2 Мы хотели бы иметь возможность написать программу, которая рассчитывает, сколько мы потратили время от времени?

Мы решили, что можно загрузить отчет об использовании и применить правила ценообразования. Есть ли лучший способ? Прямой API? Возможно ли это сделать в режиме реального времени (отчеты несколько задерживаются).

Использование-отчет: https://aws-portal.amazon.com/gp/aws/developer/account/index.html?action=usage-report

Ответ 1

К сожалению, Amazon не предоставляет данные в режиме реального времени (и, по сути, вы, вероятно, заметите, что точность отчетов об использовании Amazon будет зависеть от текущего расчетного периода), и они не предоставляют API для запроса их текущих цены.

В настоящее время мы делаем это для наших систем и хорошо знаем комбинацию следующих работ:

  • Оценки в реальном времени: оценка сборов на основе данных мониторинга (количество экземпляров, дата начала, дата завершения, пропускная способность и использование ввода-вывода в ящике, контролируемые пользовательским агентом, смотрящим на /proc ). Мы пессимистически переоцениваем здесь.
  • Недавняя оценка: замените общие затраты для оценок в реальном времени с учетом сборов на основе отчета об использовании.
  • Билл: замените общие затраты на основе фактического счета.

На каждом этапе оценки мы выполняем очень примитивную корректировку, поэтому итоговые суммы складываются: мы применяем кредит/заряд, чтобы привести показатель в соответствие со следующим уровнем оценки.

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

Мы учитываем использование для каждого приложения (где каждый экземпляр может повторно использоваться в течение часа экземпляра для нескольких приложений), поэтому затраты на сбор и обслуживание этого кода того стоят.

Ответ 2

Поскольку этот вопрос был задан, многое изменилось с биллингом AWS. С подробными биллинговыми файлами AWS и программным доступом вы можете получить подробные, ежечасные платежные данные для всего использования AWS.

Вместо написания собственного анализатора. Вы должны попробовать инструмент, например Cloudability AWS Cost Analytics, чтобы консолидировать и разбить ваши данные о расходах.

Ответ 3

Найден этот код Python для очистки и загрузки XML-отчетов:

check_aws_usage.py

Ответ 4

Есть несколько сайтов, которые будут делать анализ для вас (например, доверенный советник), но вы, вероятно, в конечном итоге напишите свой собственный инструмент для ваших нужд. Для моих клиентов я использую свой собственный инструмент (который является бесплатным для всех). Вы можете получить текущие цены, используя ec2price/rdsprice python script rippers из github и примените цены к вашей текущей учетной записи - я думаю, что это все делают другие.

Ответ 5

Прежде всего, нужно включить подробный экспорт биллинга в ведро S3 (см. здесь)

Затем я написал упрощенный сервер в Python, который извлекает ваш подробный счет и разбивает его на тип сервиса и тип использования (см. его в этом GitHib repo). Данные анализируются в реальном времени и объясняют ваши текущие ежемесячные расходы.

Таким образом, вы можете в любое время проверить, какие ваши расходы и какие услуги вам больше всего дороже.

Если вы помечаете свои экземпляры EC2, ведра S3 и т.д., они также будут отображаться по выделенной строке.