재테크 A2Z

2025.05.25 X220 자동매매 서버환경 구축가이드 본문

코딩 & 파이썬

2025.05.25 X220 자동매매 서버환경 구축가이드

a2ztec 2025. 5. 25. 13:01

🧠 전체 구성 개요

  • OS: Ubuntu Server 22.04 LTS (GUI 없이 가볍게)
  • Python 환경: Python 3.10 + venv 또는 poetry
  • 자동매매 툴: ccxt, pyupbit, pandas, schedule
  • 알림: python-telegram-bot으로 텔레그램 연동
  • 자동 실행: systemd or tmux or supervisor
  • 백업 및 관리: 외장 SSD or GitHub + rsync
  • 보안: SSH 비밀번호 로그인 금지 + 포트 변경

🛠️ 1. OS 설치 및 초기 설정

Ubuntu Server 설치

  1. Ubuntu Server 22.04 LTS ISO 다운로드
  2. 부팅 USB 제작 (Rufus 등 활용)
  3. 설치 옵션: Minimal install, OpenSSH 설치
sudo apt update && sudo apt upgrade -y
sudo apt install htop git unzip curl build-essential -y

🧪 2. Python 개발 환경

sudo apt install python3-venv python3-pip -y
python3 -m venv autobot-env
source autobot-env/bin/activate
pip install --upgrade pip
pip install ccxt pyupbit pandas python-telegram-bot schedule matplotlib

🤖 3. 자동매매 봇 예시 구조

autobot/
├── config/
│   └── secrets.yaml
├── strategies/
│   └── rsi_strategy.py
├── core/
│   ├── trader.py
│   ├── notifier.py
│   └── scheduler.py
├── logs/
├── run.py
└── requirements.txt

🚀 4. 자동 실행 설정

방법 1: systemd

[Unit]
Description=Auto Trading Bot
After=network.target

[Service]
User=ubuntu
WorkingDirectory=/home/ubuntu/autobot
ExecStart=/home/ubuntu/autobot-env/bin/python /home/ubuntu/autobot/run.py
Restart=always

[Install]
WantedBy=multi-user.target

방법 2: tmux

tmux new -s autobot
source autobot-env/bin/activate
python run.py
# Ctrl+B D 로 백그라운드 실행

방법 3: supervisor

[program:autobot]
command=/home/ubuntu/autobot-env/bin/python /home/ubuntu/autobot/run.py
directory=/home/ubuntu/autobot
autostart=true
autorestart=true
stderr_logfile=/var/log/autobot.err.log
stdout_logfile=/var/log/autobot.out.log

🔒 5. 보안 설정

sudo ufw allow OpenSSH
sudo ufw enable
sudo nano /etc/ssh/sshd_config
# Port 변경 및 PasswordAuthentication no 설정
sudo systemctl restart ssh

💾 6. 백업 및 Git 연동

  • GitHub에 전략 저장
  • .env 또는 secrets.yaml에 민감 정보 분리
  • 외장 SSD로 백업 구성
  • rsync로 자동 백업 스크립트 작성 가능

✅ 결론

  • 자동매매 전략 실행: 충분히 가능
  • API 호출 + 텔레그램 알림: 문제 없음
  • 실시간 WebSocket 처리: 무거운 전략에는 한계 있음
  • 24시간 서버: 팬 및 써멀 관리 잘하면 안정적 운영 가능