Разработка · 7 мин чтения

Телеграм бот хостинг: как выбрать между VPS и PaaS

Запрос «телеграм бот хостинг» обычно всплывает в момент, когда бот на aiogram уже отвечает у вас на ноутбуке через long polling, а нужно, чтобы он работал сутками без включённого компьютера. Дальше начинается путаница: одни советуют арендовать VPS, другие тычут в PaaS-платформы, третьи говорят про serverless-функции, которые вообще не похожи на привычный сервер. У каждого варианта своя механика перезапуска, свой потолок по нагрузке и своя статья расходов, и выбор зависит не от моды, а от того, что бот реально делает: шлёт уведомления раз в час или обрабатывает сотни сообщений в минуту с обращениями к базе.

Вебхук и long polling: почему это определяет хостинг для телеграм-бота

Бот получает обновления от Telegram одним из двух способов. Long polling означает, что бот сам каждые несколько секунд стучится к Bot API и спрашивает, есть ли новые сообщения, для этого нужен процесс, который крутится бесконечно, где бы он ни лежал: на ноутбуке, VPS или в контейнере. Вебхук работает наоборот: Telegram сам присылает POST-запрос на ваш HTTPS-адрес при каждом новом сообщении, а метод setWebhook требует действующий SSL-сертификат на этом адресе.

От этого выбора зависит вся дальнейшая экономика. Long polling держит соединение открытым постоянно, значит нужен сервер, который не выключается и не засыпает. Вебхук включается только когда приходит сообщение, а значит подходит и под serverless-модель, где вы платите за фактические вызовы, а не за арендованное время.

Ещё один параметр, который стоит держать в голове при выборе хостинга: официальные лимиты Bot API держат примерно 30 сообщений в секунду на разных получателей и не больше одного сообщения в секунду в один и тот же чат. На практике это означает, что для бота с сотней активных пользователей мощный сервер обычно не нужен, узкое место чаще не в CPU, а в лимите самого Telegram.

Простой бот на вебхуке помещается на уже оплаченный хостинг сайта

Если бот не более чем принимает вебхук и отвечает по шаблону, вроде уведомления о статусе заявки, дублирования формы с сайта в чат или ответа со ссылкой на прайс, отдельный сервер не нужен вообще. PHP-скрипт на том хостинге, где уже крутится сайт на WordPress или Tilda, спокойно принимает POST от Telegram, пишет chat_id в MySQL и шлёт ответ через curl к Bot API. Хостинг сайта уже оплачен, SSL на домене обычно тоже есть, значит для такого бота новая инфраструктура не появляется, только добавляется файл-обработчик и таблица в существующей базе.

Отложенные и повторяющиеся сообщения, например ежедневная сводка по заявкам или напоминание клиенту о статусе доставки СДЭК, добавляются через cron на том же хостинге обычным вызовом PHP-скрипта по расписанию. Это работает только для вебхука: long polling на shared-хостинге не запустить, там нет постоянно висящего процесса, а хостинг рано или поздно завершит долгий скрипт по таймауту.

Бот на aiogram выносится за пределы хостинга сайта

Как только логика бота перерастает набор шаблонных ответов и требует Python: работы с состоянием диалога через FSM, очередей задач, парсинга сторонних API или интеграции с ИИ-моделью, вокруг aiogram нужен процесс, которого на обычном хостинге сайта просто нет, PHP-хостинг Python не запускает. Дальше выбор из трёх вариантов.

VPS для бота: сами настраиваете и сами обслуживаете

VPS даёт полный контроль: ставите нужную версию Python и библиотек, гоняете бота через systemd-юнит, чтобы он поднимался после падения и перезагрузки сервера, и через nginx как reverse proxy, если бот работает по вебхуку. Для сертификата обычно берут Let’s Encrypt и настраивают автопродление, вручную заходить и продлевать его каждые три месяца никто не хочет. Это отдельный сервер: его нужно обновлять, следить за местом на диске под логи и платить за него ежемесячно независимо от того, обращался ли кто-то к боту в этом месяце. Взамен вы ничем не ограничены: можно держать несколько ботов на одной машине или поднять рядом Docker с базой для более сложной логики.

PaaS-платформы для Python-бота

PaaS убирает часть этой возни: вы отдаёте платформе Dockerfile или requirements.txt, она сама поднимает контейнер, следит, чтобы процесс не падал, и обычно сама выпускает сертификат под привязанный домен. Из отечественных вариантов под Python-приложения смотрят на Amvera или облачные приложения у Timeweb, но тарифы, лимиты по CPU и памяти и правила отключения при простое у них меняются, поэтому перед оплатой их стоит сверять прямо на сайте провайдера, а не по старым обзорам. Для бота с предсказуемой, но не огромной нагрузкой это обычно самый быстрый путь от кода в репозитории до работающего вебхука.

Serverless-функции: платите за вызовы, а не за аренду

