Netflix의 부하 대응 전략 – 트래픽 급증에도 안정적인 서비스 유지법

안녕하세요. Point-Checks입니다.

이번 포스팅에서는 Netflix의 부하 대응 방법에 대해 알아보겠습니다.
Netflix는 대규모 트래픽을 효과적으로 처리하기 위해 다양한 기술을 활용하며, 부하 급증 상황에서도 안정적인 서비스를 유지하기 위해 여러 가지 전략을 사용합니다.
이번 글에서는 Netflix의 Scale Out 전략과 **서버 가용성 유지 방법(Stay Available)**을 중심으로 살펴보겠습니다.

1. Scale Out 전략

Netflix는 트래픽 증가 시 Auto Scaling을 활용하여 인프라를 확장합니다. 하지만 기존 Auto Scaling 방식은 다음과 같은 문제가 있었습니다.

  • 트래픽 감지 후 Scale Out 완료까지 약 20분이 소요됨
    • 감지 시간: 4분
    • 부팅 시간: 6분
    • 추가 Scale Out 감지: 2분

이 과정에서 가장 큰 문제는 감지 시간이 길다는 점이었습니다. Netflix는 이를 해결하기 위해 여러 가지 최적화 작업을 수행했습니다.

1-1. Detection 시간 감축

  • 기존에는 CPU 사용률을 기준으로 Scale Out을 결정했으나, RPS(Requests Per Second) 지표를 활용하여 더 정확한 트래픽 분석을 수행함.
  • 5초 단위의 고해상도 메트릭을 활용하여 신속한 트래픽 감지가 가능하도록 개선.

1-2. App Start 시간 단축

  • 시작 시간이 긴 애플리케이션을 최적화하여 더 빠르게 가동될 수 있도록 개선.

1-3. System Start 시간 단축

  • Startup Chain 분석을 통해 병렬 처리 방식으로 최적화.
    • 시스템이 부팅될 때 설정 파일 로드, DB 연결, 캐시 초기화, API 호출 등이 이루어지는 일련의 단계를 병렬화하여 속도를 향상.

1-4. Hardware Start 시간 단축

  • 물리적 하드웨어 부팅 속도 개선은 어려우므로, 소프트웨어적인 최적화에 집중.

1-5. 최종 개선 결과

이러한 최적화 과정을 거쳐, 20분이 걸리던 Scale Out 시간이 3분으로 단축되었습니다.
또한, 한 번에 정확한 Scale Out을 수행함으로써 추가적인 감지 과정이 필요 없게 되었습니다.


2. Stay Available 전략

Netflix는 트래픽 급증으로 인한 서버 장애를 예방하기 위해 우선순위 기반 트래픽 처리(Prioritized Load Shedding) 방식을 도입했습니다.

2-1. 부하 급증 단계

Netflix는 트래픽 급증을 다음과 같은 3단계로 구분합니다.

  1. 초기 부하 증가 → 시스템이 충분한 여유를 가지고 대응 가능.
  2. 중간 부하 증가 → 지연 시간이 증가하지만, 모든 요청을 처리 가능.
  3. 과부하 상태 → 중요한 요청도 처리하지 못하며, 전체 시스템 장애 발생 가능.

2-2. 해결 방법

  • 트래픽 우선순위 설정
    • CPU 사용량 기준으로 트래픽을 선별 처리.
    • 우선순위가 높은 요청은 유지하고, 중요하지 않은 요청은 차단하여 리소스를 보호.
  • 트래픽 분산 전략 적용
    • 우선순위가 낮아 차단된 요청을 다른 리전으로 재전송하여 서비스 품질 유지.

2-3. 최종 결론

Netflix는 우선순위 기반 트래픽 처리 기법을 적용하여 전체 서비스 장애를 예방할 수 있었습니다.
이는 Scale Out이 진행되는 동안에도 시스템이 안정적으로 운영될 수 있도록 도와주는 핵심적인 전략입니다.


결론

Netflix는 트래픽 급증 시 발생할 수 있는 문제를 해결하기 위해 Scale Out 최적화우선순위 기반 트래픽 처리를 도입했습니다.
이를 통해 Scale Out 시간을 20분에서 3분으로 단축하고, 서버 장애 없이 트래픽을 안정적으로 처리할 수 있게 되었습니다.

이번 포스팅에서는 Netflix의 부하 대응 전략을 살펴보았는데요, 다음 포스팅에서는 또 다른 흥미로운 주제로 찾아오겠습니다.
감사합니다! 😊

답글 남기기