한 1년전에 조코딩 유튜브에서 가상화폐 자동매매 스크립트를 보고 따라 만들어서
t2.micro 하나로 돌렸을때
첫 3개월 - 80%, 다음 3개월 50%의 이익을 남겼었다.
이후 시장이 안좋아지고 나선 3%이익에 그쳣지만 그 하락장 속에서도 결과적으론 이득이였다.
여기에 AI 종가 예측 스크립트를 더해서 최대한 serverless 로 구현하고 IaC 로 관리해보고자 한다.
1. 기본 설계
사용될 AWS 워크로드는
ec2 instance , lambda 2개, dynamoDB 테이블, cloudwatch alarm 이다.
vpc 는 기본 vpc 를 사용할 예정이다.
그리고 위 리소스 들을 cloudformation 으로 관리할껀데 코드가 많이 변하진 않을거라 ci/cd 는 적용하지 않기로 했다.
DB 액세스나 lambda 함수의 ec2 접근은 람다함수의 vpc 접근으로 해결할 생각이다.
워크플로우는
1. 서버에서 스크립트가 실행되면 dynamoDB 에 입력된 K_value 와 prediced_closing_price 를 매개변수로 사용하는 자동매매 함수가 실행된다.
2. prediced_closing_price 는 매시간 람다함수에서 실행되고 dynamoDB 테이블을 업데이트 한다.
3. 자동매매 함수는 변동성 돌파 기준값인 k 이상이고, 예상 종가가 매수가보다 높을때 매수를 진행하고 오전 8시55분에 판매한다.
4. 8시57분에 서버에서 동작하는 함수는 자동 종료되고, K value lambda 함수가 8시58분에 동작해 새로운 k 값을 구해 db에 업데이트 한다. 그리고 서버의 쉘스크립트를 실행시킨다.
5. lambda 에 의해 실행된 쉘스크립트는 dynamoDB 의 k 값과 예상종가 값을 매개변수로 사용하는 자동매매함수를 실행시킨다.
위 플로우의 반복이 될것이다.
슬랙은 각 람다함수의 실행 결과를 모니터링 하는데 사용할 것이다.
AIscript 함수는 매시간, k value 는 매일 한번씩 메세지를 수신할 예정
upbit access key 는 SSM Parameter Store 에 저장해서 호출해올 예정이다.
람다와 ec2 스크립트에 x-ray sdk 를 추가해서 전체 시스템을 추적 및 모니터링 할 예정이다.
2. 예상 요금
lambda function
매 시간 실행될 ai 활용 종가 예측 함수는 약 1분간 실행된다고 가정하고 4기가 메모리를 할당해줬을 때
프리티어 제외 월 0.03 달러라고 한다
당일 k 값을 구해서 db에 업데이트하고, ec2 instance 의 쉘스크립트를 실행시키는 역할을 할 함수는
하루에 한번 실행되고 실행 시간을 30초로 잡았을때 요금이 발생하지 않는다고 한다.
cloudformation
클라우드포메이션 자체는 무료라고 한다
dynamoDB
dynamoDB 는 k 값과 예상 종가 정도를 저장해서 매개변수용으로 사용할것이기 때문에 월 0.63 달러밖에 들지 않는다고 한다.
aws 강의에서 dynamoDB 배운김에 이렇게 한번 써먹어보고싶었다.
EC2 Instance
예전에 t3a 로 예약 인스턴스를 구매해놨기 때문에 9월15일까지 월 2.15 달러면 충분하다
cloudwatch
lambda 함수에 각각 cloudwatch alarm 을 설정해줄것이기 때문에 2개면 월 1달러 라고 한다
3. 비교
그러면 월마다 드는 돈은 총
람다($0.03) + dynamoDB($0.63) + EC2($2.45) + cloudwatch($1)
= $4.11 (약 5,400원)
이다.
한달에 5천원 이상 이익이 나야만 하겠다.
기존 조코딩 영상대로 4gb 메모리를 위한 인스턴스를 사용했을때 한달 사용 요금은
사용량을 각각 50, 100 정도로 잡았을때 각각
$17.08 (22,239원) , $34.16 (44,478원) 이다.
서버리스로 동작하는게 훨씬 싸다
'1인개발 메이킹로그 > [Infra+k8s+App] 가상화폐 자동매매' 카테고리의 다른 글
[AWS-Server] dev_env-CICD-3-jenkins (0) | 2023.03.23 |
---|---|
[AWS-Server] dev_env-CICD-2-demo_cdk_app_stack.py with chatGPT (0) | 2023.03.19 |
[AWS-Server] dev_env-CICD-1-CDK container setting (0) | 2023.03.02 |
[AWS-Server]Ethereum-auto-trade 개발 환경 CI/CD 설계 (0) | 2023.03.02 |
python 가상화폐 자동매매 docker container 밑그림 (0) | 2023.02.13 |