ZeroBase/CS

대규모 트래픽으로 인한 서버 과부화 해결방법

Red_Horse 2025. 7. 31. 23:28

서버 과부화

  • 정의: 서버가 CPU, 메모리, 네트워크, 디스크 등 리소스를 초과 소모하여 요청을 처리하지 못하고 다운되거나, 응답 시간이 현저히 느려지는 현상
  • 결과: 사용자 요청에 대해 "응답 없음" 발생, 전체 서비스 중단 가능성 증가

대응 전략

 

1. 모니터링 및 자원 자동 할당

  • 설명: 시스템 상태(CPU 사용률, 메모리 사용량, 트래픽 등)를 지속적으로 수집
  • 도구: Prometheus, Grafana, CloudWatch(AWS), Datadog 등
  • 예방 방법:
    • Auto-scaling: 부하 발생 시 인스턴스를 자동으로 증설/축소
    • Alerting: 사전 설정된 임계치 초과 시 관리자에게 알림

2. 로드밸런서 (Load Balancer) 사용

  • 역할: 서버 간 요청 트래픽을 균등하게 분산하여 과부하 방지
  • 종류:
    • L4 스위치: IP/Port 기반
    • L7 스위치: URL, 쿠키 등 애플리케이션 레벨 기준
  • 추가 기능: 헬스 체크, 장애 서버 자동 제외, SSL 오프로드

3. 서킷 브레이커 패턴

  • 목적: 연속적인 장애 전파를 차단하고, 시스템 전체가 무너지지 않도록 보호
  • 구현 상태:
    • Closed: 정상 상태. 요청 통과 가능.
    • Open: 오류 비율 임계치 초과. 요청 차단 → 즉시 실패 응답 (Fail Fast)
    • Half-Open: 일정 시간 후 재시도. 성공 시 Closed 복구
  • 장점:
    • 장애 감지 후 빠른 차단.
    • 핵심 기능 외의 서비스 분리 → 전체 시스템 안정성 향상

4. 블랙스완(Black Swan) 대응 전략

  • 의미: 예측 불가능한 대규모 사고에 대한 대응 전략
  • 대응 절차:
    1. 영향 분석: 어떤 시스템이 영향을 받았는지 판단
    2. 가설 수립 및 테스트: 장애 원인 추적
    3. 내부 팀 조정: 전 팀 알림 및 협조 체계
    4. 취약점 조치: 패치, 설정 변경, 시스템 복구
    5. 대외 커뮤니케이션: 고객 및 파트너에 공식 안내

5. 컨텐츠 관리 최적화

  • 불필요한 요청 제거
    • 불필요한 쿼리, 미사용 API 제거 등으로 트래픽 최소화
  • CDN(Content Delivery Network)
    • 역할: 정적 자산(JS, 이미지, CSS 등)을 사용자 가까운 서버에서 제공
    • 효과: 메인 서버 트래픽 감소, 로딩 속도 개선
    • 대표 서비스: Cloudflare, AWS CloudFront, Akamai
  • 컨텐츠 캐싱
    • 기법: 로컬스토리지, 세션스토리지, 쿠키를 이용한 클라이언트 캐싱
    • 서버 측 캐싱: Redis, Varnish 등을 통한 캐시 처리
    • 이점: 중복 요청 방지, 서버 부하 경감
  • 컨텐츠 압축
    • 기법: Gzip, Brotli 압축 사용
    • 효과: 네트워크 전송량 50~70% 절감
    • 주의점: CPU 리소스를 사용하므로 서버 성능과 트래픽 양을 고려해 적용
  • 컨텐츠의 우하향 저하 (Graceful Degradation)
    • 전략: 시스템 과부하 시 일부 기능 제한
      • 예: 검색 비활성화, 결과 수 축소, 정적 페이지 제공
    • 장점: 핵심 기능 유지 → 사용자 경험 최소 손상
분류 방법 핵심 내용
리소스 감시 모니터링 & Auto-Scaling 서버 상태 감시 → 자동 인스턴스 조절
분산 처리 로드밸런서 트래픽 균등 분산, 장애 서버 차단
장애 방지 서킷 브레이커 장애 감지 후 요청 차단, Fail Fast
비정상 상황 대응 블랙스완 대응 예측 불가 사고에 체계적 대응
컨텐츠 최적화 CDN, 캐시, 압축 서버 부하 줄이기 위한 콘텐츠 전략

 

'ZeroBase > CS' 카테고리의 다른 글

웹페이지 응답 및 렌더링 과정  (1) 2025.08.03
브라우저 렌더링(Browser Rendering)  (1) 2025.08.02
네트워크 장치  (1) 2025.07.30
HTTP 메서드 PUT, PATCH 차이  (3) 2025.07.29
HTTP메서드 GET, POST 차이  (1) 2025.07.28