개인 서버 vs 클라우드(VPS) — 자동매매 봇 어디서 돌릴까
봇이 백테스트를 통과하고 실거래 준비가 끝나면 마지막 질문이 남습니다. 이걸 어디서 돌리지? 집에 있는 PC를 24시간 켜둘 것인가, 월 몇천 원짜리 VPS를 빌릴 것인가.
정답은 전략에 따라 다릅니다. 다만 판단 기준은 네 가지로 정리됩니다.
기준 ① 가동률 — 실제로 안 끊기는가
여기가 집 PC의 가장 약한 고리입니다. 봇이 죽어 있는 동안 시장은 그대로 움직입니다. 특히 포지션을 들고 있는데 봇이 꺼진 상황은 최악입니다. 손절 로직이 없는 것과 같으니까요.
집 환경에서 봇이 멈추는 현실적인 원인들입니다.
- 정전 — 짧은 순단도 PC를 끕니다. UPS가 없으면 방법이 없습니다
- 인터넷 끊김 — 공유기 재부팅, 회선 점검, ISP 장애
- 윈도우 자동 업데이트 재부팅 — 이게 의외로 1등입니다. 새벽에 조용히 재부팅됩니다
- 절전 모드 — 화면만 끄려다 시스템 절전까지 걸려 네트워크가 끊깁니다
- 실수 — 게임하려고 재부팅, 청소하다 코드 뽑기
VPS(Virtual Private Server, 데이터센터에 있는 가상 서버를 월 단위로 빌리는 것)는 이 문제 대부분이 사라집니다. 데이터센터에는 무정전 전원과 이중화 회선이 있고, 커널 업데이트를 제외하면 재부팅될 일이 없습니다.
집에서 계속 돌리겠다면 최소한 이 두 가지는 하세요 — 윈도우 업데이트 자동 재부팅 차단, 그리고 절전 모드 완전 해제. 이것만으로 사고의 절반이 줄어듭니다.
기준 ② 네트워크 지연 — 얼마나 중요한가
많은 분이 과대평가하는 항목입니다. 결론부터 말하면 전략에 따라 완전히 다릅니다.
- 수 분~수 시간 단위 전략(스윙·추세추종·리밸런싱) — 지연 100ms 차이는 사실상 무의미합니다. 집에서 돌려도 아무 문제 없습니다
- 초 단위 전략(그리드·단기 갭) — 유의미해지기 시작합니다. 체결 실패율에 영향을 줍니다
- 차익거래·마이크로초 경쟁 — 결정적입니다. 이 영역은 애초에 개인이 지연으로 이길 수 있는 게임이 아닙니다
중요한 건 추측하지 말고 재보는 것입니다. 거래소 API 왕복 시간을 직접 측정하세요.
import time, statistics
import requests
URL = "https://api.example-exchange.com/v1/ticker" # 실제 거래소 엔드포인트로 교체
samples = []
for _ in range(30):
t0 = time.perf_counter()
requests.get(URL, timeout=5)
samples.append((time.perf_counter() - t0) * 1000) # ms
time.sleep(0.5)
samples.sort()
print(f"중앙값 {statistics.median(samples):.1f}ms")
print(f"p95 {samples[int(len(samples) * 0.95)]:.1f}ms")
print(f"최악 {samples[-1]:.1f}ms")
평균이 아니라 p95(상위 5% 지점)와 최악값을 보세요. 평균 40ms인데 가끔 800ms가 튀는 회선이, 항상 90ms인 회선보다 나쁠 수 있습니다. 봇을 죽이는 건 평균이 아니라 꼬리입니다.
VPS를 쓴다면 리전 선택이 사양보다 중요합니다. 국내 증권사 API를 쓰는데 서울 리전을 두고 해외 리전을 고르면, 사양을 올려도 지연은 안 줄어듭니다.
기준 ③ 비용 — 전기료를 계산에 넣자
"집 PC는 공짜"라는 인식이 흔한데, 24시간 가동은 공짜가 아닙니다.
일반적인 데스크톱이 유휴 상태에서 60~100W 정도를 씁니다. 60W로 잡고 한 달을 계산하면 약 43kWh. 여기에 누진 구간까지 고려하면 체감 비용은 더 올라갑니다. 사양이 높은 PC나 모니터를 함께 켜두면 두 배 이상이 되기도 합니다.
봇 하나 돌리는 데 필요한 사양은 생각보다 낮습니다. 1 vCPU / 1GB RAM 정도의 최소 VPS로도 대부분의 파이썬·Go 봇은 충분히 돕니다. 이 급의 VPS는 대체로 월 커피 한두 잔 수준입니다.
즉 순수 비용만 보면 저사양 VPS가 집 PC 24시간 가동보다 싸거나 비슷합니다. 거기에 가동률까지 얹어주니, 비용은 사실 VPS 쪽에 유리한 항목입니다.
기준 ④ 관리 부담 — 리눅스를 감당할 수 있는가
VPS의 진짜 비용은 돈이 아니라 학습 시간입니다. SSH 접속, 리눅스 명령어, 방화벽 설정, 프로세스 관리, 로그 확인. 처음이면 며칠 걸립니다.
그리고 인터넷에 노출된 서버를 갖는다는 건 책임이 따릅니다. 최소한 이건 지키세요.
- SSH 비밀번호 로그인 끄고 키 인증만 — 무차별 대입 시도는 서버를 만든 그날부터 들어옵니다
- root 직접 로그인 금지, 일반 계정 + sudo
- 방화벽으로 필요한 포트만 — 봇은 나가는 연결만 하면 되므로 열 포트가 거의 없습니다
- 대시보드를 띄운다면 반드시 인증 — 인증 없는 웹 대시보드는 남의 봇 조종 패널입니다
그래서 어디서 돌릴까
상황별로 정리하면 이렇습니다.
- 개발·백테스트·페이퍼 트레이딩 → 집 PC. 고민할 필요 없습니다. 코드 고치고 바로 돌려보는 게 압도적으로 빠릅니다
- 소액 실거래 시작 → 집 PC로 시작해도 됩니다. 대신 절전·자동재부팅을 끄고, 봇이 죽으면 알림이 오게 만드세요
- 포지션을 밤새 들고 있는 전략 → VPS. 가동률이 곧 리스크 관리입니다
- 초 단위 반응이 필요한 전략 → VPS, 리전은 거래소와 가까운 곳
- 윈도우 전용 증권사 API를 쓴다 → 리눅스 VPS로 못 옮깁니다. 윈도우 VPS를 쓰거나 집 PC를 유지하되 가동률 대책을 세우세요
개인적으로 추천하는 건 하이브리드입니다. 개발과 백테스트는 집에서, 검증이 끝난 코드만 VPS로 배포. Docker나 Git으로 배포 경로를 만들어두면 이 왕복이 명령 한 줄이 됩니다.
그리고 어디서 돌리든 봇이 살아 있는지 알려주는 장치는 반드시 만드세요. 30분마다 텔레그램으로 상태 한 줄을 보내는 것만으로도, "언제부터 죽어 있었는지 모르는" 최악의 상황은 피할 수 있습니다.
정리
- 판단 기준은 가동률·지연·비용·관리부담 네 가지
- 집 PC의 최대 적은 해킹이 아니라 정전과 윈도우 자동 재부팅
- 지연은 추측 말고 측정, 평균이 아니라 p95와 최악값을 본다
- 전기료를 넣으면 저사양 VPS가 오히려 저렴할 수 있다
- VPS의 진짜 비용은 리눅스 학습 시간과 보안 책임
- 분 단위 이상 전략이면 지연은 신경 쓸 항목이 아니다
- 어디서 돌리든 생존 신호 알림은 필수
"더 좋은 곳"을 찾기보다 내 전략이 무엇에 민감한지를 먼저 정하면 답이 금방 나옵니다. 하루 한 번 리밸런싱하는 봇에 저지연 서버를 붙이는 건 낭비고, 밤새 포지션을 안고 자는 봇을 집 PC에 두는 건 도박입니다.
댓글
댓글 쓰기