본문 바로가기

테스트/EC2 + Apache + Jmeter 부하 테스트

EC2 인스턴스 + Jmeter 부하테스팅 (오토 스케일링)

반응형

# Jmeter를 활용하여 부하테스트를 진행해보자.
- 자동 스케일링이 되게끔 설정
- 일정수준 이상의 부하가 발생 시 스케일 아웃 발생
- 일정수준 이하의 부하가 발생 시 스케일 인 수행

2021.06.10 - [AWS/EC2] - Auto-Scaling 그룹을 생성해 보자.

 

Auto-Scaling 그룹을 생성해 보자.

# 시작 템플릿을 구성 # 오토스케일링 그룹 생성 - 오토스케일링을 수행할 인스턴스를 마우스 우클릭하여 이미지 및 템플릿에서 이미지를 생성한다. - 이미지 생성에 대한 기본적인 정보를 입력

may9noy.tistory.com

1. 생성된 오토스케일링 그룹 확인하기

- 최대 4개까지 자동적으로 생성이 가능한 스케일링 그룹을 생성 하였습니다. 오토 스케일링 발생 조건은 시작 템플릿으로 설정된 인스턴스의 네트워크 패킷이 1000 이상 발생 시 자동으로 스케일 아웃을 시도 합니다.

2. Jmeter를 활용하여 부하를 발생 시키기

- 현재 인스턴스 리스트 확인하기, 현재는 1개의 인스턴스가 실행중에 있습니다. 이 인스턴스는 시작템플릿에 등록된 인스턴스 이며, 해당 인스턴스에 부하를 발생시켜 보도록 하겠습니다.

- 부하 발생시키기, 아래와 같은 값을 설정 합니다.

- 테스트 조건 입력하기

조건1. (1000명의 사용자가 10초동안 50번의 loop 작업을 수행)
Number of Threads (users) : 1000명의 (동시 접속자)
Ramp-up period (seconds) : 10초 (Interval time)
Loop Count : 50번의 (수행 반복 횟수)

- 부하발생작업을 수행하자 아래와 같이 3개의 인스턴스가 자동적으로 생성이 되었다.

- 총 5개의 인스턴스가 생성된 것을 확인 할 수 있다.

- 부하 테스트 결과 : 에러율이 28.29%로 나타난것을 확인 할 수 있다.
> 여기서 확인해 봐야 할 부분이 실행 시간이다. 현재 테스트는 10초동안에 발생한 부하를 기준으로 테스트를 진행 하였고, 스케일 아웃이 발생한 기준도 10초동안 1000이상의 패킷데이터가 들어왔기 때문에 스케일 아웃으 발생한 것이다.
> 그렇다면 10초가 아닌, 넉넉하게 10분을 기준으로 동일한 부하를 준다면 에러율을 0%가 되어야 할것이다. 왜냐하면 스케일 아웃을 통해 생성된 인스턴스가 부하 처리를 나눠서 하기 때문이다. 테스트 해보자. 

- Summary Report

- Active Threads Over Time

- Response Times Over Time

- Transactions per Second

# 조건2. 에러율을 0%로 만들기
(1000명의 사용자가 10분동안 50번의 loop 작업을 수행)

Number of Threads (users) : 1000명의 (동시접속자)
Ramp-up period (seconds) : 10분 (Interval time)
Loop Count : 50번의 수행 (반복 횟수)
Auto-Scale 발생조건 : 네트워크 패킷 인 - 10,000 이상일때
- 시간이 10초에서 10분으로 늘었으므로, 에러율은 0%가 되는게 맞을것이다. 10분안에 인스턴스가 스케일 아웃이 되므로 처음에는 에러율이 일정부분 발생을 하다가 5분이상이 되고 스케일 아웃된 인스턴스들이 부하를 나눠서 처리하는 순간부터는 에러율이 0%로 떨어질 것이라 예상한다.

- 결과
- EC2 인스턴스 : 3개의 인스턴스가 신규로 스케일 아웃되어 생성됨.

- Summary Report : 5만번의 요청을 에러 없이 수행을 한것을 확인 할 수 있다.

- Active Threads Over Time

- Response Times Over Time

- Transactions per Second

- 여기까지 Jmeter를 활용하여 아파치 웹서버에 부하를 발생시키고, Auto Scaling Group를 통해 인스턴스를 Scale-Out과 Scale-In 되는 과정에 대해서 알아보았다. 다음번에는 부하 테스트 구성도를 만들고, 그 구성도를 기반으로 테스트를 진행해보자.

반응형