Как выбрать VPS для Telegram-бота
Небольшому боту не нужен дорогой сервер, но ему нужны стабильная сеть, автоматический перезапуск и резервная копия данных. Подбираем конфигурацию с запасом, который действительно пригодится.
Минимальные ресурсы зависят от нагрузки
| Сценарий | Стартовая конфигурация | Когда увеличивать |
|---|---|---|
| Простой бот без БД | 1 vCPU, 1 ГБ RAM, 10–20 ГБ SSD | При росте одновременных обработчиков |
| Бот + PostgreSQL/Redis | 2 vCPU, 2–4 ГБ RAM, NVMe | При очередях и нехватке кэша |
| Медиа или ML-задачи | 2–4 vCPU, от 4 ГБ RAM | По измерениям CPU, RAM и диска |
Оставьте 20–30% RAM свободными для системы и обновлений. Для базы данных важнее стабильный NVMe и достаточная память, чем большой диск. Не храните загруженные файлы бесконечно: переносите их в объектное хранилище или удаляйте по расписанию.
Long polling или webhook
Long polling проще запустить и не требует входящего HTTPS-соединения. Webhook удобен при масштабировании, но нужен домен, TLS-сертификат и доступный порт. В обоих случаях критичнее стабильность маршрута до API Telegram, чем гигабитный порт.
Проверьте, что провайдер не ограничивает нужные исходящие соединения, а выбранная локация имеет устойчивый маршрут. Начните с помесячного тарифа и протестируйте задержки на реальном боте.
Как развернуть без ручных перезапусков
- Создайте отдельного пользователя без постоянной работы от root.
- Храните токен и пароли в переменных окружения, а не в репозитории.
- Запускайте приложение через systemd или Docker с политикой перезапуска.
- Закройте лишние порты, включите SSH-ключи и автоматические обновления безопасности.
- Настройте логирование с ротацией, чтобы логи не заполнили диск.
Мониторинг и резервные копии
Минимальный мониторинг должен сообщать, что процесс остановился, накопилась очередь или заканчивается диск. Для базы данных делайте отдельные ежедневные дампы и периодически проверяйте восстановление. Снимок всего VPS полезен, но не заменяет переносимую копию данных.
Для точного расчёта откройте таблицу CPU и RAM для разных задач.