AWS: Cost optimization – обзор Bills, Cost Explorer и контроль расходов

Автор: | 02/11/2021

Продолжим серию по оптимизации расходов в AWS.

Предыдущие посты –AWS: оптимизация расходов – покупка и анализ RDS Reserved Instances, AWS: Cost Explorer – проверка расходов на примере CloudWatch Logs, AWS: Cost optimization – обзор расходов на сервисы и стоимость трафика в AWS.

Теперь, когда мы разобрались за что мы вообще платим в AWS – посмотрим, какие инструменты AWS предоставляет, что бы эти затраты отслеживать и оптимизировать. Все инструменты можно посмотреть тут>>>.

В этом посте рассмотрим два места, с которых стоит начать обзор расходов – это Bills и AWS Cost Explorer. В следующих – потрогаем Trusted Adisor, Compute Optimizer и S3 Analytics.

AWS Bills

Bills полезен тем, что во-первых – даёт детализацию по каждому AWS Region, а во-вторых – детальный отсчёт по затратам каждого сервиса.

Переходим в Billing Management Console, слева выбираем Bills, выбираем интересующий месяц – и получаем полный отчёт о скидках и расходах:

На скриншоте видны скидки Compute Savings Plans – их рассмотрим позже, и EDP Discounts (AWS Enterprise Discount Program – EDP) – это скидка от AWS нашей организации,  т.к. проектов много, и AWS даёт нам значительные скидки (например – скидка в 90% на CloudFront – очень вкусно).

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

К примеру, счёт за EC2 может выглядеть так:

Теперь, когда получили наглядное представление об общей структуре расходов посмотрим, что нам может рассказать Cost Explorer.

AWS Cost Explorer

Cost Explorer – наверное основной иструмент для контроля расходов.

Переходим в AWS Cost Management > Cost Explorer, выбираем интересующий период, в Group by выбираем Service, и посмотрим основные расходы тут:

На самом графике видим топ-5 сервисов, на которые тратим деньги, а в табличке под ним – полный список.

Cost allocation tags

Очень полезная штука – Cost Allocation Tags, которая позволяет в Cost Explorer разделить расходы по тегам.

К примеру, у нас есть теги Tier и Env. Tier указывает команду, которой ресурс принадлежит (DevOps, Backend, QA, etc), а Env – окружение (Dev, Stage, Prod).

Используя их – можем получить статистику по нужным группам ресурсов:

Расходы на EC2-Instacnes с отрицательным значением – это скидки на ресурсы, в данном случае это Saving Plans.

Cost Explorer: Group by и Filters

В Cost Explorer у нас есть два основных инструмента – Group by и Filters.

К примеру, что бы посмотреть детализацию расходов по типам EC2-инстансов – в Group by выбираем Instance Type, а в FiltersEC2-Instances:

Ещё полезная опция в Filters – это Usage Type Group, позволяющая отобразить расходы по конкретной категории, например, что бы отобразить расходы на обработку данных NAT Gateway с разбивкой по окружениям – используем Group by Tag: Env и Filters Usage Type Group: EC2: NAT Gateway – Data Processed:

Описание всех Usage Type Group – см. Filter and group options.

AWS Resource Groups Tag editor и EC2 Global View

Хотя Tag Editor не относится к Cost Explorer, но раз мы видим расходы EC2-инстансы без тега Tier – надо найти их.

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

К примеру, найти все EC2 во всех регионах без тега Tier можно так:

Также, инстансы можно найти через недавно появившийся инструмент в AWS Console – EC2 Global View:

Cost Explorer – информация о трафике

Раз уж мы коснулись Data Transfer, то давайте посмотрим как с помощью Cost Explorer можно проверить сколько мы платим за трафик, и за что именно.

Например, отобразить информацию о том, сколько трафика было передано через EC2-инстансы – используем такой фильтр:

С группировкой по сервисам:

Либо сгруппировать по API Operations:

Или применить в Filters выборку по Usage Type и Group By: Service:

Reports

В Reports имеется набор уже готовых репортов для Cost Explorer:

И туда же можно сохранить свои репорты с набором Group by, Filters и периодом времени, что бы в следующий раз не настраивать выборку заново:

Cost Explorer: что такое “EC2-other”?

Наверно – самый часто задаемый вопрос по AWS Cost Explorer, в том числе мной.

Собственно – что входит в EC2-Other, и почему он такой дорогой? На самом первом графике туда уходит почти 170 долларов из 800:

Посмотрим. Выбираем в Filters: EC2-Other, а в Group byUsage type:

И тут сразу всё видно:

В Others включены прочие расходы, например – Elastic IP, которые не подключены ни к одному инстансу:

В целом, в EC2-Other включены расходы на:

  • EBS-диски: операции I/O, и provisioned storage (сколько места на EBS выделено по всему аккаунту), snapshots (хранение, передача данных)
  • CPUCredits: доплата за burst инстансов T2/3/4
  • NAT Gateways: количество обработанных байт, время работы в часах
  • Data Transfer: передача данных между AWS Availability Zones (cross-AZ traffic)
  • Elastic IP: EIP, не подключенные к EC2

Ссылки по теме