Soluções · Bots
Um VPS para um bot do Telegram
Um bot em repouso usa menos de cem megabytes e passa a vida esperando, então a máquina quase nunca é a limitação: o U1-1 por $6.90 por mês executa um adequadamente. O que realmente decide a sua conta é a mídia, e se você roda seu próprio servidor da Bot API. Ambos são aritmética, e ambos estão abaixo.
A decisão por trás da decisão
Webhook ou long polling
É isso, e não o plano, que define se o seu bot precisa de um domínio, um certificado e uma porta aberta.
Long polling
Seu bot se conecta ao Telegram e aguarda atualizações. Sem domínio, sem certificado TLS, sem porta aberta para a internet, funciona atrás de NAT. É a maneira mais rápida de colocar algo para rodar e é uma solução permanente perfeitamente adequada para a maioria dos bots.
Webhook
O Telegram se conecta a você. Precisa de um endereço público, um certificado válido e uma porta aberta (tudo isso qualquer plano daqui oferece) e, em troca, não há loop de polling e a escala é melhor sob carga real. Mude quando a carga ou a latência pedirem, não antes.
A aritmética
Quantos bots um plano realmente comporta
Bots = (RAM − 300 MB do sistema operacional) ÷ o que um bot ocupa. As duas colunas são um bot de comandos sem estado e um com ORM, agendador e cache.
| Plano | RAM | Bots leves | Bots pesados | Transferência | Preço | Implantar |
|---|---|---|---|---|---|---|
| U1-1Um bot, qualquer tamanho de público | 1 GB | 12 | 4 | Unmetered | $6.90 | Implantar |
| C1-1-25Um bot, medido mas barato | 1 GB | 12 | 4 | 1 TB | $9.90 | Implantar |
| GL2-4Vários bots, ou um bot com banco de dados | 4 GB | 63 | 25 | Unmetered | $11.90 | Implantar |
| BD-8Um servidor da Bot API auto-hospedado | 8 GB | 131 | 52 | 32 TB | $12.90 | Implantar |
O número de usuários do seu bot não entra nesta aritmética, porque não faz parte do problema: o Telegram entrega as atualizações ao seu processo uma de cada vez, em vez de abrir uma conexão por usuário. O que muda a resposta é o estado que você mesmo mantém: um cache grande, um banco de dados no processo, um modelo.
O número que define a fatura
Mídia, não memória
Tamanho médio do arquivo × mensagens por dia × 30. As duas direções contam: um arquivo recebido também é tráfego.
| O que o bot transfere | 100/dia | 5,000/dia | 50,000/dia |
|---|---|---|---|
| Somente textoUm comando e uma resposta. Praticamente nada. | < 1 GB | < 1 GB | 3 GB |
| FotosUma imagem comprimida, enviada e recebida. | < 1 GB | 44 GB | 439 GB |
| Mensagens de voz e vídeos curtosA carga habitual de um bot de comunidade. | 9 GB | 439 GB | 4.3 TB |
| Documentos e vídeos longosO próprio limite de download do Telegram para um bot comum. | 59 GB | 2.9 TB | 28.6 TB |
A única coisa que muda a máquina
Um bot na Bot API pública pode baixar arquivos de até 20 MB e enviar até 50 MB (limites do Telegram, não nossos), e os arquivos nunca passam pelo seu disco. Rode seu próprio servidor da Bot API e o teto passa a ser 2 GB, e cada arquivo chega ao seu servidor. É nesse ponto que disco e transferência deixam de ser secundários: o BD-8 oferece 100 GB de SSD e 32 TB por $12.90, que é o perfil adequado. Se você não fizer isso, não pague por isso.
Com franqueza
O que nós realmente compraríamos
Nós mesmos rodamos um bot do Telegram. Esta é a máquina em que o colocaríamos.
Para um bot
U1-1 · $6.90/mês
1 núcleo, 1 GB, 15 GB SSD e sem medição de tráfego: assim, um bot que inesperadamente comece a transferir mídia não pode gerar uma fatura que você não esperava. Coloque o bot sob o systemd com Restart=always, e a única forma restante de ele cair é o seu próprio código. Se ele crescer além da máquina, mover um bot é copiar um diretório e um token.
Perguntas