실전 프로젝트 4주차. 오늘은 검색 로직을 수정하고 프론트 코드를 짜서 연결했다. 오후엔 서버 증축 테스트를 했다.
6번째 테스트 이후로 추가적인 성능 개선을 위해 서버를 Scale Out 방식으로 증축해 더 많은 Transaction을 처리하도록 해보려 했다.
최종 설계는 오토스케일링을 구현해 서버의 수가 부하에 따라 유동적으로 변하도록 설계했지만 일단은 수동으로 인스턴스 하나를 추가 후 ALB를 로드밸런서로 이용해 임시로 동일한 성능의 t3.mini ec2인스턴스를 추가해 테스트를 진행해 보았다.
그리고 가장 눈에 띄는 개선점은 동시에 50K를 보냈을 때도 평균 응답속도가 2534ms, tps 748로 매우 빠른 속도를 보여줬고 무엇보다 오류가 0%였다.
분산 시스템이 되어 DB락을 분산락을 걸어야 하나 생각했지만 로직 설계를 원자적 연산으로 바꿨기 때문에 굳이 DB락이 없어도 트랜잭션이 서로의 트랜잭션을 침범하지 않고 잘 처리되었다.
처음 생각했던 목표를 충족해버렸기때문에 남은 프로젝트는 오토스케일링 적용이나 CI/CD 파이프라인 설계를 통해 안정적이고 효율적인 환경을 조성하는데 힘쓰면 될 것 같다.