AlgoLab Blog · 완전 가이드 · 2026 최신

자동매매 봇 24시간 무중단 운영 완전 가이드 — VPS·systemd·Docker·모니터링

운영 2026-06-14 · 약 20분 읽기 · 알고랩 AlgoLab
한 줄 정리 봇을 다 만들어도 "24시간 안 멈추게 돌리는 것"은 또 다른 영역입니다. 이 글은 노트북에서 VPS로 옮기는 모든 것을 다룹니다 — VPS 선택(Vultr·AWS·Oracle Free) → 서버 세팅 → systemd 자동 재시작 → Docker → 텔레그램 헬스체크 → 로그 관리 → 장애 대응. 봇이 죽어도 자동으로 살아나고, 죽으면 즉시 알림 오는 시스템을 만드는 것이 목표입니다.

자동매매 봇을 만든 분들이 가장 자주 겪는 사고는 "봇이 만든 줄 알았는데 새벽에 멈춰 있었다"입니다. 노트북은 절전으로 잠들고, 윈도우는 업데이트로 재부팅하고, 집 인터넷은 가끔 끊깁니다. 그 사이 손절 신호가 떴는데 봇이 멈춰 있으면 손실이 그대로 커집니다.

이 글은 알고랩이 봇 제작 후 운영 단계에서 가장 많이 안내하는 무중단 운영 셋업을 그대로 정리했습니다. 파이썬 입문·거래소별 30분 가이드로 봇을 만든 다음, 이 글로 운영 단계를 완성하면 됩니다. 리눅스를 처음 만지는 분도 따라할 수 있게 명령어 단위로 적었습니다.

이 글의 8부 구성

  1. Part 1 — 왜 노트북은 안 되는가
  2. Part 2 — VPS 선택 (Vultr·AWS Lightsail·Oracle Free 비교)
  3. Part 3 — 서버 초기 세팅 (접속·파이썬·보안)
  4. Part 4 — systemd로 자동 재시작 (핵심)
  5. Part 5 — Docker로 운영 (선택)
  6. Part 6 — 텔레그램 헬스체크 + 알림
  7. Part 7 — 로그 관리 + 장애 대응
  8. Part 8 — 16단계 체크리스트 + 키움 예외

Part 1 — 왜 노트북은 안 되는가

"잠깐 켜두면 되지"가 첫 실수. 봇 운영의 적은 전략이 아니라 다운타임입니다.

노트북·집 PC가 봇을 멈추는 7가지

⚠️ 실제 사고 패턴: 코인 봇을 노트북에서 돌리다 새벽 3시 윈도우 업데이트로 재부팅 → 봇 정지 → 보유 포지션의 손절 신호 미실행 → 아침에 보니 -25%. 봇이 잘못한 게 아니라 봇이 멈춰 있었던 게 문제입니다. VPS 월 5천원이 이 손실을 막습니다.

VPS가 필요한 경우 vs PC도 괜찮은 경우

상황권장
코인 (24시간 시장)VPS 필수
주식 분봉·실시간 전략VPS 필수
주식 일봉 (하루 1회 실행)PC도 가능 (단 안정성 ↓)
DCA·적립식 (주 1회)PC·클라우드 함수 모두 OK

Part 2 — VPS 선택

Vultr · AWS Lightsail · Oracle Free — 본인 상황에 맞는 한 곳.

서비스월 비용장점단점
Oracle Cloud Free영구 무료비용 0, 사양 괜찮음(ARM)가입·인증 까다로움, 간혹 회수
Vultr약 5~10$간편, 도쿄 리전, 안정무료 아님
AWS Lightsail약 5$~AWS 생태계, 안정초기 설정 다소 복잡
네이버·카페24 (국내)약 1~3만원한국 결제·지원상대적 고가
Windows Server VPS1~3만원+키움 OpenAPI+ 가능비쌈

리전(서버 위치) 선택

✅ 입문자 추천: 처음이면 Vultr 도쿄 5$ 플랜(1 vCPU / 1GB RAM)이 가장 무난합니다. 봇 1~3개는 이 사양으로 충분하고, 세팅이 간단합니다. 비용 0을 원하면 Oracle Free Tier(ARM 인스턴스)도 좋지만 가입 인증이 까다롭습니다.

Part 3 — 서버 초기 세팅

SSH 접속 → 파이썬 환경 → 기본 보안. 리눅스 처음이어도 명령어 그대로 복붙.

1. SSH 접속

# Windows는 PowerShell, Mac은 터미널에서
ssh root@서버IP
# 예: ssh [email protected]

2. 파이썬 + 기본 도구 설치 (Ubuntu 기준)

apt update && apt upgrade -y
apt install -y python3 python3-pip python3-venv git
python3 --version   # 3.10+ 확인

