프로젝트

프로젝트22. 내 웹사이트는 어디까지 버틸 수 있을까? - 실제 이용자들로 부하테스트

dodo4723 2024. 3. 10. 20:26
728x90
반응형

제 프로젝트는 사용자가 특정 차트를 고르면, 전 종목의 과거(10년) 차트들을 모두 탐색하여 가장 유사한 차트들을 골라 사용자에게 보여줍니다.

 

비슷한 차트 검색기

 

비슷한 차트 검색기

전 종목의 최근 10년간 모든 차트를 탐색합니다. 내 종목의 차트는 과연 상승하는 차트일까요?

www.similarchart.com




 

 

부하 테스트

 

3명만 와도 서버 터지는 건 아니지?

저는 전에 포스팅했던 글에서 웹사이트를 다 만들었다고 했습니다. 하지만 사실 끝이 아니고 이제 시작입니다. 아직 테스트해야 할 것들이 많고, 분명히 예상치 못한 버그/오류가 많이 튀어나올 것입니다.

 

가장 먼저 테스트해야 할 것은 여러 사람들이 제 웹사이트를 동시에 이용해도 문제가 없는지 확인하는 것입니다. 웹사이트를 제작할 때 캐시와 여러 알고리즘을 활용해 최대한 응답 시간을 줄였습니다만, 혹시 모르죠, 사용자가 3명만 되어도 서버가 먹통이 될 수도 있는 노릇입니다. 아무래도 한 달에 2만 원대인 저렴한 ec2를 사용 중이라 걱정이 되었습니다.

 

특히 사용자가 특정 종목을 골라 그 종목과 비슷한 차트를 탐색하여 응답하는 부분이 있는데, 약 천만 개의 데이터를 탐색하기 때문에 응답 시간이 꽤 길었습니다.(약 10~15초)

 

만약 10명의 사용자가 동시에 위 요청을 보내면 서버에 부하가 많이 가거나 응답시간이 매우 느릴 수도 있을 것 같아 걱정이 되었습니다. 그래서 점진적으로 이용자의 수를 늘려가며 테스트를 진행하기로 했습니다.

 


 

떨리는 첫 공개 순간

2월 9일 구글 애드센스를 붙이는 것을 마지막으로 사람들에게 제 웹사이트의 링크를 공개했습니다. 한두 명씩 제 웹사이트에 방문하는 것을 로그로 지켜보니 뭔가 뿌듯한 기분이 들더군요.

 

첫 번째 날은 아주 조금 홍보하고, 두 번째 날은 홍보를 더 늘리고, 세 번째 날은 좀 과하게 홍보를 했습니다. 그 결과 초당 5번 이상의 트래픽을 얻을 수 있었습니다.

 

 


 

일단은 한숨 돌렸다

로그를 실시간으로 지켜본 결과, 서버에는 큰 문제는 없는 것 같고, 응답시간도 괜찮아 보입니다.

 

응답 플로우 곳곳에 캐시를 적용한 것이 효과적인 것 같습니다. CloudFlare(CDN) - Nginx(Web Server) - EC2 Volume(Storage) - Redis(Memory DB) 등 최소한 4곳 이상에 캐시 로직을 두었습니다.

 

일단은 괜찮아 보이지만, 이후에도 모니터링을 계속할 예정입니다.

반응형