프로젝트/Python 업비트 자동매매 프로젝트

Google Cloud Platform(GCP)에 Python 자동매매 프로그램 돌리기

jeongseop 2022. 11. 20. 02:41

파이썬으로 개발중인 비트코인 자동매매 프로그램을 개인 pc로 돌리게되면 항상 pc를 켜놓아야 하고

 

서버 점검등으로 프로그램이 종료 되었을 때, 외부에 있을경우 다시 실행시킬 수 없는 여러 문제들이 존재한다.

 

방법은 많지만 호스팅을 제공하는 클라우드 컴퓨팅 서비스를 이용하면 이런 문제들을 해결할 수 있다.

 

구글에서 제공하는 Google Cloud Platform 을 이용해서 서버에 프로그램을 돌려보자

 

 

1. Google Cloud Platform 가입

 

Google Cloud Server를 이용하려면 Google Cloud Platform Consol에 접속을 해야하기 때문에 

Google Cloud Platform 가입을 해야한다. (Gmail 계정 필요)

 

 

Google 클라우드 플랫폼

로그인 Google 클라우드 플랫폼으로 이동

accounts.google.com

 

결제 수단 등록 필요한데 해외 결제가 가능한 카드로 등록을 해야한다. (본인은 무료 등급 사용할거라 결제 될 일 없음)

 

2. Google Cloud Platform 로그인

 

아래 링크에 접속하여 로그인한다.

 

로그인 - Google 계정

이메일 또는 휴대전화

accounts.google.com

 

3. 콘솔로 이동

 

콘솔로 이동하기를 누르면 해당 아래 화면으로 이동한다.

 

 

4. 새 프로젝트 만들기

 

원하는 프로젝트 명을 입력하여 생성한다.

 

 

본인은 업비트 자동매매봇을 돌릴것이기 때문에 아래와 같이 이름을 지었다.

 

 

5. Compute Engine -> VM 인스턴스 만들기

 

VM만들기를 클릭하고 Compute Engine API 사용을 누른다.

 

 

 

 

이름은 귀찮아서 프로젝트 명과 동일하게 지었고

 

리젼, 시리즈, 머신유형은 구글 클라우드 무료 등급에 맞게 선택하였다. 

 

간단한 파이썬 프로그램을 돌릴거라 무료 등급 머신으로도 충분하다.

 

 

구글 클라우드 무료 등급 조건

 

부팅디스크 Ubuntu

버전 최신버전. 

운영체제나 버전은 본인 편한걸로 설정

 

 

방화벽 체크

 

 

 

다 선택하게 되면 월별 예상 가격이 나오는데

 

무료등급으로 세팅하였기 때문에 실제적으로 비용이 청구되진 않는다.

 

무료등급 맞췄으면 예상가격도 0으로 표시되게 해주지

 

왜 이렇게 나오는진 모르겠는데 실제로 테스트 해본결과 비용이 청구되진 않았음.

(* 22년12월기준 300원정도 결제되었네요 다시 확인 예정입니다.)

 

괜히 쫄린다

 

 

생성을 완료하면 리스트에 내가만든 인스턴스가 나온다.

 

 

 

6. 연결

 

위 이미지에서 SSH를 클릭하면 연결이 되고 아래 창이 나타나고

 

리눅스 명령어를 입력할 수 있다.

 

 

파이썬 프로그램을 돌릴거라 머신에 파이썬, pyupbit 모듈을 설치해야하는데

 

요즘 리눅스 버전에는 파이썬이 설치 되어있다고 한다. (나이스)

 

pyupbit만 설치하기 위해 pip를 먼저 설치하자

 

pip 설치 명령어
최고 권한으로 실행
pyupbit 설치 명령어

 

7. 소스 옮기기

 

파일 업로드 버튼을 눌러 프로그램 소스를 선택하여 업로드 한다.

 

ex) 본인이 만든 프로그램 소스 upbit_trading.py

 

ls 명령어로 소스가 업로드 되었는지 확인.

main.py 가 업로드 되었다.

 

폴더를 만들어서 소스를 폴더에 넣어주자 

폴더 만들기 명령어
main.py 를 upbit 폴더로 옮긴다

 

8. 프로그램 실행

프로그램 소스가 존재하는 upbit 폴더로 이동한다.

 

upbit폴더로 이동

 

프로그램 실행 전 우분투 서버 시간을 한국 시간으로 변경해준다. (중요, 한국 거래소와 시간을 맞추기 위해)

 

우분투 서버 시간을 한국 시간으로 변경

 

프로그램을 백그라운드에 실행시킨다 (창을 종료해도 계속해서 돌아가게 하기 위해)

nohup python3 파일이름 &

 

명령어를 입력하면 숫자가 출력 되는데 이것이 프로세스 ID이고 nohup.out이라는 파일에 Log가 출력된다.

 

여기서 엔터를 한번 더 누르면 실행된다.

 

프로세스 명령어를 입력해보면 실제로 프로세스 ID 1932로 python3가 실행중이다.

 

10. 기타

 

프로세스 종료시키는법 : kill -9 (프로세스id)

 

프로세스 id 가 기억나지 않으면 ps 명령어로 확인.

 

단 재접속 했을 때는 다른 세션으로 접속을해서 프로세스가 안보인다.

 

그때는 ps -A (모든 프로세스 목록 출력) 명령어로 python3 로 실행중인 프로세스 id를 찾아서 종료하면 된다.