3. 봇 코드 올리기

# 방법 A: git (권장)
git clone https://github.com/본인/봇저장소.git
cd 봇저장소
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt

# 방법 B: scp로 직접 전송 (로컬에서)
# scp -r ./bot root@서버IP:/home/bot

4. 기본 보안 (필수)

# 일반 사용자 생성
adduser algolab
usermod -aG sudo algolab

# 방화벽
ufw allow 22
ufw enable

⚠️ API 키는 .env로: 봇의 거래소 API 키는 .env 파일에 두고 .gitignore에 추가하세요. git에 키를 올리면 깃허브 노출 즉시 자산이 위험합니다. 보안 전반은 → 바이낸스 API 발급 완벽 가이드 참고.

Part 4 — systemd로 자동 재시작 (핵심)

봇이 죽어도 10초 안에 자동으로 살아나게. 무중단 운영의 심장.

systemd 서비스 파일 만들기

# /etc/systemd/system/algobot.service
sudo nano /etc/systemd/system/algobot.service
[Unit]
Description=AlgoLab Trading Bot
After=network.target

[Service]
Type=simple
User=algolab
WorkingDirectory=/home/algolab/bot
ExecStart=/home/algolab/bot/venv/bin/python bot.py
Restart=always
RestartSec=10
StandardOutput=append:/home/algolab/bot/bot.log
StandardError=append:/home/algolab/bot/bot.log

[Install]
WantedBy=multi-user.target

등록 + 시작

sudo systemctl daemon-reload
sudo systemctl enable algobot      # 부팅 시 자동 시작
sudo systemctl start algobot       # 지금 시작
sudo systemctl status algobot      # 상태 확인

핵심 옵션 설명

옵션역할
Restart=always봇이 죽으면 무조건 재시작
RestartSec=1010초 후 재시작 (즉시 재시작 폭주 방지)
enable서버 재부팅돼도 봇 자동 시작
After=network.target네트워크 준비된 뒤 시작

✅ 이게 무중단의 90%: Restart=always + enable 두 가지면 (1) 봇이 에러로 죽어도 자동 부활 (2) 서버가 재부팅돼도 자동 시작. 노트북 대비 가장 큰 차이가 이것입니다.

자주 쓰는 명령어

sudo systemctl restart algobot     # 코드 수정 후 재시작
sudo systemctl stop algobot        # 정지
sudo journalctl -u algobot -f      # 실시간 로그 보기
tail -f /home/algolab/bot/bot.log  # 로그 파일 보기

Part 5 — Docker로 운영 (선택)

여러 봇·복잡한 의존성이면 Docker가 깔끔. 입문은 systemd로 충분.

언제 Docker를 쓰나

Dockerfile 예시

FROM python:3.12-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
CMD ["python", "bot.py"]

실행 (자동 재시작 포함)

docker build -t algobot .
docker run -d --name algobot \
  --restart unless-stopped \
  --env-file .env \
  algobot
# --restart unless-stopped = systemd의 Restart=always 와 같은 역할

입문자는 systemd, 멀티 봇·복잡 환경은 Docker — 둘 다 자동 재시작이 핵심입니다.

Part 6 — 텔레그램 헬스체크 + 알림

봇이 자동 재시작돼도 "내가 모르면" 의미 없음. 죽으면 즉시 알림.

봇 자체 알림 (매매·에러)

import requests, os

def send_telegram(msg):
    token = os.getenv("TG_BOT_TOKEN")
    chat = os.getenv("TG_CHAT_ID")
    if token and chat:
        requests.post(
            f"https://api.telegram.org/bot{token}/sendMessage",
            json={"chat_id": chat, "text": msg})

# 봇 코드 곳곳에서
send_telegram("✅ 봇 시작됨")
send_telegram(f"📈 매수 체결 BTCUSDT @ {price}")
send_telegram(f"⚠️ 에러: {e}")

텔레그램 봇 토큰 받기 (3분)

  1. 텔레그램에서 @BotFather 검색 → /newbot → 토큰 발급
  2. 만든 봇과 대화 시작 → 아무 메시지 전송
  3. https://api.telegram.org/bot<토큰>/getUpdates 접속 → chat.id 확인

외부 헬스체크 (cron + 죽으면 알림)

# crontab -e 에 추가: 5분마다 봇 생존 확인
*/5 * * * * systemctl is-active --quiet algobot || \
  curl -s "https://api.telegram.org/bot토큰/sendMessage" \
  -d "chat_id=챗ID&text=🚨 봇이 멈췄습니다!"

VPS 자체 다운 감지 — UptimeRobot

systemd·cron은 VPS가 살아있을 때만 작동합니다. VPS 자체가 다운된 경우는 외부 모니터링이 필요합니다. UptimeRobot 같은 무료 서비스로 봇의 헬스체크 엔드포인트(또는 간단한 핑 서버)를 5분마다 외부에서 확인하면, VPS 다운도 즉시 알림 받습니다.

