Не всегда код должен работать непрерывно. И обидно арендовать целый сервер, когда скрипт работает 10 минут в день. Особенно сервер с большим количеством ОЗУ и CPU.
В этой статье мы расскажем, как разработали сервис запуска Cron Jobs с платой за фактическое время работы кода. Как запускать скрипты экономически эффективнее, чем на VDS, и как настроить работу кода по расписанию.
Представим, что есть скрипт, которому нужно обрабатывать раз в день объёмный PDF-документ(формировать отчет/переобучать ML-модель). Скрипт потребляет 2 CPU и 10 Гб ОЗУ, и на обработку тратит 10 минут. А теперь посчитаем, сколько будет стоить хостинг такого скрипта на VPS/VDS. Для стабильной работы выберем конфигурацию с 3 vCPU и 12 Гб ОЗУ. Если это дорогое облако, виртуалка выйдет около 5 т. р./мес, если бюджетный VDS, можно уложиться в 2 т. р. в месяц.
И это дорого, очень дорого для задачи, которая работает 10 минут в день.
Было бы лучше, если бы оплата шла именно за время работы.
Для таких задач мы разработали сервис запуска Cron-задач в Amvera Cloud.
Так, если вы запустите скрипт на тарифе с 3 vCPU и 12 Гб ОЗУ, который запускается раз в день на 10 минут, это будет стоить 198 р./месяц. И это 12 Гб ОЗУ.
А если выбрать тариф с 1 Гб ОЗУ, то выйдет 100 р./месяц.
Cкрипт, требующий VDS за 2000 рублей становится возможным запустить за 198 рублей в месяц. разница в 10 раз.
Помимо цены, это просто удобнее. Можно выбирать режимы запуска, про которые я расскажу ниже, контролировать историю выполнений в специальном интерфейсе и обновлять код через push в привязанный репозиторий.
Разберем запуск Cron Jobs на примере
У нас есть простой скрипт, который делает каждый час бэкапы PostgreSQL и сохраняет их на другой сервер.
Перейдём в ЛК Amvera и создадим проект типа Cron Job.

Введём название и зададим тариф
Важно отметить, что тарификация состоит из трёх составляющих. Активного времени выполнения скрипта, времени активности самого сервиса в режиме ожидания (здесь плата идёт за сохранения артефактов в горячем состоянии) и постоянное хранилище, которое можно не подключать, если вам не требуется диск.
Для примера выберем максимальный тариф. За время активной работы биллинг будет откручивать 39 копеек за минуту. Плюс будет плата в 0,18 копейки за минуту ожидания запуска (это 80 руб/месяц).

Настроим параметры запуска Cron
Зададим Cron-выражение, которое будет запускать скрипт раз в два часа в 12 минуту часа.
Примеры синтаксиса выражений для задания расписания выполнения задач Cron можно найти по ссылке.
В нашем случае это 12 0/2 * * *

Зададим максимальное время выполнения – 600 секунд. Теперь мы уверены, что не потратим более 198 рублей в месяц.
И зададим политику запуска.

Доступно три режима, мы выберем REPLACE, который прерывает предыдущую задачу, если она не успела выполниться.
Загрузим наш код
Можно привязать Git репозиторий, это позволит обновлять код тремя командами в IDE.

Но можно и просто перетянуть файлы в интерфейсе.

Добавим секреты и переменные, которые используются в нашем проекте.

И заполним по подсказкам несколько строчек в Конфигурации. Важно, если вы используете Git, скачать конфигурацию и добавить файл в корень проекта. Так как при сохранении через интерфейс это создаст коммит в выделенном репозитории и может привести к конфликту с вашим репозиторием.

Наблюдаем за сборкой и запуском в логах. Если всё правильно сделано, ваш скрипт перейдёт в состояние «Ожидает запуска» или «Приложение запущено».

И контролируем историю запусков в одноимённой вкладке.

Готово. Мы запустили наше задание Cron на удаленном сервере и теперь не будем переплачивать на ровном месте.
Разумеется, для постоянно работающих скриптов лучше выбрать другие типы сервисов, так как если Cron будет крутить проект 24/7, это будет не бюджетно.
Но если ваш скрипт работает до пары часов в день, и требует много вычислительного ресурса, то экономия в деньгах становится существенна.
Комментарии (4)

benjik
23.10.2025 15:06Лямбда-функции в облаках с триггером по таймеру например. Первая тысяча вызовов в месяц - бесплатно.

kirillkosolapov Автор
23.10.2025 15:06Как вариант. Но там и цена подороже и ценообразование не только от количества вызовов, но и от потребления ресурсов. И главное, лямбда-функции сложнее в настройке, и если допустить ошибку (в обработке исключений, как пример), можно попасть на сотни тысяч рублей, как в этой истории. Здесь же закинуть код в интерфейсе и заполнить "полторы строки" настроек.
ovchinnikovproger
Если код запущенный по Cron будет завершаться до заданного интервала времени, как будет проходить тарификация?
kirillkosolapov Автор
За фактическое время с дискретизацией до минуты. Если код выполнится за 3 минуты, при лимите в 20, посчитает именно за эти 3 минуты работы Cron задачи.