팀원들과 함께 개발하고 있는 학점가방 서비스를 조만간 배포할 예정이다.
그리고 배포 전에 문득 운영서버가 얼마나 많은 트래픽을 감당할 수 있을지 의문이 들었다.
이러한 의문을 해결하기 위해 인프런의 대규모 트래픽 처리를 위한 부하테스트 입문/실전 강의를 듣고 공부한 내용을 기록으로 남기고자 한다.
부하테스트는 시스템이 어느 정도의 부하(= 트래픽, 요청)를 견딜 수 있는 지 테스트하는 것을 의미한다. 보통 백엔드 시스템을 구성하면 웹서버, WAS, DB 등으로 구성된다. 이러한 시스템에 수많은 클라이언트가 요청을 보낼 경우 어느 정도까지 요청을 수용하며 서버가 견딜 수 있는지 해당 테스트를 통해 알 수 있다.
서비스를 배포하기 전 문득 이런 생각이 들 수 있다.
"우리 서버는 얼마나 많은 사용자를 감당할 수 있을까?"
"얼마 만큼의 서버 사양이 준비되어야 할까?"
이런 생각이 드는 이유는 우리의 서버 자원이 무한정하지 않기 때문이다. 만약 컴퓨터 성능 너무 넉넉할 경우 자원을 모두 사용하지 못한채 불필요하게 많을 지출을 만들어 낼 것이다. 하지만 반대로 성능이 낮을 경우 많은 서비스 사용자가 몰리게 되면 서버가 죽어버리고 말 것이다. 서비스를 운영하는 사람이라면 모두 최소한의 비용으로 최대한의 효율을 끌어내고 싶어 할 것이다. 그러기 위해서는 부하테스트를 통해 딱 필요한 만큼의 서버 사양을 선택하는 것이 중요하다.
부하테스트를 위해서는 ngrinder, jmeter, ab, locust, k6등과 같은 유명한 툴이 있다. 나는 그 중 메모리를 적게 사용하면서 비교적 많은 요청 수를 보낼 수 있는 부하 테스트 툴인 k6를 사용하고자 한다. 사용 방법도 간단해서 쉽게 테스트 해볼 수 있다.
해당 포스트는 시리즈 형태로 계속 이야기를 이어나가고자 한다.