공부하기싫어
article thumbnail

    개요

    • CNCF sandbox project인 k3s cluster 로 컨테이너 관리
    • CNCF graduate project인 argoCD 를 사용해 프로젝트 배포 및 간단한 모니터링
    • AWS Pipeline 을 사용해 ci/cd 를 구현
    • 노션을 사용해 프로젝트 문서를 관리하며 여러 프로젝트 문서를 작성함으로써 프로젝트 완성도를 높힘

    0.1 패치노트

    23.10.03 - deploy  ethauto:v.1.1 [현재 포스팅]

     

     

    설계

    노션을 사용해 문서를 관리하여 pdf 로 추출해 블로그에 첨부함

    아키텍처 설계

    Architecture Diagram

     

    자료흐름도

    1.2.1. CI/CD Pipeline

    1.2.1.1 Cluster Pipeline

    1.2.1.2 Lambda Pipeline

     

    1.2.2. Trading

    1.2.2.1 Trading - General

     

    1.2.2.2 Trading - main function

     

    1.2.2.3 Trading - Lambda

     

    1.2.3. Monitoring, Alert

     

     

    개발환경 설계

    • cluster

     

    • lambda

     

     

    1.4 모니터링 설계

    (첨부 문서 확인)

    - Slack Channel Bot 을 사용해 python 동작 및 람다 함수 결과 수신

    - Slack + AWS ChatBot + AWS SNS 를 통해 요금 알람 설정

     

    설계 문서 PDF 첨부

    [Docs] 아키텍처 설계.pdf
    0.79MB
    [Docs] 자료 흐름도.pdf
    0.34MB
    [Docs] 개발환경 설계.pdf
    0.25MB
    [Docs] 모니터링, 로깅, 알람 설계.pdf
    0.31MB

     

    구축

    - 일부 아키텍처 Cloudformation 사용해 구축

    - Cloudformation 제외 개발환경 등 AWS 콘솔을 통해 수동 구축

    [Docs] 구축.pdf
    2.58MB

     

    https://github.com/cyaninn-entj/github-pyupbit-autotrade-with-aws-v2

     

    GitHub - cyaninn-entj/github-pyupbit-autotrade-with-aws-v2

    Contribute to cyaninn-entj/github-pyupbit-autotrade-with-aws-v2 development by creating an account on GitHub.

    github.com

     

    관리/유지/보수

    - 관리대상 개요

    - 특이사항 기록

    - 로컬 리포지토리 관리

    - 프로젝트 버전 관리

    [Docs] 관리 유지 보수.pdf
    0.41MB

     

    후기

    프로젝트 후기

     꽤 오랫동안 진행했던 개인 프로젝트였다. 23년 4월에 처음 취직해서 DevOps 업무를 공부할때 새로 배웠던 CNCF 프로젝트들을 활용해볼 수 있으면 좋을것 같다는 생각에 설계했던 프로젝트였는데 5월부터 시작해서 10월까지 6개월정도 걸린 것 같다.

     k8s 를 공부해보고자 경량 배포판인 k3s 를 써보고싶었고 여기에 다른 오픈소스 프로젝트들을 넣어보려고했는데 결국 경량이기 때문에 프로메테우스나 하버등을 적용하지 못해서 아쉬웠다. 나중에 내 개인 서버를 사면 구축해보면 재밌을것 같다.

     

     이 프로젝트를 돌리면서 시간상 타협한게 많았다. 로컬 노트북을 빌드 서버로 사용하려다가 실패해서 cicd pipeline 을 aws 서비스를 사용하는것으로 바꿨고, 트레이드할 코인을 변경하기 위한 콘솔을 띄우는 pod 와 api gateway 를 구축해보려고도 했는데 그러면 이 프로젝트를 올해 안에 못끝낼것 같아서 v.1 으로 우선 배포했다.

     

     개인적으로 자동화 수익에 대한 욕심이 있고 또 오픈소스 공부도할 겸 시작한 프로젝트인데 light 하게 진행해보려고 한 프로젝트에 꽤나 애를 먹었어서 실력이 많이 부족하다고 느꼈었던 6개월이였다.

     

     v.2 를 언젠가 낼텐데, 구현해보고싶은 기능들은 

    1. 현재 이더리움만 추적하고있는 코드를 재사용해 10개의 다른 코인을 동시에 추적하도록 하기

    2. 프로메테우스+그라파나 모니터링 구축하기

    3. 현재 변동성 돌파 전략 외 다른 트레이딩 전략 구현하기

    4. python 코드 정리하기

    5. 현재 3개인 aws pipeline 하나로 합치고 buildspec.yaml 연구하기

    정도가 있겠다. 제일 하고싶은게 코드 정리인데 지금 너무 어질어질하게 main 함수에 쭉 늘여놔서 부분부분을 모듈화 시키는 작업을 진행해볼까 한다.

     

     다음 프로젝트는 chatGPT 와 WordPress 를 사용한 블로그 포스팅 자동화를 진행해보려고 한다. 역시 자동화 수익을 실현하기 위해서 컨텐츠를 자동으로 생산해주는 프롬프트를 연구하고 chatGPT API 와 연결해서 도메인을 구매한 WordPress 블로그에 포스팅시키는 프로젝트를 구상중이다.

     

    트레이딩 결과

    구분 1일 업비트 원화 보유 말일 업비트 원화 보유 손익(원) 손익(%)
    23년 10월 500,000 517,711 +17,711 +3.5%
    23년 11월 550,000 616,221 +66,221 +12.0%
    23년 12월 1,100,000 1,084,010 -15,990 -1.45%
    24년 1월 1,750,000