Бесплатный уровень AWS: что бесплатно и как не переплатить
Практика3 минРедакция Innovialabs
Коротко
Бесплатный уровень AWS покрывает ограниченный объем отдельных сервисов, а не весь аккаунт: все сверх лимитов и многие вспомогательные ресурсы оплачиваются. Защита простая — бюджет с оповещениями в первый же день и регулярная проверка раздела Billing.
Что такое бесплатный уровень на самом деле
AWS Free Tier — это набор лимитов на конкретные сервисы, а не бесплатный аккаунт целиком. Если ресурс не входит в программу или вы превысили лимит, оплата начисляется по обычному тарифу и списывается с привязанной карты.
Предложения бывают нескольких видов:
- Always Free — постоянные ежемесячные лимиты для некоторых сервисов (например, определенное число вызовов Lambda или объем DynamoDB). Действуют, пока вы укладываетесь в лимит.
- Пробные периоды — бесплатное использование отдельного сервиса в течение ограниченного срока после первого запуска.
- Кредиты и стартовые планы — условия для новых аккаунтов AWS менялись: свежие аккаунты получают стартовые кредиты и выбирают между бесплатным и платным планом, а у более старых действуют предложения на 12 месяцев с момента регистрации.
Точные лимиты и сроки меняются, поэтому сверяйтесь с официальной страницей AWS Free Tier перед запуском.
Что тихо приводит к счетам
Чаще всего деньги уходят не на основной сервер, а на то, что вокруг него:
| Ресурс | Почему стоит денег |
|---|---|
| Публичные IPv4-адреса | AWS тарифицирует публичные IPv4-адреса почасово, в том числе неиспользуемые Elastic IP |
| NAT Gateway | Почасовая оплата плюс плата за каждый обработанный гигабайт |
| Load Balancer | Почасовая оплата, даже если трафика почти нет |
| EBS-диски и снапшоты | Остаются и тарифицируются после удаления инстанса |
| Исходящий трафик | Передача данных в интернет сверх бесплатного объема |
| RDS | Multi-AZ, крупные классы инстансов и хранилище сверх лимита |
| CloudWatch Logs | Хранение логов без срока удаления растет месяц за месяцем |
| Secrets Manager, KMS, Route 53 | Ежемесячная плата за секрет, ключ или hosted zone |
Отдельная ловушка — другие регионы. Ресурс, созданный по ошибке во Франкфурте, а не в вашем основном регионе, легко пропустить при проверке консоли.
Защита с первого дня: пошагово
- Защитите root-аккаунт. Включите MFA и не работайте под root: создайте пользователя через IAM Identity Center или IAM.
- Включите оповещения Free Tier. В Billing → Billing preferences отметьте получение писем о приближении к лимитам.
- Создайте бюджет в AWS Budgets. Есть готовый шаблон Zero spend budget — он пришлет письмо при первом же центе расходов. Для рабочих проектов создайте месячный бюджет с порогами по фактическим и прогнозным расходам.
- Включите Cost Anomaly Detection. Сервис сравнивает расходы с привычным уровнем и сообщает о скачках.
- Раз в неделю открывайте Cost Explorer и группируйте расходы по сервисам и регионам.
Бюджет можно создать и из командной строки:
aws budgets create-budget \
--account-id 111122223333 \
--budget '{"BudgetName":"monthly-limit","BudgetLimit":{"Amount":"10","Unit":"USD"},"TimeUnit":"MONTHLY","BudgetType":"COST"}' \
--notifications-with-subscribers '[{"Notification":{"NotificationType":"ACTUAL","ComparisonOperator":"GREATER_THAN","Threshold":80,"ThresholdType":"PERCENTAGE"},"Subscribers":[{"SubscriptionType":"EMAIL","Address":"you@example.com"}]}]'
Сумму и адрес подставьте свои. Важно понимать: бюджет предупреждает, но не выключает ресурсы. Автоматическую реакцию можно настроить через Budget actions — например, применить ограничивающую IAM-политику или остановить выбранные инстансы EC2 и RDS.
Частые ошибки
- Запускать инстанс «покрупнее, чтобы не тормозил» — он может не входить в бесплатные предложения.
- Удалять инстанс, но оставлять диск, снапшоты и Elastic IP.
- Хранить логи бессрочно.
- Ставить NAT Gateway в учебный проект, где хватило бы публичной подсети.
- Проверять расходы раз в месяц, когда счет уже сформирован.