결정에 앞선 결정
웹훅 또는 롱 폴링
봇에 도메인, 인증서, 열린 포트가 필요한지는 플랜이 아니라 이것이 결정합니다.
롱 폴링
봇이 Telegram으로 연결해 업데이트를 기다립니다. 도메인, TLS 인증서, 인터넷에 열린 포트가 필요 없으며 NAT 뒤에서도 작동합니다. 가장 빠르게 시작할 수 있는 방법이며, 대부분의 봇에게는 영구적인 방식으로도 충분합니다.
웹훅
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은 $12.90에 SSD 100 GB와 32 TB를 제공하므로 이 용도에 맞습니다. 이런 방식으로 운영하지 않는다면 이 플랜에 비용을 지불할 필요가 없습니다.
솔직하게
실제로 저희가 구매할 플랜
저희도 Telegram 봇을 직접 운영합니다. 저희라면 이 서버에 올리겠습니다.
봇 하나용
U1-1 · $6.90/월
1코어, 1 GB, SSD 15 GB, 트래픽 계량 없음. 따라서 봇이 예상치 않게 미디어를 주고받기 시작해도 예상치 못한 요금이 나오지 않습니다. Restart=always로 봇을 systemd에서 실행하면, 봇이 다운될 수 있는 남은 원인은 직접 작성한 코드뿐입니다. 사양이 부족해지면 디렉터리와 토큰을 복사하는 것만으로 봇을 옮길 수 있습니다.
질문