Secverless-платформы вроде Яндекс Функций разворачивают код только на момент вызова: пришёл вебхук от Telegram, функция поднялась, обработала апдейт, ответила и выключилась. Постоянно арендованного сервера тут нет вообще, счёт формируется по числу вызовов и времени выполнения, а не по часам простоя. Для бота с редкими сообщениями, например внутреннего бота на десяток сотрудников или бота, который раз в день собирает отчёт, это может выйти заметно дешевле VPS, где сервер оплачивается круглосуточно вне зависимости от нагрузки. Минусы у модели тоже есть: между вызовами функция не хранит состояние в памяти, значит контекст диалога нужно класть во внешнее хранилище, а первый вызов после простоя обычно идёт с задержкой на холодный старт, что для интерактивного чата иногда ощущается как секундное подвисание бота. Long polling в этой модели не работает вообще, потому что функции не живут постоянно, поэтому serverless подходит только вебхучным ботам.

Если логика бота больше похожа на полноценный сервис с оплатой, личным кабинетом в чате или интеграцией с CRM, чем на скрипт-уведомление, дешевле сразу закладывать архитектуру под нагрузку и заказать разработку телеграм-бота с ценой от 30 000 ₽, чем потом переезжать с площадки, которая не потянула рост.

Бесплатный материал

🎁 Полезный скрипт в подарок

Подпишитесь на Telegram - пришлю готовый скрипт по этой теме.

Без спама. Отписка в 1 клик.

Что реально создаёт нагрузку на хостинг телеграм-бота

Число пользователей само по себе нагрузку не создаёт, критично то, сколько апдейтов прилетает одновременно и что бот делает с каждым. Бот, который принимает вебхук от T‑Bank о статусе оплаты и пересылает уведомление в чат, отвечает за миллисекунды и почти не грузит сервер. Бот, который на каждое сообщение обращается к внешнему API, генерирует ответ через ИИ-модель или пишет в базу с блокировкой строки, держит соединение открытым дольше, и при росте пользователей начинает не хватать либо CPU на VPS, либо лимита одновременных вызовов на serverless-тарифе. Если бот параллельно шлёт массовую рассылку по всей базе подписчиков, важнее не мощность сервера, а соблюдение лимита Bot API на сообщения в секунду, иначе Telegram начнёт возвращать ошибку с кодом 429 и указанием, сколько секунд ждать до следующей попытки.

Отдельно стоит логика, собранная не в коде, а в n8n через узел Telegram Trigger: это ускоряет разработку сценариев, но n8n тоже нужно где-то держать, либо в облачном тарифе поставщика n8n, либо self-hosted на том же VPS через Docker, и тогда добавляется отдельный сервис, который нужно обновлять и перезапускать самостоятельно.

Сравнение хостинга для телеграм-бота по бюджету и нагрузке

Вариант Что администрируете сами Когда подходит Поведение при резком росте нагрузки
PHP-хостинг сайта (вебхук) Ничего, хостинг уже настроен под сайт Бот-уведомление или дублирование формы без Python-логики Ограничен ресурсами общего тарифа сайта, для тяжёлой логики не подходит
VPS ОС, сертификат, systemd, обновления Несколько ботов сразу, кастомная логика, сервисы вроде self-hosted n8n рядом Масштабируется вручную, апгрейдом тарифа или второй машиной
PaaS Только код в репозитории Один-два бота на Python без желания администрировать сервер Масштабируется настройками платформы, но упирается в её лимиты по CPU и памяти
Serverless-функции Только код обработчика Редкие или неравномерные обращения, внутренние боты Держит всплески за счёт параллельных вызовов, но добавляет задержку на холодный старт

Цена самого VPS или тарифа PaaS зависит от выбранного провайдера и конфигурации, а не от того, для чего именно вы используете сервер, поэтому в таблице её нет, сверяйте актуальные цифры прямо на сайте провайдера перед оплатой.

Условия и возможности Telegram меняются, поэтому перед запуском я уточняю их у самого сервиса.

Частые вопросы

Можно ли разместить aiogram-бота на обычном хостинге сайта?

Нет, если бот работает через long polling или держит постоянный Python-процесс, обычный хостинг сайта такой процесс не держит и завершает долгие скрипты по таймауту. Работает только вариант с вебхуком и логикой на PHP, без aiogram и его FSM.

Что дешевле для одного бота с небольшой аудиторией: VPS или serverless?

При редких и неравномерных обращениях serverless обычно выходит дешевле, потому что оплата идёт за вызовы, а не за постоянно арендованный сервер. VPS оправдан, когда бот держит постоянную нагрузку или соседствует с другими сервисами на той же машине.

Нужен ли отдельный SSL-сертификат для вебхука бота?

Да, метод setWebhook принимает только HTTPS-адрес. На VPS сертификат обычно ставят через Let’s Encrypt с автопродлением, на PaaS и в serverless-сервисах его чаще выпускают автоматически при привязке домена.

Как понять, что боту пора переезжать с serverless на VPS?

Сигнал - заметная задержка ответа из-за холодного старта при каждом обращении после паузы, или логика, которой нужно постоянно держать состояние в памяти между сообщениями, например активные сессии диалога с внешним API. В этом случае предсказуемее работает постоянный процесс на VPS или PaaS.

Есть задача?

Обсудим в мессенджере

Расскажите, что нужно сделать — отвечу в течение 4 часов в рабочее время. Первая консультация бесплатно.

Продолжая пользование настоящим сайтом Вы выражаете своё согласие на обработку Ваших персональных данных (файлов куки) с использованием Yandex.Metrika.
Понятно