4.10.2. 개발된 자동매매 시스템 코드 배포하기

개발된 자동매매 시스템 코드를 OCI 인스턴스에 배포하는 방법을 안내합니다. 이 튜토리얼은 단계별 실습을 제공합니다. 구체적인 단계와 예시를 포함하여 설명합니다. 로컬 환경에서 개발된 코드를 클라우드 서버로 옮기는 과정입니다. 코드 복사, 환경 설정, 의존성 설치 등을 다룹니다.

이 섹션은 자동매매 시스템 운영의 중요한 단계입니다. 코드를 클라우드 서버에 안전하게 배포하는 방법을 제시합니다. 코드 배포 후, 시스템이 정상적으로 작동하는지 확인하는 과정도 포함합니다.

단계 1: OCI 인스턴스 접속 확인

4.10.1 섹션에서 생성한 OCI Compute 인스턴스에 접속되었는지 확인합니다. PuTTY 또는 다른 SSH 클라이언트를 사용합니다. 인스턴스의 공용 IP 주소와 SSH 키를 사용합니다.

단계 2: Git 설치 및 설정

OCI 인스턴스에 Git이 설치되어 있는지 확인합니다. 설치되어 있지 않다면 다음 명령어를 사용하여 설치합니다.

sudo apt update
sudo apt install git

Git 설치 후, 사용자 이름과 이메일 주소를 설정합니다.

git config --global user.name "Your Name"
git config --global user.email "your_email@example.com"

단계 3: Git 저장소에서 코드 복제

자동매매 시스템 코드가 저장된 Git 저장소의 URL을 확인합니다. 다음 명령어를 사용하여 코드를 OCI 인스턴스에 복제합니다.

git clone <저장소_URL>

예를 들어, 저장소 URL이 https://github.com/your_username/autotrade.git라면 다음과 같이 입력합니다.

git clone https://github.com/your_username/autotrade.git

단계 4: 필요한 파이썬 라이브러리 설치

자동매매 시스템 실행에 필요한 파이썬 라이브러리를 설치합니다. requirements.txt 파일이 있다면 다음 명령어를 사용합니다.

cd autotrade  # 코드 복제된 디렉토리로 이동
pip install -r requirements.txt

requirements.txt 파일이 없다면 필요한 라이브러리를 직접 설치합니다. 예를 들어, pyupbit, ccxt, pandas를 설치하려면 다음과 같이 입력합니다.

pip install pyupbit ccxt pandas

단계 5: 환경 변수 설정

API 키, 데이터베이스 연결 정보 등 민감한 정보는 환경 변수로 설정합니다. OCI 인스턴스에서 환경 변수를 설정하는 방법은 여러 가지가 있습니다. .bashrc 파일에 추가하거나, export 명령어를 사용할 수 있습니다.

.bashrc 파일에 환경 변수를 추가하는 방법은 다음과 같습니다.

vi ~/.bashrc

파일 하단에 다음 내용을 추가합니다.

export UPBIT_ACCESS_KEY="YOUR_UPBIT_ACCESS_KEY"
export UPBIT_SECRET_KEY="YOUR_UPBIT_SECRET_KEY"
export DATABASE_URL="YOUR_DATABASE_URL"

파일을 저장하고 닫은 후, 다음 명령어를 실행하여 변경 사항을 적용합니다.

source ~/.bashrc

단계 6: 코드 실행 및 테스트

자동매매 시스템의 메인 스크립트를 실행하여 코드가 정상적으로 작동하는지 확인합니다.

python main.py

시스템이 정상적으로 실행되는지, 오류 메시지가 출력되지 않는지 확인합니다. 필요한 경우, 코드와 설정을 수정합니다.

단계 7: 백그라운드 실행 설정 (nohup)

자동매매 시스템을 백그라운드에서 실행하도록 설정합니다. SSH 연결이 끊어져도 시스템이 계속 작동하도록 합니다. nohup 명령어를 사용합니다.

nohup python main.py &

nohup 명령어는 표준 출력을 nohup.out 파일에 저장합니다. 백그라운드 프로세스의 ID를 확인하려면 jobs 명령어를 사용합니다.

단계 8: 시스템 로그 확인

자동매매 시스템의 로그 파일을 주기적으로 확인합니다. 시스템 상태를 모니터링하고 오류를 진단합니다. 로그 파일은 코드 내에서 설정한 경로에 저장됩니다. tail -f <로그_파일_경로> 명령어를 사용하여 실시간으로 로그를 확인할 수 있습니다.

단계 9: 자동 재시작 설정 (systemd)

시스템이 재부팅될 때 자동으로 자동매매 시스템이 실행되도록 설정합니다. systemd를 사용합니다. /etc/systemd/system/ 디렉토리에 서비스 파일을 생성합니다.

sudo vi /etc/systemd/system/autotrade.service

다음 내용을 서비스 파일에 추가합니다.

[Unit]
Description=Autotrade System
After=network.target

[Service]
User=ubuntu  # 사용자 이름
WorkingDirectory=/home/ubuntu/autotrade  # 코드 디렉토리
ExecStart=/usr/bin/python /home/ubuntu/autotrade/main.py  # 실행 명령어
Restart=on-failure

[Install]
WantedBy=multi-user.target

파일을 저장하고 닫은 후, 다음 명령어를 실행합니다.

sudo systemctl daemon-reload
sudo systemctl enable autotrade.service
sudo systemctl start autotrade.service

자동 재시작 설정이 완료되었습니다. 시스템 재부팅 후, 자동매매 시스템이 자동으로 실행됩니다.

단계 10: 보안 강화

OCI 인스턴스의 보안을 강화합니다. 불필요한 포트를 닫고, 방화벽 설정을 강화합니다. 정기적으로 시스템을 업데이트합니다.

이 단계를 완료하면 자동매매 시스템 코드가 OCI 인스턴스에 성공적으로 배포됩니다. 다음 섹션에서는 시스템 안정성 확보 및 지속적인 모니터링 방법을 알아봅니다.

위로 스크롤