В социальных сетях AWS число пользователей, которые застряли с повторяющимися ежемесячными счетами, гораздо выше, чем я думал:
Andras Szabo 🇭🇺🇩🇪@nomoreconfig
AWS присылает мне счет на 0,95 $ каждый месяц. Но мне лень разбираться почему 😂.16:07 PM — 10 Aug 2022![]()
![]()
![]()
Таня Рейли@whereistanya
После нескольких попыток перестать платить AWS 80c каждый месяц я потратила час на поиск в консоли и наконец-то нашла ту шальную службу, которую не удалила. И я был *уверен*, что на этот раз у меня все получилось, пока… Я только что получил счет от AWS за 23с. Эта штука — чертов отель «Калифорния».16:32 PM — 03 Jan 2019![]()
![]()
![]()
Джонатан Козолчик@seakoz
Мой личный счет за AWS составляет $0,13 каждый месяц. Я положил кое-что в S3 давным-давно и не помню что. Может быть, свадебные фотографии? Это должно стать намного дороже, прежде чем я пойду искать.21:43 PM — 04 Mar 2021![]()
![]()
![]()
isai.btc@isaibcortez
В субботу я получил случайные сообщения от AWS, но ничего не подумал об этом. Внезапно я получил счет на $9k и $2k AWS elastic compute за пятницу / субботу, но мои разработчики не работали в эти дни. @AWSSupport пожалуйста помогите 😖😖😖 моя средняя сумма $450 в месяц 😭😭😭😭.23:13 PM — 08 Aug 2022![]()
![]()
![]()
Для тех, кто оказался в этой ловушке, вот несколько основных шагов, которые вы можете предпринять, чтобы наконец-то остановить эти повторяющиеся счета или найти причину скачка расходов.
Напоминание: ВСЕГДА настраивайте MFA
Уделите несколько минут, зайдите на r/aws и просмотрите сообщения за последнюю неделю. Наверняка хотя бы одно сообщение звучит следующим образом: «Помогите, меня взломали, и кто-то потратил тысячи долларов с моего счета!!!». Вот один из них, если вы не можете найти ни одного самостоятельно.
Первый вопрос: «Настроили ли вы MFA на своем аккаунте?».
Ответ ВСЕГДА: «Нет».
Не будьте одним из тех, кто умоляет AWS вернуть $5K за использование, потому что вы не настроили MFA! Что если AWS перестанет отменять счета от «хакеров», если у вас нет MFA? Вы же не хотите остаться с чужим счетом в баре. Настройка MFA займет ~5 минут и может сэкономить вам тысячи долларов или большую головную боль.
Создайте отчет о расходах и использовании
Первый шаг к решению проблемы затрат — выяснить, что является причиной проблемы затрат. Чтобы сделать это, вам нужна видимость того, что работает в вашей среде. Отчет о затратах и использовании — это лучший ресурс для пользователей AWS, позволяющий получить представление о том, что работает в их учетных записях.
Отчет о затратах и использовании (CUR) — это самый подробный отчет о биллинге, который может предложить Amazon. Вы можете увидеть строку по каждому ресурсу, за каждый час в течение месяца, с более чем 100 полями, описывающими ресурсы, операции с ресурсами и структуру ценообразования. CUR содержит те же данные, которые используются для визуализации в Cost Explorer (все мы знаем, что полагаться на Cost Explorer не стоит.
В своем проекте на GitHub, Developer’s Guide to AWS Costs, я создал руководство по созданию и анализу отчета о затратах и использовании. Создание CUR не требует затрат. Единственная плата, которую вы понесете, — это плата за хранилище s3. Эта стоимость будет зависеть от размера вашего бизнеса: для индивидуального аккаунта или стартапа это будет ~$1 в месяц. Для крупных корпоративных клиентов AWS эта стоимость все равно будет меньше $~25 в месяц.
Для индивидуального пользователя, желающего избавиться от затянувшихся расходов на AWS, этот отчет, запущенный на один день, будет стоить менее $0,01 в расходах на хранение. Заплатить $0,01 за избавление от ежемесячного повторяющегося счета в $5? Да, пожалуйста!
Как найти ресурсы
Когда отчет о расходах и использовании активен, вот два простых SQL-запроса для исследования того, какие ресурсы определяют ваши расходы.
Во-первых, этот запрос представляет собой высокоуровневую сводку затрат для конкретной учетной записи по службам AWS. Используйте этот запрос в качестве высокоуровневого представления, чтобы определить, какие службы AWS нуждаются в дальнейшем исследовании.
SELECT
[lineItem/UsageAccountID],
[lineItem/ProductCode],
sum([lineItem/UnblendedCost])
FROM cur;
GROUP BY
[lineItem/UsageAccountID],
[lineItem/ProductCode]
ORDER BY
sum([lineItem/UnblendedCost]);
Теперь мы понимаем, какие службы являются причиной нашей проблемы с расходами. Далее мы можем добавить поле [lineItem/ResourceID], чтобы увидеть список всех ресурсов, которые все еще работают. В данном примере мы фильтруем все ресурсы EC2.
SELECT
[lineItem/ResourceID]
sum([lineItem/UnblendedCost])
FROM cur
WHERE
[lineItem/ProductCode] is 'AmazonEC2'
GROUP BY
[lineItem/ResourceID]
ORDER BY
sum([lineItem/UnblendedCost]);
Некоторые затраты в AWS не привязаны к ресурсу (разумеется), поэтому, если последний запрос не смог ответить на ваш вопрос, мы можем заменить поле [lineItem/ResourceID] на [lineItem/Operation] и [lineItem/UsageType] для описания категорий затрат, которые определяют расходы.
SELECT
[lineItem/UsageAccountID],
[lineItem/ProductCode],
sum([lineItem/UnblendedCost])
FROM cur;
GROUP BY
[lineItem/UsageAccountID],
[lineItem/ProductCode]
ORDER BY
sum([lineItem/UnblendedCost]);
Два вышеприведенных запроса объединяют затраты за весь период действия отчета. Добавление поля [lineItem/UsageStartDate] покажет затраты по часам. Это поле добавляет много деталей в отчет и поможет вам определить, является ли это ежемесячной платой за услуги или периодической платой за использование.
SELECT
[lineItem/UsageStartDate],
[lineItem/UsageAccountID],
[lineItem/ProductCode],
sum([lineItem/UnblendedCost])
FROM cur;
GROUP BY
[lineItem/UsageAccountID],
[lineItem/ProductCode]
ORDER BY
sum([lineItem/UnblendedCost]);
Последний шаг
После того как вы выясните и прекратите использование нерациональных ресурсов, вам нужно будет сделать две последние вещи:
- Удалить отчет о расходах и использовании
- Удалите ведро S3, в котором хранится ваш отчет о расходах и использовании.
Удалите отчет о расходах и использовании
Наберите в поиске «billing», чтобы перейти в консоль биллинга, и нажмите на «Cost & Usage Reports» на левом баннере экрана. На этом экране вы увидите все активные отчеты о расходах и использовании в вашем аккаунте. Выберите отчет, который вы создали, и нажмите на кнопку «удалить» (см. скриншот ниже).
Удалите ведро S3.
Найдите S3, чтобы перейти к консоли S3. Попав в консоль S3, найдите ведро S3, в котором сохраняется ваш S3 bucket. Как только это ведро опустеет, вы можете выбрать ведро и нажать ‘Удалить’.
При нажатии на кнопку «Удалить» откроется новый экран, где вы должны ввести имя ведра и подтвердить, что хотите удалить ведро s3.
Свобода биллинга
Эти шаги позволят вам увидеть, за что вам выставляются счета, и получить необходимую информацию, чтобы остановить эти повторяющиеся счета AWS. Если вы хотите получить более подробный анализ ваших любимых сервисов AWS, ознакомьтесь с нашим проектом на GitHub. Если есть какие-либо вопросы по этому процессу, дайте мне знать в комментариях ниже ⬇️.