Part 7 — 로그 관리 + 장애 대응

"왜 멈췄는지" 추적 가능해야 다음을 막습니다.

로그가 디스크를 채우는 문제

봇이 오래 돌면 로그 파일이 수 GB까지 커져 디스크가 꽉 차고 봇이 멈춥니다. logrotate로 자동 정리:

# /etc/logrotate.d/algobot
/home/algolab/bot/bot.log {
    daily
    rotate 14
    compress
    missingok
    notifempty
    copytruncate
}
# 14일치만 보관, 매일 압축

거래 기록은 별도 저장 (세금용)

운영 로그와 별개로, 모든 매매를 JSONL·CSV로 따로 저장해야 합니다. 한국 가상자산 양도세 신고에 필수입니다. 자세히는 → 자동매매 세금·신고 완전 가이드.

장애 대응 5단계

  1. 알림 수신 — 텔레그램으로 "봇 멈춤" 또는 에러
  2. 로그 확인journalctl -u algobot -n 100 또는 bot.log
  3. 원인 분류 — API 오류 / 네트워크 / 코드 버그 / 잔고 부족
  4. 임시 조치 — systemd가 이미 재시작했는지 확인, 안 됐으면 수동
  5. 근본 수정 — 같은 장애 재발 방지 코드 추가

💡 가장 흔한 장애 3가지: (1) API 토큰 만료(KIS 24시간) — 자동 갱신 코드로 해결 (2) Rate Limit 초과 — 호출 간격 조정 (3) 거래소 점검 시간 — 점검 시간 회피 로직. 이 3가지가 운영 장애의 대부분입니다.

Part 8 — 16단계 체크리스트 + 키움 예외

무중단 운영 시작 전 마지막 점검.

키움 OpenAPI+ 예외 — 리눅스 VPS 불가

⚠️ 키움 OpenAPI+는 리눅스 VPS에서 안 됩니다. 32bit Windows COM 컴포넌트라 Windows Server VPS(또는 윈도우 가상머신)가 필요하며 비용이 높습니다(월 1~3만원+). 또한 키움은 새벽 버전처리·로그인 자동화 이슈가 있어 무인 운영이 까다롭습니다. 무중단 운영이 중요하면 REST 기반인 KIS API로 옮기는 것을 고려하세요. 자세히는 → 키움 OpenAPI+ 설치·오류 해결 가이드

16단계 체크리스트

VPS 준비 (4)

봇 배포 (4)

무중단 (4)

모니터링 (4)

자주 묻는 질문

Q. 꼭 VPS에서 돌려야 하나요?

코인·분봉 전략이면 사실상 필수. 일봉 하루 1회면 PC도 가능하나 안정성 떨어짐. 월 5천~3만원이 가장 싼 보험.

Q. 어느 VPS?

입문 Vultr 도쿄 5$, 무료 Oracle Free(가입 까다로움), AWS 사용자 Lightsail. 코인은 도쿄·싱가포르, 한국주식은 서울 리전.

Q. 봇이 죽으면 자동 재시작?

systemd Restart=always + enable. Docker는 --restart unless-stopped.

Q. 멈춘 걸 빨리 알려면?

텔레그램 알림 + cron 헬스체크 + UptimeRobot(VPS 다운 감지) 조합.

Q. 키움 봇도 VPS에서?

키움 OpenAPI+는 Windows Server VPS 필요(고가). KIS·코인 거래소는 저렴한 리눅스 VPS로 충분.

Q. VPS 운영도 외주 가능?

가능. 모니터링만 월 5만~15만원, 예외 대응 포함 월 15만~30만원. 1~3개월 위탁 후 인수 권장.

마무리

무중단 운영은 "봇이 죽어도 자동으로 살아나고, 죽으면 즉시 아는 시스템"입니다. 핵심은 단 두 가지 — systemd 자동 재시작 + 텔레그램 헬스체크. 이 둘만 갖춰도 노트북 운영 대비 안정성이 비교할 수 없이 올라갑니다.

봇 제작은 1~3주면 되지만, 안정적 무중단 운영 체계를 갖추는 것은 또 다른 일입니다. 직접 하기 부담스럽다면 알고랩이 봇 제작과 함께 VPS 세팅·무중단 운영·모니터링까지 통합 제공합니다.

봇 제작 + 무중단 운영까지

VPS 세팅, systemd 자동 재시작, 텔레그램 헬스체크, 로그 관리까지 — 알고랩이 봇 제작과 함께 무중단 운영 체계를 통합 구축해드립니다.
24시간 빠른 답변 가능합니다.

무료 상담 시작하기