본문 바로가기
리눅스/Part2. Ch01. 클라우드 기반 컨테이너 운영

06. (실습) 로드 테스트 및 CloudWatch기반 모니터링

by Engineer-Lee 2022. 12. 8.
반응형

실습을 위한 신규 운영환경 구성

운영환경 구성 = 인프라 프로비저닝 + 어플리케이션 프로비저닝

 

로드테스트 실습
- AWS Copilot CLI 기반으로 간단하게 Prod 환경 구성 및 배포

 

1. container insights 활성화 포함

```
copilot env init --name prod --profile default --container-insights
```

 


2. 티어별 서비스 배포

```
copilot svc deploy --app poll-app --env prod --name poll-db
copilot svc deploy --app poll-app --env prod --name poll-backend
copilot svc deploy --app poll-app --env prod --name poll-frontend
```


3. ab툴 사용을 위한 패키지 설치

```
sudo apt install apache2-utils
```

 

로드테스트 실습
- 부하 발생 도구 : 간단히 구축 가능한 ApacheBench (AB) 툴 사용
$ ab -n 5000 -c 25 ${ALB_ENDPOINT}/polls/list/ <- DB에서 값을 가져와서 반환하는 경로
-> 전체 5000개 요청 발생, 동시에는 25개의 요청을 생성
* JMeter는 테스트 케이스 작성은 어렵지만 많은 기능 제공 및 SaaS호환
- 모니터링 도구: AWS CloudWatch의 Container Insight
* AWS는 지금 순간에도 발전 중 à CloudWatch는 계속 개선되고 있음. 머신러닝 기반한 Insight관련한 지표들도 포함.

 


4. 로드테스트 요청이 데이터베이스를 접근하도록 백엔드 코드 수정 

- main 브랜치를 사용하는분의 경우 다음 코드를 주석 처리
- polls/views.py
```
#@login_required()
def polls_list(request):
```


5. ab 테스트 실행
```
ab -n 5000 -c 25 http://{ELB_URL}/polls/list
```


6. AWS CloudWatch에서 모니터링된 값 확인 

 

 

 

모든 실습이 끝나면 copilot app delete 명령어로 모든 리소스 스택을 삭제한다.

반응형