DashCloud로 24시간 크롤러 원격으로 구동하기

원하는 사이트에서 핫딜이나 최신 뉴스를 긁어오는 파이썬 크롤러를 만들었어요. 내 컴퓨터에서 터미널을 열고 실행하면 데이터를 쏙쏙 잘 긁어오죠.
문제는 이 크롤러를 24시간 돌리고 싶을 때예요. 노트북 화면을 덮으면 바로 절전 모드로 들어가서 수집이 끊기고, 그렇다고 밤새 켜두자니 팬 소음과 배터리 수명이 신경 쓰이거든요.
AWS나 리눅스 가상 서버를 쓰자니 도커 설정이나 리눅스 데몬, cron 명령어까지 외워야 할 게 너무 많잖아요.
노트북을 완전히 끄고도 클라우드에서 24시간 쉬지 않고 돌아가는 원격 크롤러를 가장 쉽게 띄우는 법을 정리했어요.
1. 내 노트북에서 크롤러를 돌리면 왜 피곤할까요?
내 컴퓨터는 일상 작업을 위한 기기지, 24시간 돌아가는 서버가 아니에요.
노트북 덮개를 닫으면 운영체제가 절전 모드로 들어가 네트워크와 프로세스를 얼려버려요. 덮개 절전 설정을 풀어두더라도 새벽에 윈도우 업데이트로 강제 재부팅이 되거나, 공유기 유동 아이피가 바뀌면서 크롤러가 뻗어버리기 일쑤죠.
밤새 쉭쉭 도는 노트북 팬 소리를 들으며 잘 필요도 없어요. 가벼운 수집 작업은 24시간 켜져 있는 클라우드 백그라운드 컴퓨터에 던져두는 게 정답이거든요.
2. 크롤러 코드, AI에게 맡기면 1분 만에 나와요
파이썬 크롤링 라이브러리 문법을 처음부터 다 외울 필요가 전혀 없어요. Cursor나 ChatGPT, Claude에게 프롬프트 한 줄만 던져주면 되거든요.
"원하는 커뮤니티의 인기글 제목과 링크를 5분마다 확인해서 새 글이 올라오면 디스코드 웹훅으로 쏴주는 파이썬 크롤러 코드와 requirements.txt 짜줘."
이렇게 물어보면 requests나 BeautifulSoup, 타임 루프가 깔끔하게 짜인 완성형 코드를 10초 만에 건네줘요. 우리는 그 코드를 받아서 그대로 클라우드에 올리기만 하면 됩니다.
3. 크롤러는 웹사이트가 아니라 백그라운드 워커예요
크롤러를 클라우드에 올릴 때 가장 많이 하는 실수가 일반 무료 웹 호스팅을 찾는 거예요.
Render나 Heroku 같은 일반 웹 호스팅은 밖에서 들어오는 웹 트래픽이 없으면 15분 만에 컨테이너를 강제로 잠재워버려요. 크롤러는 밖에서 손님이 찾아오는 웹 서버가 아니라, 내부에서 5분마다 밖으로 데이터를 긁어오는 백그라운드 프로그램이잖아요.
그래서 크롤러는 외부 웹 포트가 필요 없는 상시 백그라운드 워커 환경에 올려야 24시간 내내 멈추지 않고 돌아가요.
4. 서버에 올릴 파일은 딱 두 개면 충분해요
AI가 만들어준 코드를 프로젝트 폴더에 두 개의 파일로 담아두면 준비는 끝나요.
my-crawler/
├── main.py # 크롤러가 시작되는 코드 파일
└── requirements.txt # 필요한 라이브러리 목록
requirements.txt에는 사용한 패키지만 적어주면 돼요.
requests>=2.31.0
beautifulsoup4>=4.12.0
main.py는 복잡한 cron 설정이나 가짜 웹 서버 없이 익숙한 타임 루프로 작성해요.
import os
import time
import logging
import requests
from bs4 import BeautifulSoup
logging.basicConfig(level=logging.INFO)
WEBHOOK_URL = os.getenv("DISCORD_WEBHOOK_URL")
def send_alert(title, url):
if not WEBHOOK_URL:
return
payload = {"content": f"📢 새 소식 도착!\n[{title}]({url})"}
requests.post(WEBHOOK_URL, json=payload, timeout=5)
def crawl_loop():
seen_links = set()
while True:
try:
logging.info("새 데이터를 확인하는 중...")
# AI가 작성해 준 수집 로직이 들어갑니다
# 새로운 소식이 발견되면 send_alert()로 알림 전송
except Exception as e:
logging.error(f"수집 중 일시적 오류 발생: {e}")
# 5분(300초) 대기 후 다시 수집
time.sleep(300)
if __name__ == "__main__":
crawl_loop()
웹 포트 개방 없이 순수하게 while True: time.sleep(300) 루프만 적어두면 끝납니다.
5. 수집한 데이터는 다시 배포해도 안 날아갈까요?
크롤러가 지금까지 수집한 글 목록이나 내역을 SQLite나 JSON 파일로 저장하고 있다면 저장 위치만 챙겨두면 돼요.
DashCloud는 /app 경로에 1GB 영구 볼륨 디스크가 연결되어 있어요. 코드를 고쳐서 새로 배포하거나 컨테이너가 다시 켜지더라도 저장해 둔 데이터 파일이 그대로 보존되거든요.
데이터베이스 파일을 data/crawler.db처럼 프로젝트 폴더 안 상대경로로 지정해 두면 안심하고 쓸 수 있어요.
6. 기간 제한 없이 평생 무료로 쓸 수 있을까요?
많은 클라우드가 '첫 달 무료'로 유혹한 뒤 다음 달부터 카드 결제를 유도하거나, 매달 연장 버튼을 누르지 않으면 서버를 지워버려요.
DashCloud 공식 홈페이지에서 제공하는 Free 샌드박스는 신용카드 등록 자체가 필요 없고, 오픈베타 연장 신청이나 기간 만료 스트레스 없이 평생 무료로 계속 쓸 수 있어요. 매달 연장 버튼을 누르러 올 필요도 전혀 없습니다.
| 항목 | Free 샌드박스 정책 |
|---|---|
| 메모리 | 256MB RAM |
| 영구 디스크 | 1GB 볼륨 (/app 경로 안전 보존) |
| 월간 트래픽 | 10GB |
| 이용 기간 | 기간 만료 없는 평생 무료 (오픈베타 연장 불필요) |
| 결제 수단 | 신용카드 등록 불필요 |
| 트래픽 초과 시 | 자동 결제 대신 128kbps 감속 유지 |
5분마다 가볍게 데이터를 긁어오는 크롤러에게 256MB는 차고 넘치는 사양이에요. 혹시 트래픽을 다 쓰더라도 128kbps로 감속 유지되어 수집 작업은 365일 내내 중단되지 않거든요.
7. 디스호스트 커뮤니티와 크롤러의 시너지
수집한 핫딜 정보나 게임 패치 노트, 증시 속보를 디스코드 웹훅으로 쏴주면 내가 운영하는 디스코드 커뮤니티 서버의 활성도가 눈에 띄게 올라가요.
커뮤니티 확장은 DisHost가 든든하게 받쳐주고, 서버에 알짜배기 콘텐츠를 24시간 공급해 주는 크롤러는 DashCloud가 책임지는 셈이죠.
더 이상 노트북 팬 소리에 시달리지 마세요. AI에게 1분 만에 코드를 맡기고, DashCloud 무료 콘솔에서 24시간 꺼지지 않는 평생 무료 백그라운드로 편안하게 데이터를 모아보세요.