대규모 트래픽 발생의 주요 원인

  • 마케팅 이벤트 : 대규모 할인 행사, 쿠폰 발급, 타임 세일, 새로운 상품 출기 등 이벤트로 인해 트래픽이 급증
  • 바이럴 콘텐츠 : 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 서비스를 통해 정적파일을 빠르게 제공

 

'Backend' 카테고리의 다른 글

Redis 개념  (0) 2025.02.09
시스템 확장  (0) 2025.02.08
분산 시스템  (0) 2025.02.03
비동기 처리 시스템의 이해  (2) 2025.02.02
동시성 및 비동기 처리 개념  (0) 2025.02.01

+ Recent posts