YongDev
2025. 2. 3. 20:24
2025. 2. 3. 20:24
대규모 트래픽 발생의 주요 원인
- 마케팅 이벤트 : 대규모 할인 행사, 쿠폰 발급, 타임 세일, 새로운 상품 출기 등 이벤트로 인해 트래픽이 급증
- 바이럴 콘텐츠 : SNS, 뉴스 또는 인터넷에서 급속도로 퍼지는 콘텐츠로 인해 갑자기 트래픽 증가
- 인기 서비스 : 갑작스럽게 주목받은 애플리케이션
- 리소스 집중 : 특정 시간대 많은 사용자가 몰림
대규모 트래픽 처리 실패 시의 문제점
- 성능 저하
- 시스템 다운타임
- 데이터 일관성 문제
- 서버 자원 낭비
트래픽 급증 대비를 위한 주요 처리 전략
- 수평적 확장
- 트래픽이 증가할 때 여러 서버를 추가하여 처리능력을 확장
- 각각의 서버는 동일한 역할을 수행하며, 트래픽을 분산처리
- 특징
- 서버를 쉽게 추가하거나 제거할 수 있어 유연한 확장가능
- 장애가 발생한 서버를 제외하고도 다른 서버가 계속 요청을 처리할 수 있어 고가용성 유지
- 실제 적용
- EC2 Auto Scaling
- Kubernetes
- 부하 분산
- Load Balancer는 다수의 서버가 있는 환경에서 트래픽을 균등하게 분배
- 특정 서버에 부하가 집중되는 것을 방지
- 특징
- 트래픽이 많을 때도 각 서버가 안정적으로 작동하도록 보장
- 다양한 알고리즘 (라운드 로빈, 최소 연결, IP 해시 등)을 사용하여 트래픽을 분배
- 서버 장애 시 다른 서버로 트래픽을 자동으로 전환하여 서비스 중단을 방지할 수 있음
- 실제 적용
- L4를 통한 하드웨어 로드 밸런서
- NGINX, HAProxy 같은 소프트웨어 로드 밸런서
- ELB같은 클라우드 기반 로드
- 캐싱
- 자주 조회되는 데이터를 미리 저장하여 사용자 요청 시 즉시 제공
- 데이터 베이스나 API 요청대신 캐시된 데이터를 사용해서 응답 시간줄이고 트래픽 부하 감소
- 특징
- 반복 요청에 대해 빠른 응답 제공
- 데이터베이스나 원본 서버의 부하를 줄임
- TTL 설정을 통해 캐시 데이터의 유효 기간을 관리
- 실제 적용
- Redis, Memcached -> 인메모리 캐시
- CDN
- 비동기처리
- 즉시 응답할 필요가 없는 작업은 비동기 처리하고 사용자 요청에 대한 응답ㅂ은 빠르게 처리
- 특징
- 실시간으로 즉시 처리할 필요가 없는 작업을 비동기적으로 처리하여 메인 시스템 부담 감소
- 큐를 통해 작업을 저장하고 필요한 시점에 처리
- 실제 적용
- RabbitMQ, Kafka, SQS 같은 메시지 ㅠㅌ
- 데이터베이스 샤딩
- 데이터베이스의 데이터를 여러 개의 샤드로 나누어 분산 저장
- 한번에 처리할 수 있는 데이터의 양 줄이고 부하 분산
- 특징
- 데이터가 샤드 단위로 분산되어, 각 샤드는 독립적으로 데이터를 처리
- 데이터베이스 성능 병목 해소 및 확장성 향상
- 실제 적용
- MySQL, MongeDB, Cassandra
- CDN
- 지리적으로 분산된 서버 네트워크, 사용자가 서버와 가까운 위치에서 콘텐츠를 다운로드
- 트래픽을 분산시키고 사용자에게 더 빠른 콘텐츠 제공을 가능하게 함
- 특징
- 사용자가 가까운 노드에서 컨텐츠를 다운로드하여 응답시간 최소화
- 원본 서버의 부하를 줄여, 대규모 트래픽을 효과적으로 처리
- 적용
- Akamai, Cloudflare, Amazon CloudFront같은 CDN 서비스를 통해 정적파일을 빠르게 제공