Как я могу отслеживать ежедневные расходы на AWS?

26

Наша инфраструктура на AWS. Я хочу получить ежедневный отчет о том, сколько потрачено в предыдущий день. Каков наилучший способ сделать это?

Sabya
источник

Ответы:

20

Обновить

AWS только что объявил об общей доступности этой функции для мониторинга расчетных платежей с помощью биллинговых оповещений через Amazon CloudWatch (очевидно, он был доступен для премиум-аккаунтов AWS уже с конца 2011 года, см. Ответ Дэниела Лопеса на « Есть ли способ настроить Amazon AWS»? лимит биллинга? )

Мы регулярно оцениваем общую ежемесячную плату за каждую используемую вами услугу AWS. Когда вы включаете мониторинг для своей учетной записи, мы начинаем сохранять оценки в виде метрик CloudWatch, где они будут оставаться доступными в течение обычного 14-дневного периода. [...]

Как указано во вступительном сообщении в блоге, вы можете начать с использования уведомлений о выставлении счетов, чтобы сообщить, когда ваш счет в AWS будет выше ожидаемого , см. « Отслеживание расчетных расходов с помощью Amazon CloudWatch» для получения дополнительной информации об этой функции.

Это уже довольно полезно для многих основных нужд, однако использование API-интерфейсов CloudWatch для самостоятельного извлечения сохраненных метрик (см. GetMetricStatistics ) фактически позволяет вам управлять произвольными рабочими процессами и бизнес-логикой на основе этих данных, и, конечно, вы можете генерировать ежедневный отчет. о том, сколько потрачено в предыдущий день вроде так же.

Что касается последнего, объем этого предложения также подчеркивается:

Важно отметить, что это оценки, а не прогнозы . Смета приблизительно соответствует стоимости вашего использования AWS на текущий момент в текущем платежном цикле и будет увеличиваться по мере использования ресурсов . [...] Он не учитывает тенденции или потенциальные изменения в вашем шаблоне использования AWS. [Акцент мой]

То есть степень детализации сообщаемых показателей еще не проанализирована (я вижу точки данных каждые 4–8 часов, но не обязательно обновляю значения каждый раз, как можно было бы ожидать на самом деле), поэтому для получения достаточно точного ежедневного отчета может потребоваться некоторое статистическая постобработка.


Начальный ответ

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

  • уведомления по электронной почте / RSS / и т. д.
  • API доступ к данным

Ни AWS, ни какой-либо другой поставщик IaaS / PaaS / SaaS, о котором я знаю, в настоящее время не предоставляют API-доступ к своим учетным данным (возможно, из-за потенциальных финансовых / юридических последствий), что делает любую форму интеграции со сторонней организацией (которая будет легко делать в настоящее время) в лучшем случае громоздко, поскольку вам нужно прибегнуть к поиску в Интернете, чтобы получить данные в первую очередь.

К счастью, новое предложение от Cloudability [ссылка удалена после прекращения бесплатного уровня] недавно вышло на сцену, чтобы сделать это для вас профессиональным и независимым от поставщика способом, мы используем его с большим успехом уже специально для AWS - вы сейчас будете получать только ежедневный (или менее частый) отчет о ваших ежемесячных расходах , т. е. еще не разделенных на ваши ежедневные расходы. Конечно, добавить ежедневное увеличение было бы тривиально, поэтому я надеюсь и ожидаю, что со временем они предоставят больше информации, как эта.

Их подход к ценообразованию [ссылка удалена после прекращения бесплатного уровня] также освежает (несмотря на очевидность) и просто привязан к вашим собственным облачным расходам, поэтому должен окупиться, как только вы реализуете соответствующий потенциал экономии (они не взимают плату). вообще ничего, если вы тратите менее 2,5 тыс. долл. / мес.)
Обновление 20121016 : К сожалению, Cloudability изменила свою модель ценообразования на более распространенную модель, которая по-прежнему включает в себя бесплатный уровень (и в целом по разумной цене), но исключает доступ к расширенным функциям в нем, который я считал чрезвычайно справедливым и разумным для пользователей с небольшими бюджетами, которые могли бы все еще быть мультипликаторами в другом месте или модернизироваться, когда врастали в это.

Обновление 20150115К сожалению, Cloudability выбрала путь для многих бесплатных SaaS-поставщиков и, наконец, полностью прекратила использование бесплатного уровня: с 1 февраля мы больше не будем предлагать бесплатную версию Cloudability, которую вы используете сегодня .

