230424 TIL #67 Scale Out / 로드밸런서 적용 후 테스트

김춘복·2023년 4월 24일
0

TIL : Today I Learned

목록 보기
67/543
post-custom-banner

230424 Today I Learned

실전 프로젝트 4주차. 오늘은 검색 로직을 수정하고 프론트 코드를 짜서 연결했다. 오후엔 서버 증축 테스트를 했다.


Scale Out

  • 6번째 테스트 이후로 추가적인 성능 개선을 위해 서버를 Scale Out 방식으로 증축해 더 많은 Transaction을 처리하도록 해보려 했다.

  • 최종 설계는 오토스케일링을 구현해 서버의 수가 부하에 따라 유동적으로 변하도록 설계했지만 일단은 수동으로 인스턴스 하나를 추가 후 ALB를 로드밸런서로 이용해 임시로 동일한 성능의 t3.mini ec2인스턴스를 추가해 테스트를 진행해 보았다.

  • Jmeter로 동시에 10K Request를 보내는 테스트 결과 tps는 2배 가량 늘어났고, 무엇보다 평균 응답속도가 90% 가까이 줄어들었다.

  • 그리고 가장 눈에 띄는 개선점은 동시에 50K를 보냈을 때도 평균 응답속도가 2534ms, tps 748로 매우 빠른 속도를 보여줬고 무엇보다 오류가 0%였다.

  • 분산 시스템이 되어 DB락을 분산락을 걸어야 하나 생각했지만 로직 설계를 원자적 연산으로 바꿨기 때문에 굳이 DB락이 없어도 트랜잭션이 서로의 트랜잭션을 침범하지 않고 잘 처리되었다.

  • 처음 생각했던 목표를 충족해버렸기때문에 남은 프로젝트는 오토스케일링 적용이나 CI/CD 파이프라인 설계를 통해 안정적이고 효율적인 환경을 조성하는데 힘쓰면 될 것 같다.

profile
Backend Dev / Data Engineer
post-custom-banner

0개의 댓글