Остановить повторяющиеся счета AWS

В социальных сетях 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]);
Вход в полноэкранный режим Выход из полноэкранного режима

Последний шаг

После того как вы выясните и прекратите использование нерациональных ресурсов, вам нужно будет сделать две последние вещи:

  1. Удалить отчет о расходах и использовании
  2. Удалите ведро S3, в котором хранится ваш отчет о расходах и использовании.

Удалите отчет о расходах и использовании

Наберите в поиске «billing», чтобы перейти в консоль биллинга, и нажмите на «Cost & Usage Reports» на левом баннере экрана. На этом экране вы увидите все активные отчеты о расходах и использовании в вашем аккаунте. Выберите отчет, который вы создали, и нажмите на кнопку «удалить» (см. скриншот ниже).

Удалите ведро S3.

Найдите S3, чтобы перейти к консоли S3. Попав в консоль S3, найдите ведро S3, в котором сохраняется ваш S3 bucket. Как только это ведро опустеет, вы можете выбрать ведро и нажать ‘Удалить’.

При нажатии на кнопку «Удалить» откроется новый экран, где вы должны ввести имя ведра и подтвердить, что хотите удалить ведро s3.

Свобода биллинга

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

Оцените статью
devanswers.ru
Добавить комментарий