실습을 위한 신규 운영환경 구성
운영환경 구성 = 인프라 프로비저닝 + 어플리케이션 프로비저닝
로드테스트 실습
- 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 명령어로 모든 리소스 스택을 삭제한다.
'리눅스 > Part2. Ch01. 클라우드 기반 컨테이너 운영' 카테고리의 다른 글
| 05. (실습) Amazon ECS에 어플리케이션 배포 (0) | 2022.12.08 |
|---|