피드로 돌아가기
Magento 2 Static Content Deploy Optimization: Faster Builds, Fewer Headaches
Dev.toDev.to
DevOps

Parallelization과 Strategy 최적화로 배포 시간 90% 단축

Magento 2 Static Content Deploy Optimization: Faster Builds, Fewer Headaches

Magevanta2026년 5월 28일8intermediate

Context

Magento 2의 Static Content Deploy 과정에서 다수의 Theme와 Locale 조합으로 인한 자산 생성 병목 현상 발생. 순차적 처리 방식과 비효율적인 기본 Strategy 채택으로 인해 대규모 스토어 기준 최대 30분의 배포 다운타임 리스크 상존.

Technical Solution

  • CPU Core 수에 맞춘 -j 플래그 적용을 통한 Theme/Locale 조합 처리 프로세스의 Parallelization 구현
  • 불필요한 자산 생성을 배제하는 --theme 및 Locale 명시적 지정 기반의 Scoped Deploy 구조 설계
  • 중복 파일에 Symlink를 활용하여 Disk I/O와 저장 공간을 최적화하는 quick Strategy 채택
  • Frontend와 Admin Asset Tree의 독립적 분리 및 병렬 실행을 통한 CI 서버 리소스 활용 극대화
  • --no-html-minify 옵션을 통한 Staging 환경의 불필요한 연산 제거로 반복 배포 주기 단축
  • Build Artifact의 Tarball 배포 방식을 통한 수평 확장 환경의 중복 빌드 제거

Impact

  • 4 Core 서버 기준 Parallelization 적용만으로 배포 시간 60-70% 감소
  • 기본 설정(18-25분) 대비 최적화 설정(3-5분) 적용 시 약 80% 이상의 시간 단축
  • Distributed Build 도입 시 서버당 배포 시간 1분 미만으로 개선

Key Takeaway

전체 자산을 매번 재생성하는 대신, 변경 범위의 최소화(Scoping)와 처리 프로세스의 병렬화(Parallelization)를 통해 빌드 파이프라인의 선형적 시간 증가를 억제하는 설계 원칙의 중요성.


- `nproc` 또는 `sysctl`을 통해 서버 CPU Core 수를 자동 감지하여 `-j` 값에 할당하고 있는가? - Production 환경에서 `standard` 대신 `quick` Strategy를 사용하여 Disk I/O를 최적화했는가? - 사용하지 않는 Locale과 Theme가 배포 범위에 포함되어 리소스를 낭비하고 있지는 않은가? - Frontend와 Admin 배포를 분리하여 병렬 파이프라인으로 구성했는가?

원문 읽기