공부하기싫어

 

 

IaC -> 수동 프로세스

원래 AWS-CDK 를 이용해서 Pipeline 을 jenkins 와 통합해서 만들고 코드로 인프라를 관리하려고 했었다.

그런데 AWS-CDK 를 처음 다뤄보기도 했고, CDK 와 jenkins 를 통한 Ansible 명령이 내 마음대로 잘 실행되지 않았다.

그래서 일단 수동으로 각 리소스들을 띄우고 정상 작동을 확인한 후에 IaC 로 다시 이 리소스들을 옮겨보려고 한다.

 

 

github repository + local directory 정리

github repository 를 원래 3개로 나눠서 사용했었다. (전체, cdk pipeline, trade-server pipeline)

이들을 하나로 통합하고

로컬에서 사용하던 디렉토리들도 일단 pipeline 없이 리소스별로 정리해서 다시 프로젝트를 진행해보려고 한다.

 

 

개발 일정

1. 리소스 생성

리소스를 개별로 생성하되 최대한 단계별로 포스팅해서 개발 과정을 기록하고 이후에 IaC 를 통해 배포자동화가 될 수 있도록 할 예정이다.

 

각 리소스에 Project : Ethereum-autotrade 로 태그를 남겨서 추후 추적할 수 있게 할 예정이다

 

EC2 * 1

Lambda * 2

Cloudwatch EventBridge * 2

DynamoDB table * 1

SSM parameter Store (upbit api key)

 

2. lambda 계층 구성

seoul 리전은 CodeArtifact 를 지원하지 않는다.

그래서 lambda 계층을 사용해서 종속성을 참조하도록 할 예정이다.

 

pyupbit, numpy, prophet

 

 

3. Lambda + dynamoDB test

SSM parameter Store 에 upbit access key 를 추가하고 해당 파라미터를 참고하게 해서 dynamoDB 테이블의 값을 업데이트하도록 테스트할 예정

 

 

4. main trade-server test

dynamoDB 의 속성값을 참조해서 cron 할 수 있도록 테스트해볼 예정

 

 

5. Cloudwatch EventBridge 연결

Cloudwatch EventBridge 시간 기반 이벤트를 람다함수에 연결해서 자동으로 람다 함수가 계속 실행되도록 설정할 예정

 

6. 로그 저장

nohup 으로 실행되는 로그를 S3 버킷에 따로 저장하기

 

7. slack 연동

lambad 함수의 실행 결과, ec2 의 상태(proccess 동작 확인)를 확인할 수 있고,

매매 결과를 확인할 수 있는 slack 채널을 만들고 연동해볼 예정

 

 

8. aws-Xray 추가

전체 리소스의 동작을 모니터링할 수 있는 x-ray 코드를 lambda 와 ec2 의 동작 코드에 추가해서 동작을 확인해볼 예정

 

 

9. 비용 추적

이 프로젝트에서 사용되는 리소스들의 비용을 추적해서 slack 채널에 자동으로 주,월 간 으로 업데이트 하도록 해볼 예정

 

 

10. IaC

완성된 프로젝트를 기반으로 aws 리소스들을 한번에 관리할 수 있는 IaC 도구를 선정하고 (테라폼 혹은 CDK python),

pipeline 을 통한 통합 및 배포 관리

 

 

 

 

이정도가 될 것 같다.

이전에는 jenkins 로 했었다면 다음에는 aws CodePipeline 으로 해볼 예정