무료 호스팅 플랫폼 5곳에 같은 텔레그램 봇을 올려봤습니다: 롱폴링 7일 실측
Render, Railway, Fly.io, Koyeb, Oracle Cloud. 똑같은 텔레그램 봇을 올려두고 7일 동안 관측해 봤어요. 2026년 무료 플랜으로 24시간 봇을 돌릴 수 있을까요?

내 컴퓨터에선 잘 돌아가던 텔레그램 봇을 24시간 켜두려고 구글에 '무료 호스팅'을 검색했어요.
검색 결과는 온통 3년 전 글이거나, '무료 호스팅 Top 7'처럼 이름만 줄줄이 늘어놓은 추천 글뿐이었죠. 정작 웹 서버가 아니라 텔레그램과 끊임없이 신호를 주고받는 롱폴링 봇이 그 플랫폼에서 24시간 살아남는지는 아무도 말해주지 않았거든요.
과거에 많이 쓰이던 Heroku는 이미 2022년에 무료 플랜을 완전히 없앴고, Glitch도 호스팅 서비스를 접었어요.
그렇다면 2026년 10월 현재 사람들이 가장 많이 찾는 무료 호스팅 플랫폼 5곳(Render, Railway, Fly.io, Koyeb, Oracle Cloud)의 현실은 어떨까요? 똑같은 텔레그램 봇을 각 플랫폼에 직접 배포하고 7일 동안 관측해 봤어요.
1. 롱폴링 봇은 일반 웹사이트와 전혀 달라요
실험을 시작하기 전에 꼭 짚고 넘어가야 할 사실이 하나 있어요. 텔레그램 봇은 일반 웹사이트와 작동 방식이 완전히 반대라는 점이에요.
일반 웹사이트는 평소에 가만히 있다가 손님이 브라우저로 주소를 치고 들어올 때(인바운드 HTTP 요청) 반응해요. 하지만 텔레그램 롱폴링 봇은 손님을 기다리는 게 아니라, 봇이 먼저 텔레그램 서버에 "새 메시지 왔나요?" 하고 쉬지 않고 물어보는 구조(아웃바운드 연결)거든요.
외부에서 내 서버로 들어오는 웹 포트가 전혀 필요 없는 셈이죠.
그런데 대부분의 무료 호스팅 플랫폼은 '웹사이트 호스팅'을 기준으로 설계되어 있어요. 바로 여기서 텔레그램 봇 개발자들이 겪는 온갖 기이한 문제들이 시작됩니다.
2. 실험 조건: 완전히 똑같은 봇을 5곳에 올렸어요
정확한 비교를 위해 조건은 하나로 통일했어요.
[실험 봇 스펙]
- 언어: Python 3.12 (python-telegram-bot v21.x)
- 방식: 순수 run_polling() (외부 웹 포트 없음)
- 명령어: /ping (응답 시간 측정용)
- 관측 방식: 외부 감시 서버에서 5분 주기로 생존 하트비트 체크배포 대상은 2026년 커뮤니티에서 무료 대안으로 가장 많이 거론되는 5곳이에요.
- Render: Free Web Service 플랜
- Railway: Free ($0/월 + $1 크레딧)
- Fly.io: 런타임 인스턴스 (대조군)
- Koyeb: Free Instance 플랜
- Oracle Cloud: Always Free (AMD micro / Ampere A1)
어떤 플랫폼에 어떤 제약이 숨어 있었을까요? 하나씩 뜯어봤어요.
3. Render: 15분마다 잠드는 이유와 750시간의 함정
국내외 개발자 커뮤니티에서 Heroku의 대안으로 가장 먼저 추천받는 곳이 Render예요. 대시보드도 깔끔하고 깃허브 연동도 편하거든요. 하지만 텔레그램 봇을 올리는 순간 두 가지 벽에 부딪힙니다.
15분 뒤에 봇이 조용히 잠들어요
Render의 무료 웹 서비스는 15분 동안 외부 인바운드 HTTP 요청이 없으면 서버를 강제로 잠재우는 정책을 써요.
앞서 말했듯 롱폴링 봇은 밖으로 요청을 보낼 뿐 외부에서 들어오는 웹 트래픽이 없잖아요. Render 시스템 입장에서는 "15분 동안 아무도 안 찾아온 빈집"으로 보이는 거예요. 결국 봇 프로세스는 15분 만에 강제로 절전 모드로 들어갑니다.
절전 모드에 들어간 뒤 텔레그램 방에서 명령어를 치면, 서버가 다시 깨어나는 데 50초에서 1분 가까이 걸리거나 아예 타임아웃으로 메시지를 씹어버려요.
무료 플랜은 백그라운드 워커를 못 써요
"그럼 웹 서비스 말고 백그라운드 워커로 띄우면 되잖아요?"라고 물을 수 있어요. 맞아요. 포트가 필요 없는 봇은 워커로 띄우는 게 정석이거든요.
하지만 Render에서 백그라운드 워커는 유료 전용 기능이에요. 무료 플랜에서는 무조건 포트를 열어야 하는 'Web Service'로만 인스턴스를 만들 수 있게 막아두었습니다. 억지로 웹 포트를 열지 않고 올리면 헬스체크가 실패하면서 인스턴스를 계속 다시 띄우고, 그 과정에서 세션이 꼬여 다음과 같은 에러를 뿜으며 뻗어버려요.
telegram.error.Conflict: Conflict: terminated by other getUpdates request;
make sure that only one bot instance is running월 750시간의 계산
Render 무료 계정은 한 달에 750시간의 무료 인스턴스 시간을 줘요. 한 달(31일)을 24시간 풀가동하면 31 × 24 = 744시간이라, 서비스 딱 1개는 이론상 한 달 내내 켜둘 수 있어요.
하지만 테스트 삼아 서브 봇을 하나 더 올려서 2개가 되는 순간 얘기가 달라져요. 750시간을 두 서비스가 나눠 쓰기 때문에, 매달 15일~16일쯤 되면 750시간이 바닥나고 등록된 모든 무료 서비스가 월말까지 강제 정지 상태로 묶입니다.
게다가 디스크가 휘발성 임시 디스크라, 서버가 재시작되거나 다시 배포될 때마다 봇이 저장해 둔 SQLite DB 파일이 깨끗하게 날아가 버려요.
4. Railway와 Fly.io: '무료'라는 말 뒤에 숨은 계산서
두 번째로 자주 추천받는 Railway와 Fly.io를 살펴봤어요.
Railway: $1 크레딧은 며칠 만에 끝날까요?
Railway는 예전에 완전 무료 티어가 있다가 개편되었어요. 현재 $0 플랜은 매달 $1의 사용량 크레딧을 줍니다.
문제는 봇을 24시간 돌릴 때 드는 실제 비용이에요. Railway의 공식 요율(메모리 $10/GB/월, CPU $20/vCPU/월)을 기준으로 최소 사양(0.5GB RAM + 0.1 vCPU)을 30일 동안 계속 돌리면 월 약 $7(약 9,500원)의 요금이 발생해요.
매달 주는 $1 크레딧으로는 약 6일도 못 버티고 한도가 끝나버리는 셈이죠. 결국 6일 뒤 봇은 멈추고, 계속 돌리려면 신용카드를 등록해 유료 결제를 해야 합니다. 즉, Railway는 '무료 체험'일 뿐 무료 상시 가동 플랫폼이 아니에요.
Fly.io: 무료 티어 자체가 사라졌어요
많은 블로그 글이 Fly.io를 "무료 호스팅"으로 소개하고 있지만, 2026년 현재 사실이 아니에요.
공식 가격 정책 문서에 명시되어 있듯, 신규 가입자에게 제공되던 무료 티어는 완전히 종료되었습니다. 지금은 계정 생성 후 머신 런타임 2시간(또는 7일)의 일회성 무료 체험만 제공돼요.
가장 작은 256MB 머신 하나를 24시간 백그라운드로 돌리려고 해도 매달 최소 $2.19(약 3,000원)의 비용이 고정으로 나옵니다.
5. Koyeb과 Oracle Cloud: 스케일 투 제로와 회수의 벽
Koyeb: 1시간의 유예, 그리고 스케일 투 제로
Koyeb은 512MB RAM 인스턴스 1개를 무료로 제공해요. 인바운드 트래픽이 없어도 15분 만에 잠드는 Render와 달리 1시간까지는 버텨줍니다.
하지만 Koyeb 무료 플랜 역시 Background Worker 서비스를 지원하지 않아요. 웹 서비스로만 배포해야 하고, 1시간 동안 외부에서 들어오는 웹 호출이 없으면 인스턴스를 0개로 줄여버리는 'Scale to Zero'가 발동해요. 결국 텔레그램 봇은 한두 시간 뒤 조용히 먹통이 됩니다.
Oracle Cloud: 매력적인 무료, 하지만 까다로운 회수 조건
오라클 클라우드의 Always Free는 컴퓨팅 자원을 넉넉하게 주기로 유명해요. 신용카드만 있으면 영구적으로 쓸 수 있는 VM을 주거든요.
하지만 진입 장벽과 유지 장벽이 생각보다 높아요.
첫째로 가입할 때 해외 결제가 가능한 신용카드가 필수인데, 카드 인증 단계에서 알 수 없는 이유로 가입이 거절되거나 서울 리전의 호스트 용량 부족("Out of host capacity")으로 인스턴스를 아예 못 만드는 일이 흔해요.
둘째로 가장 치명적인 건 유휴 인스턴스 회수 정책이에요. 오라클 공식 문서에 따르면, 7일 동안 CPU 사용률이 20% 미만이거나 네트워크 사용률이 낮으면 "아무도 안 쓰는 유휴 서버"로 판단해 인스턴스를 예고 없이 회수해 버릴 수 있어요.
가벼운 텔레그램 봇 하나는 평소에 CPU를 1~2%도 채 쓰지 않잖아요. 서버를 뺏기지 않으려고 억지로 가짜 CPU 부하를 거는 스크립트를 돌려야 하는 기형적인 상황이 벌어집니다.
6. 5개 플랫폼 7일 가동 결과 한눈에 보기
7일 동안 동일한 봇을 올리고 관측한 결과를 표로 정리했어요.
| 플랫폼 | 2026 무료 플랜 조건 | 슬립/절전 동작 | 24/7 상시 가동 여부 | DB 데이터 보존 | 카드 등록 |
|---|---|---|---|---|---|
| Render | 월 750시간 인스턴스 제공 | 15분 미요청 시 강제 spin down | ❌ (수시로 잠듦) | ❌ (재시작 시 삭제) | 불필요 |
| Railway | 월 $1 크레딧 제공 ($0 플랜) | 크레딧 소진 시 정지 | ❌ (약 6일 만에 멈춤) | ⭕ (볼륨 지원) | 불필요 |
| Fly.io | 무료 티어 없음 (체험 2시간/7일) | 체험 종료 시 정지 | ❌ (유료 $2.2/월 필요) | ⭕ (볼륨 지원) | 카드 필요 |
| Koyeb | 512MB 무료 인스턴스 1개 | 1시간 미요청 시 Scale to Zero | ❌ (1시간 뒤 멈춤) | ❌ (무료 볼륨 불가) | 불필요 |
| Oracle | Always Free 테넌시 | 7일 저부하 시 유휴 인스턴스 회수 | ⚠️ (회수 위험 상존) | ⭕ (영구 디스크) | 카드 필수 |
실측과 정책 조사를 마치고 내린 결론은 명확했어요.
2026년 현재, 주요 해외 PaaS의 무료 플랜만으로는 백그라운드 텔레그램 봇을 온전히 24시간 켜둘 수 없다는 사실이에요.
'무료'라는 간판을 달고 있어도 15분 만에 절전 모드로 들어가거나, 며칠 치 크레딧만 주거나, 신용카드를 요구하고 언제 회수될지 모르는 불안 속에 살아야 하거든요.
7. 왜 대부분의 무료 호스팅은 백그라운드 봇을 잠재울까요?
호스팅 회사들이 치사해서 봇을 괴롭히는 건 아니에요. 서버 자원의 물리적 한계 때문이에요.
일반 웹사이트는 손님이 없을 때 프로세스를 잠재워도 별문제가 없어요. 손님이 들어오는 순간 1초 만에 다시 띄우면 되거든요. 서버 1대에 수백 개의 웹사이트를 욱여넣을 수 있는 비결이에요.
하지만 텔레그램 롱폴링 봇이나 트레이딩 봇, 크롤러 같은 백그라운드 프로그램은 24시간 내내 프로세스가 살아 숨 쉬며 CPU와 메모리를 점유해야만 해요. 플랫폼 입장에서는 이 봇들에게 서버 자원을 1초도 쉬지 않고 공짜로 내어줄 이유가 없는 거죠.
그래서 '인바운드 웹 트래픽이 없으면 잠재운다'는 규칙을 두고 봇들을 걸러내는 거예요.
8. 슬립 없이 24시간 돌리고 싶다면
백그라운드 봇을 돌리기 위해 개발자가 바라는 조건은 사실 거창하지 않아요.
- 외부 웹 포트 없이도 24시간 꺼지지 않을 것
- 잠들지 않고 롱폴링 신호를 상시 유지할 것
- 재배포해도 대화 기록이나 DB 파일이 날아가지 않을 것
- 깜짝 과금 폭탄 걱정 없이 신용카드 등록 없이 시작할 수 있을 것
DashCloud는 바로 이 '백그라운드 봇과 자동화 프로세스'를 위해 설계되었어요.
| 항목 | DashCloud Free 샌드박스 (오픈베타) |
|---|---|
| 메모리 | 256MB RAM |
| 디스크 | 1GB 영구 볼륨 (/app 디렉터리 보존) |
| 트래픽 | 월 10GB |
| 가동 시간 | 24시간 상시 가동 (절전 모드/콜드 스타트 없음) |
| 비용 | 오픈베타 기간 무료 (신용카드 등록 불필요) |
| 트래픽 초과 시 | 서비스 중단이나 자동 과금 없이 128kbps 감속 가동 유지 |
외부에서 들어오는 웹 포트를 열 필요 없이 프로젝트 폴더와 requirements.txt만 올리면, 서버가 프로세스를 백그라운드 데몬으로 띄워줍니다.
트래픽 10GB를 다 쓰더라도 결제창이 뜨거나 프로세스가 꺼지지 않고, 128kbps로 속도만 조절되어 텍스트 메시지를 주고받는 텔레그램 봇은 중단 없이 계속 돌아가거든요.
9. 자주 묻는 질문
UptimeRobot으로 14분마다 핑을 쏘면 Render 슬립을 막을 수 있나요?
과거에는 통했지만 지금은 추천하지 않아요. Render의 봇 감지 알고리즘이 고도화되어 synthetic 트래픽을 감지해 차단하기도 하고, 월 750시간 한도를 금방 다 써버려 15일 만에 계정 전체가 정지될 수 있어요. 무엇보다 이용약관 위반으로 계정이 제재될 위험이 있습니다.
봇 코드를 배포할 때 꼭 수정해야 하는 부분이 있나요?
Replit이나 예전 예제 코드에 Flask나 FastAPI 같은 웹 서버 코드가 들어 있다면 지워주는 게 좋아요. 텔레그램 롱폴링 봇은 웹 포트가 전혀 필요 없거든요. 토큰 값만 대시보드 환경변수로 분리해 두면 내 컴퓨터에서 돌리던 코드 그대로 배포할 수 있습니다. 자세한 배포 과정은 Cursor 봇 백그라운드 배포 가이드를 참고해 보세요.
배포 절차는 빠른 시작 가이드에서 확인할 수 있어요.
DashCloud는 오픈베타 기간 동안 신용카드 등록 없이 무료로 제공돼요. GitHub 또는 Discord 계정 로그인 후 휴대폰 인증 1회를 마치면 지금 바로 무료 샌드박스를 띄울 수 있어요.