공부하기싫어
article thumbnail
[Prototype-v1] 레거시 POD 배포

목차 Prototype-v.1 : 레거시 POD 배포 - 인스턴스에서 proccess 로 동작하던 앱을 container 에서 동작하도록 pod 구성 - AWS credential 은 Dockerfile 에서 환경변수로 구성하여 사용함 -> 추후 따로 분리해야함 - image 는 docker hub 의 private repository push/pull 하여 사용 - container 의 requirements.txt 명세와 pod의 평균 리소스 사용량 파악 목표 - k8s cronjob 반영 1. Image 생성 base image : python:3.10 container image$ tree . ├── apps │ ├── aws_defs.py │ ├── log_defs.py │ ├── __main_..

[테스트] image 생성 및 pod 생성

목차 테스트 목적 python 으로 동작하는 image build requirements.txt 파일 사용 aws cli 동작 테스트 생성한 image를 사용한 pod 생성 yaml 파일 사용해 apply 로 생성 aws access-key / secret-key를 k8s secret 으로 저장 후 container 환경변수로 사용 aws cli credentail 을 kubectl secret 으로 생성해놓고 pod 를 정의하는 manifest 파일에서 컨테이너에서 환경변수로 사용할 수 있게 정의후 python boto3 패키지에서 사용할 수 있을지 테스트 1. 테스트 준비 1.1 docker image python 이미지 사용 while 문을 사용해 일정시간마다 현재 시간을 기록하고 5분후 종료되는 ..

article thumbnail
[AWS-Server] Troubleshooting - ModuleNotFoundError: No module named 'pyupbit'

한 일주일 전부터 로그 파일이 비어있는 상황 발생 직접 서버에 들어가서 파일을 실행해봤을때 ~/CICDpipeline-Pord-Autotrade-EC2-TradeServer$ sudo python3 ethereum_autotrade.py Traceback (most recent call last): File "/home/ubuntu/CICDpipeline-Pord-Autotrade-EC2-TradeServer/ethereum_autotrade.py", line 1, in import pyupbit ModuleNotFoundError: No module named 'pyupbit' 라고 나오는 현상 확인 - apt, apt-get 업데이트 후 실행 시 동일 문구 반환 - pyupbit 모듈 삭제 후 재실치..

article thumbnail
[AWS-Server] CICD Pipeline

코드 수정이 많이 없을줄 알았는데 하다보니 계속 건드리게 되서 pipeline 을 만들어보려고 한다. Pipeline - EC2 2023.04.12 1. Jenkins Container -TradeServer - Ansible 새로 젠킨스 컨테이너를 띄우고 ec2 로 동작하는 TradeServer(Prod) 를 Ansible 로 연결해줄꺼다 Jenkins container docker run -itd --name -p 8080:8080 -p 50000:50000 -v /jenkins:/var/jenkins_home -u root jenkins/jenkins:latest 필요한 툴 설치 #ansible apt install python3-pip pip install ansible #docker curl -..

article thumbnail
[AWS-Server] 6. S3 bucket 에 프로세스 로그 저장

ethereum_autotrade.py 를 nohup 으로 실행할때 발생하는 로그들을 flush 모듈을 사용해 바로바로 output.log 에 기록하고 그날 프로그램이 종료할때 s3 버킷에 저장하도록 해보자 S3 버킷 생성 ACL 비활성화 모든 퍼블릭 액세스 차단 버전 관리 비활성화 테스트 import os import boto3 def send_logs_to_s3(): bucket_name="logs-ethereum-autotrade" session = boto3.Session(profile_name='default') s3=session.client('s3') f=open("test.log", 'rb') s3.upload_fileobj(f, bucket_name, "test.log") send_log..

article thumbnail
[AWS-Server] 5. 람다함수에서 EC2 로 명령 전달

EC2 에서 동작하는 python 코드를 수정 - 만약 보유 이더리움이 있다면 매일 오전 8시 55분에 매각하고 프로그램을 종료하도록 구성 lambda function 을 새로 생성 - dynamoDB 에서 값을 얻어와 매일 오전 9시에 python 스크립트를 백앤드로 동작하도록 하는 shell script 실행 명령을 전달하도록 구성 python 코드 수정 3개의 python 파일로 나눴음 ethereum_autotrade.py import pyupbit import aws_defs as m_aws import upbit_defs as m_upbit def main(): try : upbit_access_key, upbit_secret_key = m_aws.get_parameter_fromSSM() b..