개발된 자동매매 시스템 코드를 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 인스턴스에 성공적으로 배포됩니다. 다음 섹션에서는 시스템 안정성 확보 및 지속적인 모니터링 방법을 알아봅니다.