프로젝트명:
티켓팅 접속자 대기열 시스템 <IDOL>
개발 환경:
- IntelliJ IDEA Community Edition
- Java 17 (LTS, Long Term Support)
- Spring Boot 3
- Spring WebFlux
- Spring MVC
- Redis 6.2
설명:
- 짧은 시간에 대량의 트래픽이 인입되는 상황을 스파이크성 트래픽이라고 한다.
- 인기 있는 제품이 출시하거나, 아이돌의 티켓팅, 수강 신청, 미디어 노출로 인행 갑작스러운 유입
- DDos 공격과 악의적인 활동과 같은 보안 공격
- 자연 재해 및 긴급 상황과 같은 사태에서 사람들이 동시에 특정 서비스(ex. 카카오톡)을 찾는 경우
- 이때 인입되는 트래픽은 평소 대비 10배 ~ 100배 등 갑작스럽게 증가하기 때문에, 서버의 처리 용량을 초과하게 만들어 성능 저하 또는 시스템 다운타임을 초래할 수 있다.
- 클라우드 환경이라면 자동화된 스케일 인/아웃을 통해 자동 확장(Auto Scaling)을 고려해볼 수도 있겠지만, 리소스가 늘어나는 데에도 시간이 걸리며 그보다 빠르게 트래픽이 인입되기 때문에 자동 확장만으로는 대응하기 어려울 수 있다.
- 아이돌 티켓팅과 같은 상황은 재난이나 비상 상태로 인해 사람들이 동시에 몰리는 상황과는 다르게 예측할 수 있는 스파이크성 트래픽이다.
- 따라서 특정 웹 페이지에 대해 진입할 수 있는 사용자 수를 제한하고, 대기 사용자에 대해 순차적으로 진입할 수 있는 시스템 설계를 고려해보도록 한다!
반응형