본문 바로가기

Python

(10)
Python 부하테스트기 - Locust 부하테스트를 위해서 많은 리소스들이 있지만, 가장 쉽게 테스트 해 볼 수 있는건, Locust였습니다. 순차적으로 API를 콜 할 수도 있으며, 랜덤하게 작성한 API를 무작위로 콜할수도 있습니다. 랜덤하게 콜하는 부분에 대해서만 테스트를 해보았습니다. AWS EC2에 설치하는 방법은 아래와 같습니다. sudo yum install -y python3-devel sudo yum install -y libevent-devel sudo yum install -y gcc sudo python3 -m pip install locust 보통은 pip install locust만 하여도 되지만, EC2에는 설치되지 않는게 많아서 다 깔아주셔야 합니다. (안그러면 에러남) 저는 Spring Boot Pod LifeC..
Docker Intro - 4. Base Image에 서비스 올려 구동해보기
Docker Intro - 3. Base Image 만들기
AWS Lambda를 통해 현재 Security Group List를 SES 로 받아보기 앞선 EC2 List 받아보기와 구성은 완전 똑같습니다. 위의 글을 참고해주세요 람다 소스코드만 바꾸면 되는 부분이기 때문에 소스코드와 이에 대한 설명만 하도록 하겠습니다. import os import boto3 import smtplib import datetime import pandas as pd from openpyxl import load_workbook from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart from email.mime.application import MIMEApplication from openpyxl.styles import Font, Alignment, Border, Side..
AWS Lambda를 통해 현재 EC2 List를 SES로 받아보기 회사에서 운영을 하다보면, 늘 문서충이 되어야합니다. EC2 서버에 대한 IP, 환경, 이름, Type까지는 기본적으로 항상 조사가 되어야하는 항목들입니다. 이것을 매번하는건 좋지 않을 듯 하여 만들어봤습니다. 먼저 SES SMTP 생성 및 인증을 해야합니다. 저는 버지니아리전에서 생성했습니다. Create My SMTP Credentials를 한 후 기억해주세요 이제 Email Addresses에서 자신의 이메일을 등록해줍니다. 혹은 메일을 받아야 하는 분들을 등록해 주고, 링크가 가면 인증을 해달라고 말씀해주세요. 아까 만든 Credentials를 코드에 그냥 넣어서 좋을것은 없겠죠? AWS Systems Manager 서비스에서 Parameter Store에 등록해주겠습니다. 이름에는 키 ID, 값..
AWS Lambda를 통해 EC2 백업 자동화 구성하기 이전 글과 동일한 방법으로 구성합니다. 조금 더 상세한 설명은 위의 글을 참고해주세요 Cloudwatch Event + Lambda이기 때문에 알맞은 Role과 백업을 하고자 하는 시간대로 CloudWatch Event를 구성하겠습니다. 저는 아래와 같이 구성하였습니다. 람다 소스코드는 아래와 같습니다. 이번에는 환경 태그값에 따라서 백업을 하는 형태로 구성해봤습니다. import boto3 import datetime def backup_instances(client): response = client.describe_instances() ec2_list = response['Reservations'] # 인스턴스 정보들 for ec2 in ec2_list: ec2_info = ec2['Instance..
AWS Lambda를 통해 EC2 서버 스케줄링 구성하기 AWS Lambda를 통해서 서버스케줄링을 해보도록 하겠습니다. Cloudwatch Event를 통해 Lambda를 Cron으로 수행하여서 서버를 키고 끄는 형태입니다. 먼저 Lambda가 EC2를 크고 끄는 작업을 수행해야하므로, 해당 권한을 가진 Role을 구성해주겠습니다. 정책에서 아래와 같이 만들어주겠습니다. { "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "ec2:DescribeInstances", "ec2:StartInstances", "ec2:StopInstances" ], "Resource": "*" } ] } 그리고 Role에서 서비스를 람다로 고른 후 아래 정..
Docker Intro - Docker CLI 정리 먼저, Amazon Linux2 기반 Docker Install Script sudo amazon-linux-extras install -y epel sudo yum install -y python3 sudo python3 -m pip install --upgrade pip sudo amazon-linux-extras install -y docker sudo service docker start sudo usermod -aG docker $USER docker info - 컨테이너 포트 확인 docker inspect -f '{{.State.Pid}}’ 컨테이너 ID sudo nsenter -t 위의 값 -n netstat -ntl - File Copy sudo docker cp 컨테이너이름:경로 호스트..