Все системы в норме · Средняя загрузка нод: 23% · Потери пакетов: 0,41 мс Статус сети →
Подбор конфигурации · 7 минут

VPS для Telegram-бота

Боту на aiogram или telegraf с аудиторией до нескольких тысяч человек хватает NODE-1 за 428 ₽ в месяц. Ресурсы здесь почти никогда не узкое место — важнее стабильность соединения с API Telegram и то, переживёт ли бот перезагрузку сервера.

[01] Конфигурация

Что брать под какую нагрузку

Что за ботТарифПочемуЦена / мес
Один бот, до 5 000 пользователейNODE-1Python-процесс занимает 80–150 МБ, остальное — запас428 ₽Взять
Бот + PostgreSQL или RedisNODE-2База просит память под кеш, 4 ГБ хватает надолго765 ₽Взять
Несколько ботов, очереди, воркерыNODE-4Docker Compose с пятью-шестью контейнерами1 418 ₽Взять
Обработка медиа, конвертация видеоNODE-6 и вышеffmpeg упирается в процессор, нужны реальные ядра2 540 ₽Взять

Все тарифы — KVM с выделенными ядрами: соседи по ноде не отнимут процессорное время в момент, когда бот разбирает очередь сообщений.

[02] Локация

Откуда бот будет ходить в API

Серверы Telegram Bot API находятся в Европе, поэтому европейские площадки дают самую низкую задержку до них. Но при выборе учитывайте не только это.

  • Минимальная задержка до APIФранкфурт, Хельсинки, Амстердам
  • Юрисдикция вне ЕСКишинёв, Белград, Стамбул
  • Аудитория в СНГ и АзииАлматы, Ереван, Дубай
  • Долгое хранение медиаARC в Кишинёве

Задержка до API влияет только на скорость ответа бота на 10–40 мс — заметно при интенсивной обработке, незаметно при обычной переписке. Если бот работает через webhook, важнее стабильность канала, а не абсолютное значение пинга.

[03] Webhook

Long polling или webhook

Long polling проще: бот сам опрашивает API, наружу открывать ничего не нужно, TLS-сертификат не требуется. Для 90 % ботов этого достаточно, и это правильный выбор по умолчанию.

Webhook экономнее и быстрее при большой нагрузке, но требует открытого 443 порта, домена и валидного сертификата. Понадобится nginx с Let's Encrypt перед приложением.

Порт 443 открыт по умолчанию, отдельного согласования не нужно. Сертификат выпускается через certbot за минуту — DNS-запись просто должна указывать на IP вашего сервера.
[04] Эксплуатация

Чтобы бот не умер молча

Самая частая проблема начинающих — бот, запущенный из терминала через python bot.py: он умирает вместе с ssh-сессией, а после перезагрузки сервера не поднимается вовсе.

01

systemd-юнит

Пять строк конфигурации — и бот стартует при загрузке, перезапускается при падении и пишет в journalctl. Всегда лучше, чем screen или nohup.

02

Отдельный пользователь

Не запускайте бота от root. Заведите пользователя, положите код в его домашний каталог — при компрометации токена ущерб ограничится одним аккаунтом.

03

Бэкап базы

Если бот хранит состояние в SQLite или PostgreSQL — настройте автобэкап. Восстанавливать переписку пользователей из ниоткуда вы не сможете.

Токен в переменных окружения, а не в коде. Токен, попавший в публичный репозиторий, находят автоматические сканеры за минуты — и бот уходит к чужим людям вместе с базой пользователей.
[05] Вопросы

Коротко

Для бота на aiogram или telegraf — с большим запасом: сам процесс занимает 80–150 МБ. Память начинает заканчиваться, когда рядом ставят PostgreSQL, Redis и три контейнера, — тогда берите NODE-2 или выше.

Только для webhook. При работе через long polling бот обходится IP-адресом и вообще не принимает входящих соединений — так даже безопаснее.

Да, ограничений нет. Разнесите их по отдельным systemd-юнитам или контейнерам, чтобы падение одного не тянуло за собой остальные. На NODE-2 спокойно живут пять-семь небольших ботов.

Ограничения Telegram накладываются на токен бота, а не на сервер, поэтому смена хостинга ничего не решает. Соблюдайте лимиты: не более 30 сообщений в секунду суммарно и одного сообщения в секунду в конкретный чат.

Да, если вас устраивает оплата криптовалютой и отсутствие договора с печатью. Для сервисов, принимающих платежи от третьих лиц, нужно предварительное согласование — напишите до запуска, подберём локацию и профиль.

NODE-1 при оплате за 12 месяцев — 351 ₽ в месяц вместо 428 ₽, то есть 4 212 ₽ за год. Цена фиксируется при продлении и не растёт для действующих клиентов.

Сервер под бота за 428 ₽ в месяц

Ubuntu с Docker в комплекте, root-доступ через 47 секунд после оплаты.