Обновление 20120427

Прежний предлог (сохраненный для справки ниже), требующий ваших основных учетных данных AWS, больше не применяется - AWS недавно представила новые функции IAM: управление паролями и доступ к страницам активности учетных записей и отчетов об использовании :

Эта новая функция позволяет создавать отдельных и отдельных пользователей IAM для деловых и технических целей. Вы можете предоставить своим бизнес-пользователям доступ к страницам «Активность учетной записи» и / или «Отчеты об использовании» на веб-сайте AWS, чтобы они могли получать доступ к биллингу и данным об использовании, не предоставляя им доступ к другим ресурсам AWS, таким как экземпляры EC2 или файлы в S3.

В облачность теперь интегрирована и эта функция, поэтому вам больше не нужно передавать им свои основные учетные данные AWS и не нужно тратить дополнительные усилия на создание консолидированного биллинга только для того, чтобы получить представление о ваших облачных расходах, см. Как настроить Amazon IAM (управление учетными записями учетных записей) ) для деталей.

Бывшая оговорка

Есть одно предостережение, о котором следует знать заранее:

Чтобы получить доступ к вашим данным, вам нужно передать им свои основные учетные данные AWS, потому что в противном случае они, очевидно, не смогут очистить ваш аккаунт. В частности, для AWS вы можете избежать этого, упростив консолидированный биллинг , где вы консолидируете платежи для нескольких учетных записей Amazon AWS [...], назначая одну платящую учетную запись , которая, в свою очередь, не имеет доступа к вашим вычислительным ресурсам и данным.

Штеффен Опель
источник
Я только что зарегистрировался в Cloudability, но в их почте я не смог найти сколько мы потратили вчера (или за последние 24 часа). Они только дают ежемесячную оценку и сколько потрачено до сих пор.
Сабья
2
@sabya - вы правы, конечно, я только понял ежедневный отчет и пропустил это дополнительное требование, извините (я обновил ответ, чтобы отразить это)! Очевидно, что после второго дня для вас будет тривиальным заняться математикой, хотя наличие его прямо по почте было бы очевидным улучшением и, конечно, намного более удобным.
Штеффен Опель
12

Используя инструменты awscli , вы можете получить итоговую сумму за месяц:

$ aws --region us-east-1 cloudwatch get-metric-statistics \
    --namespace "AWS/Billing" \
    --metric-name "EstimatedCharges" \
    --dimension "Name=Currency,Value=USD" \
    --start-time $(date +"%Y-%m-%dT%H:%M:00" --date="-12 hours") \
    --end-time $(date +"%Y-%m-%dT%H:%M:00") \
    --statistic Maximum \
    --period 60 \
    --output text | sort -r -k 3 | head -n 1 | cut -f 2

2494.47

Итоговые значения за два разных дня можно вычесть, чтобы получить ежедневную дельту. Или, оценка может быть получена за один раз путем увеличения временного окна ( end-time- start-time) до 24 ч и вычитания самой ранней точки данных из самой последней.

Заметки:

  • предполагает, что вы включили мониторинг ваших предполагаемых расходов
  • Предполагается, что у вас есть GNU date(для других date, например, на OSX, date -v-12Hможет работать)
  • ваша валюта может отличаться
  • Amazon обновляет метрику CloudWatch каждые ~ 4 часа, поэтому запросы к временному окну, меньшему 4 часа, могут не возвращать какие-либо точки данных. Я использовал 12-часовое окно, чтобы быть более безопасным.
  • Я хотел включить ссылку на пост в блоге, на котором был основан мой ответ, но, очевидно, мне нужно 10 очков репутации, чтобы опубликовать более 2 ссылок. :)
mpavlov
источник
1
Важно отметить, что единственный регион, который работает для пространства имен «AWS / Billing», это us-east-1. Я вырвал большую часть своих волос, задаваясь вопросом, почему мой аккаунт с доступом к биллингу получал пустые результаты через CLI.
Кори Коул
Просто заметьте, что awscli использует botocore и эти атрибуты доступны через boto3.readthedocs.io/en/latest/reference/services/…
monkut
Так есть ли сейчас способ сделать эту работу для других регионов?
nh2
4

Если вам действительно нужен ежедневный отчет о расходах, вам необходимо использовать инструмент « Отчет об использовании » в своей учетной записи AWS. Вы можете запросить отчет для каждой услуги, которую вы используете, за любой период времени, в котором вы хотите, с детализацией от часа к месяцу. Затем он загружает CSV.

