dev 와 prod 를 위한 dynamoDB Table 을 만들고
메인 트레이드 서버인 EC2 를 띄운 후 EC2 에서 dynamoDB 테이블 항목을 읽어오는 작업을 할 예정
DynamoDB
테스트용 항목과 실제 사용할 항목으로 2개 만들어줬다
RCU/WCU 는 각각 1개씩으로 프로비저닝 해 줬다.
EC2
ec2 instance
t3a.micro 유형으로 생성해줬다.
보안그룹도 따로 생성해줬고
dynamoDB table 참조를 위한 역할은 추후 생성해줄 예정이다.
ubuntu 22.04 LTS 를 이미지로 사용했다
EIP 는 할당하지 않았다 - 서버 안끌 예정
인스턴스 시작 후 아래 명령을 통해 필요한 종속성을 설치하고 시간을 한국 시간으로 바꿔줬다
sudo apt update && sudo apt-get update
sudo ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime
sudo apt install python3-pip -y
pip3 install pyupbit
EC2 에서 DynamoDB 항목 불러오기
메인으로 동작할 python 스크립트에서 boto3 를 이용해 dynamoDB 의 속성을 변수에 담아볼 예정
boto3, aws-cli 설치
pip3 install boto3
sudo apt install awscli
이후 aws configure 설정
역할 연결
dynamoDB Read Only Access 정책을 연결해줫다
테스트
dynamoDB table
test.py
import boto3
global best_k, predicted_end_price
def read_dynamoDB_table() :
global best_k, predicted_end_price
dynamodb = boto3.resource('dynamodb')
table = dynamodb.Table('table-for-Ethereum-Autotrade')
response = table.get_item(
Key={
'Env': 'Dev'
}
)
item = response['Item']
best_k = item['k-value']
predicted_end_price = item['endprice']
read_dynamoDB_table()
print(best_k)
print(predicted_end_price)
결과
ubuntu@ip-172-31-41-145:~$ python3 ethereum_autotrade.py
0.2
2385718.230331
잘 불러와졌다
EC2 에서 SSM parameter Store 의 파라미터 불러오기
SSM에 저장된 파라미터를 가져와서 변수에 담아 활용할 예정이다.
upbit access key 와 secret key 를 미리 저장해놨다
EC2 역할에 정책 연결
테스트
test.py
import pyupbit
import boto3
def get_parameter_fromSSM() :
ssm = boto3.client('ssm')
parameters=['/ethereum-autotrade/upbit-key/access-key',
'/ethereum-autotrade/upbit-key/secret-key']
upbit_keys=list()
for i in parameters:
response = ssm.get_parameter(
Name=i,
WithDecryption=True
)
upbit_keys.append(response['Parameter']['Value'])
return upbit_keys[0],upbit_keys[1]
def login(access_key, secret_key) :
# login
try:
upbit = pyupbit.Upbit(access_key, secret_key)
print("upbit login : success")
except :
print("upbit login : failure")
upbit_access_key, upbit_secret_key = get_parameter_fromSSM()
login(upbit_access_key, upbit_secret_key)
결과
ubuntu@ip-172-31-41-145:~$ python3 ethereum_autotrade.py
upbit login : success
한시간컷 굿
chatGPT 는 신이야!
'1인개발 메이킹로그 > [Infra+k8s+App] 가상화폐 자동매매' 카테고리의 다른 글
[AWS-Server] 4. 람다 코드 수정 - dynamoDB 테이블 수정 (0) | 2023.04.04 |
---|---|
[AWS-Server] 3. 람다함수에 Cloudwatch EventBridge 연결 (0) | 2023.04.02 |
[AWS-Server] 1. 컨테이너 이미지로 람다 함수 띄우기 (0) | 2023.03.31 |
[AWS-Server] 개발 일정 변경 (0) | 2023.03.27 |
[AWS-Server] dev_env-CICD-3-jenkins (0) | 2023.03.23 |