День 2 — Контроль расходов
Day 2 — Cost Controls Когда вы запускаете инфраструктуру для стартапа, контроль расходов — это не то, что можно «добавить позже». Его нужно закладывать в основу с самого первого...

Day 2 — Cost Controls
Когда вы запускаете инфраструктуру для стартапа, контроль расходов — это не то, что можно «добавить позже». Его нужно закладывать в основу с самого первого дня. AWS работает по модели pay‑as‑you‑go. Это даёт огромную гибкость, но также означает, что небольшой ошибочный конфиг, забытый ресурс или неожиданный всплеск трафика могут легко превратиться в серьёзный счёт.
Если на Дне 1 мы фокусировались на безопасности (root‑пользователь, IAM, MFA), то на Дне 2 мы делаем так, чтобы счета от AWS никогда не становились для вас сюрпризом.
Практическое правило: если вы не можете мониторить расходы, вы не можете ими управлять.
Почему контроль расходов нужно включать с первого дня
AWS взимает плату за ресурсы по факту их использования. Это одно из главных преимуществ облака: вы можете быстро масштабироваться и платить только за то, что реально используете. Но если вы не настроете лимиты и оповещения, вы фактически раздаёте кредитную карту без лимита и смс‑уведомлений.
Типичные проблемы, которые приводят к резкому росту счета:
- Неудалённые ресурсы
Например, вы создали EC2‑инстансы для теста и забыли их остановить или удалить. - Ошибки конфигурации
Дорогие типы инстансов вместо дешёвых, лишние регионы, раздутые хранилища данных. - Некорректно настроенные пайплайны
Дублирующиеся сборки в CI/CD, которые расходуют вычислительные ресурсы впустую. - Внезапный трафик
Иногда достаточно одной ошибки в коде или коде рекламы, чтобы трафик или вычислительная нагрузка выросли в разы.
Чтобы избежать таких сценариев, в AWS нужно включить три базовых механизма контроля:
- Бюджеты и оповещения по ним
- Детектирование аномалий в расходах
- Оповещения через биллинг (Billing Alarms)
Как настроить бюджет на AWS
Бюджет — это простой и самый главный инструмент контроля расходов в AWS. Он позволяет вам задать ожидаемый лимит и получать уведомления, когда фактические затраты достигают определённого порога.
Шаг 1 — Переход в раздел Budgets
Вам понадобится консоль AWS от аккаунта с правами на просмотр биллинга и бюджетирования.
- Перейдите в консоль AWS и откройте Services → Billing или используйте строку поиска.
- В левой панели навигации выберите: Budgets → Create budget.
Например, если бы вы писали скрипт для автоматизации, создание бюджета выглядело бы как вызов API‑метода create-budget. Пример на Python:
import boto3
client = boto3.client('budgets')
budget = {
'BudgetName': 'StartupMonthlyCostBudget',
'BudgetLimit': {
'Amount': '100', # сумма в долларах
'Unit': 'USD'
},
'TimeUnit': 'MONTHLY', # бюджет на месяц
'BudgetType': 'COST'
}
response = client.create_budget(
AccountId='123456789012',
Budget=budget
)
print(response)
Важно: для реального использования скрипт должен быть защищён и не хранить аккаунтовые данные в коде.
Шаг 2 — Конфигурация бюджета и периода
При создании бюджета в консоли выберите следующие настройки:
- Budget type:
Cost budget - Period:
Monthly
Это означает, что вы отслеживаете фактические денежные затраты по аккаунту (или выбранным фильтрам) за месяц, и при достижении заданного значения лимита вы будете получать оповещения.
Зачем бюджет нужен не только сам по себе, но и с грамотными оповещениями
Создать бюджет — это только половина дела. Если у него нет настроенных оповещений, он превращается в «виртуальный лист бумаги», на который вы можете вообще не обращать внимания.
Рекомендуемый подход — три уровня оповещений:
- 60% бюджета → Email‑уведомление
Спокойный сигнал о том, что текущие расходы вписываются в план, но месяц уже существенно продвинулся. - 80% бюджета → Email + Push‑уведомление (например, через SNS)
Жёсткий сигнал о том, что нужно немедленно проверить ресурсы и паттерны использования. - 100% бюджета → критическое оповещение
Проактивный сигнал о вероятном превышении бюджета до того, как счёт пришёл из AWS.
Как правильно настроить оповещения бюджета
Чтобы использовать не только базовый шаблон, но и получить более точные контрольные точки, рекомендуем переключиться на расширенный режим конфигурации бюджета.
Шаг 1 — Переход в расширенный режим конфигурации бюджета
- При создании бюджета выберите: Customize (advanced).
- Задайте сумму бюджета в поле «Budget amount».
- Пролистайте ниже до секции Alerts и нажмите Add an alert threshold.
Этот режим позволит вам точно настраивать порог срабатывания, тип уведомления и адресатов.
Шаг 2 — Рекомендуемая конфигурация оповещений
На практике хорошо себя зарекомендовала следующая схема из трёх уровней оповещений:
-
50% бюджета — ранний индикатор
- Threshold:
50% - Type:
Actual cost - Notification:
Email
Это ваш первый контрольный пункт. Он позволяет:
- Обнаружить неиспользуемые или непростаиваемые ресурсы в начале месяца.
- Увидеть рост расходов из‑за изменения конфигурации или увеличения нагрузки.
- Проконтролировать, что ничего не «сломано» в инфраструктуре.
- Threshold:
-
80% бюджета — жёсткий индикатор
- Threshold:
80% - Type:
Actual cost - Notification:
Email + SNS
Здесь уже включается сигнал тревоги. Вы должны понимать:
- Что именно вызвало рост расходов?
- Можно ли выключить или уменьшить какие‑то ресурсы?
- Не нужно ли дополнительно оптимизировать код или конфигурацию?
- Threshold:
-
100% бюджета — критический индикатор
- Threshold:
100% - Type:
Actual cost - Notification:
Email + SNS + Slackили любое другое критичное оповещение.
Этот уровень показывает, что:
- Вы либо выходите на пределы бюджета,
- Либо уже превысили его (если оповещение по фактическим затратам).
- Threshold:
Детектирование аномалий в расходах и биллинг‑алармы
В дополнение к явным бюджетам и оповещениям полезно использовать:
- Cost Anomaly Detection
AWS анализирует вашу историю расходов и находить неожиданные всплески, которые не укладываются в обычную модель. - Billing Alarms (CloudWatch Alarm)
Это алерт, который ориентирован на интеграцию с сервисом мониторинга CloudWatch и позволяет гибко комбинировать оповещения с другими системами.
Пример бюджета и аномалий в реальной рабочей схеме стартапа
Представим, что вы стартап с ожидаемым месячным бюджетом в $200. Исходя из этого, можно заложить следующую структуру контроля:
Ежемесячный бюджет: $200
- Оповещение при $100 (50%)
- Оповещение при $160 (80%)
- Оповещение при $200 (100%)
Дополнительно к этому:
- Настроить Cost Anomaly Detection для отслеживания необычных всплесков.
- Подключить к оповещениям на SNS‑топике вашу почту, а при необходимости — Slack или другие системы мониторинга.
Практические советы по контролю расходов AWS
- Договорённость о ролях и политике расходов
Определите внутри команды ответственного за отслеживание бюджета и сформируйте явное правило:Если мы подходим к порогу 80%, запускаем принудительный аудит ресурсов и при необходимости сокращаем их.
- Регулярный аудит ресурсов:
- Проверяйте инстансы в неиспользуемых регионах.
- Отключайте ненужные дополнительные ресурсы (например, лишние диски или точки Snapshots).
- Используйте теги для ресурсов (
Environment,Project,Owner) и сгруппируйте расходы по тегам в бюджетах.
- Используйте фильтры для бюджета
При создании бюджета можно задать фильтры:- По сервисам (например, отслеживать только EC2, или только Lambda).
- По тегам или группам ресурсов.
- Автоматизация и скрипты
Для автоматической остановки/запуска инстансов в зависимости от времени суток можно использовать, например, функции Lambda или системы планирования задач.
Итог по Дню 2
- Создайте бюджет с типом
Cost budgetи периодомMonthly. - Настроить три уровня оповещений:
50%,80%,100%. - Используйте
Customize (advanced)для точного контроля порогов и нотификаций. - Подключите детектирование аномалий расходов и биллинг‑оповещения.
- Сделайте аудит ресурсов и бюджеты регулярной практикой, а не одноразовой настройкой.
Если вы уделите время структурированному подходу к контролю расходов на AWS с самого первого дня, вы сильно снизите риски неожиданных счетов и сможете масштабироваться более предсказуемо как с технологической, так и с финансовой точки зрения.