Решения · Боты
VPS для Telegram-бота
Бот в простое занимает меньше ста мегабайт и почти всё время ждёт, поэтому сервер почти никогда не становится ограничением: U1-1 за $6.90 в месяц нормально его тянет. На самом деле счёт определяют медиафайлы и то, запускаете ли вы собственный сервер Bot API. И то и другое считается, и расчёт ниже.
Решение, которое стоит за решением
Webhook или long polling
Именно это, а не тариф, определяет, нужны ли боту домен, сертификат и открытый порт.
Long polling
Бот сам подключается к Telegram и ждёт обновлений. Ни домена, ни TLS-сертификата, ни открытого в интернет порта, работает за NAT. Это самый быстрый способ что-то запустить и вполне хорошее постоянное решение для большинства ботов.
Webhook
Telegram подключается к вам. Нужны публичный адрес, действительный сертификат и открытый порт (всё это доступно на любом тарифе здесь), а взамен нет цикла опроса и бот лучше масштабируется под реальной нагрузкой. Переходите, когда этого требуют нагрузка или задержка, не раньше.
Арифметика
Сколько ботов на самом деле вмещает тариф
Боты = (RAM − 300 MB на операционную систему) ÷ сколько занимает один бот. Две колонки: бот без состояния, отвечающий на команды, и бот с ORM, планировщиком и кешем.
| Тариф | RAM | Лёгкие боты | Тяжёлые боты | Трафик | Цена | Развернуть |
|---|---|---|---|---|---|---|
| U1-1Один бот, аудитория любого размера | 1 GB | 12 | 4 | Unmetered | $6.90 | Развернуть |
| C1-1-25Один бот, трафик учитывается, но дёшево | 1 GB | 12 | 4 | 1 TB | $9.90 | Развернуть |
| GL2-4Несколько ботов или бот с базой данных | 4 GB | 63 | 25 | Unmetered | $11.90 | Развернуть |
| BD-8Собственный сервер Bot API | 8 GB | 131 | 52 | 32 TB | $12.90 | Развернуть |
Числа пользователей вашего бота нет в этой арифметике, потому что его нет и в задаче: Telegram передаёт вашему процессу обновления по одному, а не открывает соединение на каждого пользователя. Ответ меняет состояние, которое вы держите сами: большой кеш, встроенная в процесс база данных, модель.
Число, от которого зависит счёт
Медиа, а не память
Средний размер файла × сообщений в день × 30. Считаются оба направления: полученный файл тоже трафик.
| Что передаёт бот | 100/день | 5,000/день | 50,000/день |
|---|---|---|---|
| Только текстКоманда и ответ. Практически ничего не стоит. | < 1 GB | < 1 GB | 3 GB |
| ФотоСжатое изображение, отправленное и полученное. | < 1 GB | 44 GB | 439 GB |
| Голосовые сообщения и короткие видеоОбычная нагрузка бота для сообщества. | 9 GB | 439 GB | 4.3 TB |
| Документы и длинные видеоСобственный лимит Telegram на скачивание для обычного бота. | 59 GB | 2.9 TB | 28.6 TB |
Единственное, что меняет требования к машине
Бот на публичном Bot API может скачивать файлы до 20 MB и загружать до 50 MB (это ограничения Telegram, а не наши), и файлы никогда не попадают на ваш диск. Запустите собственный сервер Bot API, и потолок станет 2 GB, а каждый файл будет оказываться на вашем сервере. Именно здесь диск и трафик перестают быть второстепенными: BD-8 даёт 100 GB SSD и 32 TB за $12.90, и это подходящее сочетание. Если вы этого не делаете, не платите за это.
Откровенно
Что купили бы мы сами
Мы сами держим Telegram-бота. Вот машина, на которую мы бы его поставили.
Для одного бота
U1-1 · $6.90/мес.
1 ядро, 1 GB, 15 GB SSD и без учёта трафика, поэтому бот, который вдруг начнёт передавать медиа, не принесёт неожиданного счёта. Запустите бота под systemd с Restart=always, и единственной оставшейся причиной падения будет ваш собственный код. Если бот перерастёт машину, переезд сводится к копированию каталога и токена.
Вопросы