Вам нужно будет выполнить некоторую постобработку для этого CSV (поскольку это не связано с затратами, но используется и т. Д.), Но оно предоставит вам данные, необходимые для повседневных затрат.

Джон
источник
+1 Да, я понимаю. Я просто искал более простой способ.
Сабья
3

Amazon предоставляет ваши текущие ежемесячные платежи здесь:

http://aws-portal.amazon.com/gp/aws/developer/account/index.html?ie=UTF8&action=activity-summary

В верхней части страницы указывается, насколько актуальными являются данные. Я считаю, что это имеет тенденцию отставать на несколько часов.

Это самая точная и актуальная запись, которую вы можете получить от Amazon или кого-либо еще в данный момент.

Эрик Хаммонд
источник
2

Возможно, этот модуль Python на Github может помочь вам начать работу: pyec2costs (для зарезервированных экземпляров или экземпляров по требованию).

Henk
источник
2

Существует довольно новый инструмент с открытым исходным кодом от Netflix под названием Ice: https://github.com/Netflix/ice, который позволяет визуализировать платежные данные, полученные из отчетов AWS, сгенерированных в ваши корзины S3.

ngeek
источник
1

Посмотрите на Xervmon. Они обеспечивают ежедневные расходы и использование в дополнение к аналитике на историческом. Они являются будущим поставщиком услуг с подробными интеграциями с Amazon AWS, запланированными на ближайшие 3 месяца.

Некоторые скриншоты из моего текущего аккаунта, как показано ниже. http://cloudmaya.net/~develop/demo/Slide1.jpg http://cloudmaya.net/~develop/demo/Slide2.jpg

Куча профессионалов уже построена и это довольно аккуратно.

Sid4it
источник
1

Вот простой скрипт, который демонстрирует, как анализировать и анализировать подробный файл CSV для выставления счетов AWS:

Должно быть достаточно легко, чтобы вы могли построить свой собственный анализ!

oDDsKooL
источник
1

Использование команды CLI CostExplorer AWS Можно получить показатели стоимости и использования для учетной записи.

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

aws ce get-cost-and-usage --time-period Start=$(date -u -d "$TODAY" '+%Y-%m-01'),End=$(date -u +"%Y-%m-%d" --date="+1 day") --granularity MONTHLY --metrics UnblendedCost --output text | sort -r -k 3 | head -n 1 | cut -f 2

Выход: 615.6129260967

Если вам нужно получить стоимость на ежедневной основе, используйте GRANULARITY как DAILY, как показано ниже:

aws ce get-cost-and-usage --time-period Start=$(date -u -d "$TODAY" '+%Y-%m-01'),End=$(date -u +"%Y-%m-%d" --date="+1 day") --granularity DAILY --metrics UnblendedCost
Roopa
источник
0

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

AWS пока не предлагает API для выставления счетов (я уверен, что они появятся в будущем), но есть несколько внешних служб, которые могут помочь. Одним из них является CloudVertical (раскрытие: я здесь работаю), где вы можете получить свои ежедневные, ежемесячные и почасовые расходы с разбивкой по сервисам и для нескольких учетных записей.

Настоящим святым Граалем для таких сервисов, как AWS, является не только отслеживание ежедневных расходов, но и представление об эффективности (стоимость + использование = эффективность), а также выделение возможностей для экономии (т. Е. Время использования зарезервированных или выборочных экземпляров).

Эд Бирн
источник
Эд Байм прав. Есть ряд провайдеров. Облачность одна, как и CloudVertical. Однако все они очень тяжелые и дорогие, с большим количеством функций, которые вы, вероятно, никогда не будете использовать. Вместо этого рассмотрите BillGist.com (раскрытие: я работаю здесь), который очень дешев и отправляет вам сообщения по электронной почте прямо в ваш почтовый ящик.
0

Существует инструмент для просмотра вашего счета за использование AWS, где вы можете разделить и нарезать кубики по разным ресурсам AWS всего за 30 минут. Более подробный ответ я опубликовал на /programming//a/37585673/1526342.

droidlabour
источник
0

Теперь вы можете сделать это с помощью Cost Explorer API. Вы можете очень легко получить доступ, например, через awscli / boto3, но дело в том, что это намного проще, чем раньше.

cherrysoft
источник