Настроить reserved instances для постоянной нагрузки
ТЕХНИЧЕСКОЕ ЗАДАНИЕ: Настроить reserved instances для постоянной нагрузки
1. Цель задачи
Освоить методику планирования и закупки Reserved Instances (RI) в AWS для workloads с предсказуемой постоянной нагрузкой. Вы научитесь анализировать текущее потребление ресурсов, рассчитывать оптимальный размер резервирования, оформлять покупку RI и оценивать реальную экономию относительно on-demand ценообразования.
Ключевой результат Снижение затрат на вычислительные ресурсы AWS для заданного сервиса не менее чем на 40% за счёт перехода с on-demand на Reserved Instances (1- или 3-летний срок), подтверждённое отчётом Cost Explorer.
2. Исходные данные
| Что нужно | Откуда взять |
|---|---|
| AWS аккаунт с развёрнутым сервисом (например, EC2 для inference API, RDS для базы знаний) | Личный аккаунт AWS (Free Tier допустим, но нагрузка может быть смоделирована) |
| Логи использования вычислительных ресурсов за последние 1–3 месяца (vCPU часы, инстансы, регионы) | AWS Cost Explorer, CloudWatch, AWS CUR (Cost and Usage Reports) |
| Текущая стоимость on-demand в месяц для целевого сервиса | AWS Cost Explorer — фильтр по ресурсам (EC2, RDS, ElastiCache) |
| Понимание постоянной нагрузки (peak/off-peak, util%) | CloudWatch метрики CPU, NetworkIn/Out, мониторинг собственного приложения |
| Ручка управления резервированиями | AWS Console -> EC2 -> Reserved Instances, или AWS CLI / SDK |
Если нет реального сервиса с постоянной нагрузкой — симулируем:
- Запустите один t3.medium EC2 инстанс с простым HTTP-сервером (например, python3 -m http.server 8000), который работает 24/7 в течение тестового периода (минимум 3 дня).
- Имитируйте "стабильный" трафик с помощью автоматического cron-запроса каждые 30 секунд (curl localhost).
- В Cost Explorer увидите постоянное потребление.
- Далее используйте этот инстанс как цель для закупки RI в 1 год.
3. Технологический стек
| Компонент | Инструменты | Назначение |
|---|---|---|
| Платформа облака | AWS (US East / EU West) | Вычислительные ресурсы |
| Мониторинг и метрики | AWS CloudWatch + Cost Explorer | Анализ использования и затрат |
| Резервирование | AWS Console, CLI (aws ec2 purchase-reserved-instances-offering) | Закупка RI |
| Расчёт экономии | AWS Cost Explorer / калькулятор | Оценка скидки |
| Документирование | Markdown / Jupyter notebook | Фиксация расчетов и плана |
4. Этапы выполнения
Этап 1: Анализ текущего потребления и затрат (2–3 часа)
Действия
-
Определите целевые сервисы
Выделите ресурсы, которые работают с постоянной нагрузкой: EC2 для inference, RDS для БД, ElastiCache и т.д. Запишите region, instance family, размер, количество. -
Соберите метрики за последние 30 дней.
- Используйте Cost Explorer -> Usage -> фильтр по сервису.
- Скачайте CSV с почасовыми cost и usage (OnDemand, hours).
- Из CloudWatch получите среднюю загрузку CPU, RAM, network.
- Определите baseline utilisation: если средняя utilisation > 60% и не скачет, нагрузка считается постоянной.
-
Рассчитайте текущую ежемесячную стоимость on-demand
В Cost Explorer задайте период 1 месяц, отфильтруйте по целевым инстансам, получите сумму.
Пример: t3.medium (2 vCPU, 4 GB) в us-east-1 стоит $0.0416/ч => $30.0/мес за 1 инстанс. -
Оцените, сколько инстансов необходимо резервировать.
- Если у вас 5 инстансов с utilisation > 60% круглосуточно — резервируйте все 5.
- Если нагрузка сезонная, но предсказуемая — посчитайте baseline min workload.
- Для постоянной нагрузки можно взять 80-100% от средних часов использования.
Ожидаемый результат этапа
Таблица с инстансами, их on-demand стоимостью в месяц, utilisation, рекомендация по количеству RI.
Этап 2: Выбор типа и срока RI (1 час)
Действия
-
Изучите типы Reserved Instances в AWS:
- Standard RI — фиксированный тип и регион, макс. скидка (до 72% на 3 года)
- Convertible RI — можно менять семью инстансов (скидка до 54%)
- Scheduled RI — резервирование на определённые дни/часы (не подходит для 24/7)
-
Выберите срок оплаты
- 1 год — даёт скидку ~40% от on-demand (если оплата upfront)
- 3 года — скидка до 72% (требует приверженности)
- Нулевой upfront (Partial upfront) — баланс между скидкой и затратами.
-
Примите решение
Для учебной задачи выберите 1 год Standard RI, Partial upfront (скидка ~40% — достаточна для выполнения KPI).
Ожидаемый результат этапа
Обоснованный выбор типа и срока RI. Например: "Standard RI, 1 год, Partial upfront, для t3.medium (5 штук)".
Этап 3: Покупка Reserved Instances (1 час)
Действия
-
Перейдите в EC2 Console -> Reserved Instances -> Purchase Reserved Instances.
Укажите платформу (Linux/Windows), тип (t3.medium), количество (5), регион (us-east-1), срок (1 год), опцию оплаты (Partial upfront). -
Добавьте в корзину и подтвердите покупку.
Внимание: в реальной среде это означает обязательство платить; в тестовом аккаунте используйте AWS Free Tier (они не покрываются RI для t3.medium, но можно купить RI на минимальных суммах – стоимость будет ~$200 за год partial upfront). Если аккаунт новый и нет бюджета, можно симулировать покупку через CLI с флагом--dry-runили просто вычислить экономию аналитически. -
Для симуляции без реальных денег
- Установите aws-cli.
- Выполните aws ec2 describe-reserved-instances-offerings чтобы получить offer ID.
- Запишите стоимость и скидку.
- Оформите в Jupyter notebook расчёт экономии без фактической покупки.
-
Проверьте активацию RI
После покупки в консоли EC2 -> Reserved Instances появится запись. Скидка применяется автоматически к соответствующим инстансам, работающим в данный момент.
Ожидаемый результат этапа
Приобретённые (или симулированные) Reserved Instances; запись в консоли; стоимость покупки (или расчётная стоимость).
Этап 4: Верификация экономии и мониторинг (1–2 часа)
Действия
-
Подождите 24–48 часов (в реальной системе) или сразу воспользуйтесь Cost Explorer с фильтром
Reserved Instance. -
Сравните затраты за период "до" и "после":
- До: on-demand стоимость за месяц.
- После: стоимость on-demand для непокрытых часов + амортизация upfront (разделить сумму upfront на 12 месяцев).
Формула:Новая ежем. стоимость = (количество часов в месяц * RI hourly rate) + (upfront / 12).
-
Рассчитайте экономию
Экономия = 1 - (Новая стоимость / Старая стоимость).
Цель: >= 40%. -
Зафиксируйте результаты в отчёте
Скриншоты Cost Explorer до/после, таблица с цифрами.
Ожидаемый результат этапа
Подтверждённая экономия ≥40%, оформленная в виде отчёта.
Этап 5: Документирование и автоматизация (1 час)
Действия
-
Напишите краткую инструкцию для команды (1–2 страницы):
- Как анализировать потребление
- Когда выбирать Standard vs Convertible
- Как рассчитывать upfront vs no upfront
- Команды AWS CLI для автоматизации закупки (опционально).
-
Создайте скрипт (Python/Bash) для
-
Включите рекомендацию по реновации через 1 год (настройка оповещения об истечении срока RI).
Ожидаемый результат этапа
Готовая документация и опциональный скрипт автоматизации.
5. Критерии приемки (Definition of Done)
- Проанализированы минимум 3 различных инстанса (или один, но с обоснованием постоянной нагрузки).
- Выбран и обоснован тип RI (Standard), срок (1 или 3 года) и опция оплаты.
- RI приобретены (или симулированы с детальным расчётом) в соответствии с выбранным планом.
- Экономия, рассчитанная на основе реальных/симулированных данных, подтверждена ≥40%.
- Создан отчёт в Markdown с таблицами затрат до/после, скриншотами Cost Explorer.
- Написана инструкция для команды (минимум 5 шагов).
- (Опционально) Написан автоматизированный скрипт закупки RI.
6. Ожидаемый результат
Основной артефакт
Файл reserved_instances_report.md, содержащий:
- Анализ текущих затрат (таблица с инстансами, utilisation, on-demand стоимость)
- Обоснование выбора RI (Standard, 1 год, Partial upfront)
- Расчёт новой стоимости и экономии (с таблицей)
- Скриншоты из Cost Explorer до и после применения RI
- Инструкция по воспроизведению
Дополнительно (опционально):
- Jupyter notebook с Python-расчётами
- AWS CLI скрипт
purchase_ri.sh - Метрики CloudWatch, показывающие стабильную нагрузку
7. Возможные сложности и их решение
| Сложность | Решение |
|---|---|
| Нет реальной нагрузки / аккаунт без затрат | Используйте симуляцию: запустите EC2 на Free Tier (t2.micro) на 3 дня, имитируйте трафик. Для RI возьмите offer-id из CLI и сделайте расчёт в Excel/notebook. Экономию считайте гипотетически. |
| Сложность с бюджетами и привязкой к RI | AWS RI применяются на уровне аккаунта. Если инстансы не соответствуют типу/региону — скидка не применяется. Тщательно проверьте атрибуты. |
| RI не окупаются при низкой utilisation | Задача про постоянную нагрузку; если utilisation < 60% — возможно лучше использовать Spot Instances или Auto Scaling. Обоснуйте, что RI невыгодны, и предложите альтернативу. |
| Upfront платёж невозможно совершить | Выберите опцию No upfront (ежемесячная плата). Скидка будет ниже (~30%), но экономия ≥40% может быть не достигнута; в таком случае берите 3-летний срок No upfront (скидка ~50%). |
| Cost Explorer показывает 0 затрат из-за Free Tier | Используйте Cost and Usage Reports (CUR) или выставьте фильтр на ресурсы, не входящие в бесплатный лимит (например, t3.medium не входит в Tier). |
8. Бюджет времени (оценка)
| Этап | Время |
|---|---|
| Этап 1: Анализ потребления | 2–3 ч |
| Этап 2: Выбор типа RI | 1 ч |
| Этап 3: Покупка RI | 1 ч |
| Этап 4: Верификация экономии | 1–2 ч |
| Этап 5: Документирование | 1 ч |
| Итого | 6–8 ч |
Примечание: При первом выполнении заложите +2 часа на изучение интерфейса AWS Cost Explorer и терминологии RI.
9. Связанные вопросы из базы знаний
| Вопрос | Тема |
|---|---|
| 12 | Как устроены reserved instances в AWS? |
| 15 | Разница между Standard и Convertible RI |
| 23 | Как рассчитать TCO для облачных ресурсов? |
| 34 | Оптимизация затрат на inference сервис |
| 56 | Мониторинг utilisation инстансов |
| 67 | Автоматизация закупки RI через AWS CLI |
| 89 | Cost Explorer: создание отчётов по экономии |
| 102 | Как учитывать upfront в ежемесячном бюджете? |
| 145 | Что такое Savings Plans и чем отличаются от RI? |
| 210 | Как проверить, применяются ли RI к вашим инстансам? |
10. Чек-лист самопроверки
- Я чётко определил(а), какие ресурсы подлежат резервированию, и обосновал(а) их "постоянность".
- Я собрал(а) корректные данные из Cost Explorer и CloudWatch за минимум 30 дней.
- Я выбрал(а) наиболее выгодный тип RI (Standard) и срок (1 год) или аргументировал(а) другой выбор.
- Я рассчитал(а) экономию на основе реальных цифр: (on-demand - RI) / on-demand ≥ 0.40.
- Я проверил(а), что рассчитанная экономия подтверждается на практике (или симуляции) — нет скрытых дополнительных затрат.
- Я задокументировал(а) процесс и написал(а) инструкцию, понятную коллеге без опыта в RI.
- (Опционально) Я написал(а) автоматизированный скрипт для повторения процесса.