Настройка Reserved Instances / Savings Plans для снижения затрат
Reserved Instances и Savings Plans — инструменты снижения стоимости облачных вычислений через предоплату или обязательство об использовании. Правильно выбранный тип экономит 30-60% от on-demand стоимости.
Reserved Instances vs Savings Plans
Reserved Instances (RI): обязательство использовать конкретный тип инстанса в конкретном регионе/AZ. Максимальная скидка при минимальной гибкости.
Savings Plans: обязательство тратить определённую сумму в час. Гибко применяется к любым EC2, Fargate, Lambda. Меньше скидка, больше свободы.
| Reserved Instances | Savings Plans | |
|---|---|---|
| Скидка | 30-60% | 20-50% |
| Гибкость | Низкая (тип + регион) | Высокая (любые EC2) |
| Применимость | EC2, RDS, ElastiCache | EC2, Fargate, Lambda |
| Рекомендуется | Стабильные DB серверы | Гибкий compute |
Когда покупать
Нельзя покупать RI/SP «на глаз». Необходим анализ исторического использования:
- Минимум 2-4 недели метрик по запущенным инстансам
- Определить baseline — сколько инстансов работает постоянно (24/7)
- Покрывать RI/SP только baseline, остальное — on-demand или Spot
Типичная ошибка: купить RI на 20 инстансов, затем масштабироваться вниз до 5. Неиспользуемые RI всё равно тарифицируются.
Анализ через AWS Cost Explorer
Cost Explorer → Reserved Instance Coverage Report:
Coverage: 45% (35% инстансов работают on-demand — потенциал для RI)
Cost Explorer → RI Recommendations:
Recommended: m6i.large, 1yr, no upfront
Estimated savings: $847/month
Break-even: 7 months
Рекомендации Cost Explorer используют 30-дневную историю использования. Принимать только после собственного анализа тренда.
Типы оплаты Reserved Instances
No Upfront: нет предоплаты, ежемесячные платежи. Скидка ~20-30%. Подходит при ограниченном бюджете.
Partial Upfront: часть предоплата, часть ежемесячно. Скидка ~30-45%. Баланс между скидкой и cashflow.
All Upfront: полная предоплата. Максимальная скидка ~40-60%. Подходит при доступном бюджете.
Срок: 1 год или 3 года. Для 3 лет скидка значительно выше, но требует уверенности в долгосрочной архитектуре.
Compute Savings Plans: практический пример
Baseline: 10 инстансов m6i.xlarge в us-east-1 постоянно. On-demand цена: $0.192/час. Итого: 10 * $0.192 * 8760 = $16,819/год.
Commitment через Compute Savings Plans: $1.30/час (≈ $11,388/год). Скидка: ~32%.
# Расчёт оптимального commitment
def calculate_savings_plan_commitment(
instance_hours_per_day: dict, # {'m6i.xlarge': 240, 't3.medium': 48}
on_demand_rates: dict,
savings_plan_discount: float = 0.32
) -> float:
total_on_demand_per_hour = sum(
hours / 24 * on_demand_rates[instance_type]
for instance_type, hours in instance_hours_per_day.items()
)
# Покрывать 80% baseline, остальное on-demand для гибкости
return total_on_demand_per_hour * 0.80 * (1 - savings_plan_discount)
RDS Reserved Instances
Для баз данных RI особенно выгодны — БД работают 24/7, нет смысла платить on-demand:
- RDS Multi-AZ с 1-летним RI: скидка 30-40%
- ElastiCache Reserved Nodes: скидка 30-50%
Важно: RDS RI не переносятся между instance families (m5 RI не применяется к m6i).
Marketplace для неиспользуемых RI
Если купили RI, но инфраструктура изменилась — ненужные RI можно продать на AWS Marketplace для Reserved Instances. Цена: ниже on-demand, но хоть что-то.
Регулярный review
Ежеквартально:
- Проверить utilization купленных RI/SP (цель: > 90%)
- Оценить изменения в архитектуре на следующие 12 месяцев
- Решить о продлении или изменении обязательств
Сроки
- Анализ текущего использования — 1-2 дня
- Подготовка рекомендаций — 1 день
- Покупка RI/SP (после согласования) — 1-2 часа
- Верификация применения скидок — 1-3 дня







