DevGang
[Spring] nGrinder으로 스프링부트 애플리케이션(AWS EB) 부하테스트 본문
nGrinder으로 저희 스프링 부트 프로젝트에서 부하 테스트를 진행했습니다.
가상 사용자 9000명으로 테스트 결과 오류가 많이 발생해서 프로젝트를 개선하고 기록하기 위해 포스팅합니다.
아래는 부하 테스트 결과와 프로젝트 깃허브 주소입니다.
테스트 환경
- AWS Elastic Beanstalk - t2.micro
- AWS RDS (MySQL) - db.t2.micro
- Spring Boot 2.5.7
- nGrinder EC2 - t2.large
1. AWS EB의 인스턴스 증가
기존의 AWS EB에서 Auto Scaling으로 인스턴스를 늘려주면 부하가 분산되어 오류가 줄어들지 않을까?라는 생각으로 인스턴스를 2대로 늘려보았습니다.
하지만 단순히 인스턴스를 늘려주는 건 오류에 영향을 주지 않았습니다.
2. AWS RDS Connection Pool 늘리기
향로님의 블로그를 참고하여 AWS RDS의 Connection Pool을 늘려보기로 했습니다.
현재 인스턴스를 2개 생성하여 30개씩 db.t2.micro의 최대 Connection Pool 60개까지 연결했습니다.
하지만 딱히 개선된 점은 없었습니다.
테스트를 진행하는 에이전트의 CPU 사용률이 100%까지 올라가는데
이 문제가 nGrinder를 실행 중인 서버의 리소스가 부족하여 생기는 오류인지 저희 서버의 오류인지도 모르겠습니다..
이번 부하 테스트를 진행하며 정확하게 어느 지점에서 에러가 발생하는지 확인할 수 있는 프로그램의 필요성을 느끼게 되었습니다. (그리고 서버는 크고 많을수록 좋다!)
'Study > Spring' 카테고리의 다른 글
[Spring Boot] CORS와 Preflight에 관한 삽질 (0) | 2021.11.24 |
---|---|
[Servlet] 서블릿 (0) | 2021.07.14 |
[Spring] DispatcherServlet (0) | 2021.06.02 |
[Spring] AOP(Aspect-oriented programming) (1) | 2021.05.12 |
[Servlet&Jsp] MVC model1 vs model2 (0) | 2021.05.10 |
Comments