배치 처리 스케일링

스트리밍 개념

Mike Metzger

Data Engineer

스케일링이란?

  • 성능 향상
    • 더 빠르게 처리
      • 같은 데이터량을 더 짧은 시간에 처리
    • 더 많은 데이터 처리
      • 같은 시간에 더 많은 데이터 처리
스트리밍 개념

수직 스케일링

  • 더 좋은 컴퓨팅 자원
    • 더 빠른 CPU
    • 더 빠른 IO
    • 더 많은 메모리
  • 일반적으로 가장 쉬운 스케일링
    • 복잡성이 낮음
    • 기존 프로그램/알고리즘 변경이 거의 필요 없음

CPU

메모리

1 Images courtesy https://unsplash.com/@jeremy0
스트리밍 개념

수직 스케일링의 단점

  • 본질적으로 한계가 있음
  • 비용이 많이 들 수 있음 / ROI 낮을 수 있음
  • 업계 성능 향상이 보장되지 않음
스트리밍 개념

수평 스케일링

  • 작업을 여러 부분으로 분할
    • 더 많은 컴퓨터 사용
    • 더 많은 CPU도 가능
  • 완전 병렬(embarrassingly parallel) 작업에 최적
    • 작업을 쉽게 워커에 분배 가능
  • 매우 비용 효율적일 수 있음
  • 특정 프로세스에서 준선형 성능 향상 가능

CPU1

CPU2

CPU3

CPU4

스트리밍 개념

수평 스케일링의 단점

  • 복잡성
    • 처리 프레임워크 필요(예: Apache Spark, Dask)
    • 더 큰 네트워킹 필요
  • 지속적 관리 필요
  • 요구 사항에 따라 비용 증가 가능
  • 비병렬 작업 존재
스트리밍 개념

연습해 봅시다!

스트리밍 개념

Preparing Video For Download...