본문 바로가기

⭐ AWS/EC2

부하를 통한 EC2 인스턴스 상태변화 감지

728x90
반응형

# EC2 인스턴스 에서 php를 설치하여 부하를 가중시키는 코드 생성

# Jmeter를 활용하여 부하 발생기 실행

- sudo apt-get install php 를 입력하여 php를 설치

sudo apt-get install php

- cd /var/www/html 로 이동하고, vim index.php 라는 php파일을 생성한다.

- 참고로 cd /var/www/html은 아파치 웹서버의 기본 경로이다.

- 부하 생성 코드

<?php
for($i=0; $i<10000000; $i++){

}
?>

- 위 코드를 입력하고 저장한다. 위코드는 어떤 명령을 실행할때 0부터 1천만번까지 반복하는 코드인데 자원을 고의로 자원을 소모하기 위한 코드이다.

- 코드를 생성 후 생성한 코드를 기반으로 Jmeter에서 부하 테스트를 수행 후 EC2 인스턴스의 CPU의 상태 변화를 감지해 보자.

- 아래와 같이 Jmeter를 세팅하자.

- Http Request 세팅도 아래와 같이 설정한다.

- 부하 테스트를 실행 후 Jmeter의 상태를 보자, 매우 불안정한 상태를 보이고 있다.

- 부하 테스트를 실행 후 CloudWatch 상태 변화를 감지해 보자.
- CPU 사용률이 99~100에 가깝게 사용하고 있는 모습이다.

# 테스트 결과

- Summary Report

- Transactions per Second

- Response Times Over Time

- Active Threads Over Time

- View Results Tree

# 결론

index.php에 이미 부하 코드가 심어져 있어서 1명의 유저가 접근하면 1천만번의 루프를 도는 로직이 구현 되어 있었다. 헌데 위에서 환경을 1000명의 유저가 100번의 loop count를 하도록 설정 되어 있었으니... 엄청난 부하가 발생했으리라 본다. 

- EC2의 CPU 사용량을 증가시키는 방법은 위에 방법이 제격인듯 싶다.

- 끝 -

728x90
반응형