Продолжим серию по оптимизации расходов в 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
Переходим в
>На самом графике видим топ-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, а в Filters – EC2-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 by – Usage type:
И тут сразу всё видно:
USE2-EBS:VolumeUsage.gp2
: все созданные и используемые Elastic Block Store в us-east-2 (USE2)USE2-DataTransfer-Regional-Bytes
: Interzone-In и Interzone-Out трафик (cross-availability zone traffic, см. AWS: Cost optimization – обзор расходов на сервисы и стоимость трафика в AWS)USE2-NatGateway-Bytes
: обработка трафика NAT GatewaysUSE2-NatGateway-Hours
: время работы NAT Gateways
В 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
Ссылки по теме
- $65,589 spent on AWS in September – A full breakdown of ConvertKit’s AWS bill
- Understanding Networking Costs in AWS: Data Transfer Costs by Usage Type
- 10 things you can do today to reduce AWS costs
- Tips and Tricks for Exploring your Data in AWS Cost Explorer
- How AWS Pricing Works: AWS Pricing Overview