Don't pay for idle GPUs. Provision compute just-in-time, process the workload, and tear it down โ turning capital expense into a per-job operating cost.

Your workload is bursty โ video encoding jobs that spike when content is uploaded, ML training runs that need 8 GPUs for 4 hours then nothing, batch inference jobs triggered by business events, or rendering pipelines that run overnight. You're either over-provisioned (paying for idle resources 80% of the time) or under-provisioned (jobs queue for hours during peaks). You need an architecture that provisions exactly the compute you need, when you need it, and releases it when the job completes โ without the cold-start penalty that makes "scale to zero" impractical for GPU workloads.
Explore more design patterns and system architectures
๋ฐฐ์น ์ค์ฌ ๋๋ ์ฃผ๊ธฐ์ ์ํฌ๋ก๋๋ฅผ ๊ฐ์ง MicrocosmWorks ํด๋ผ์ด์ธํธ๋ ์จ์คํ ์ค์ผ์ผ๋ง์ ๊ตฌํํ ํ ์ผ๋ฐ์ ์ผ๋ก 60-80%์ ํด๋ผ์ฐ๋ ๋น์ฉ ์ ๊ฐ์ ๊ฒฝํํฉ๋๋ค. ์ด๋ ์ปดํจํ ๋ฆฌ์์ค๊ฐ ์ฐ์ค๋ฌดํด 24์๊ฐ ์คํ๋๋ ๋์ ํ์ฑ ์ฒ๋ฆฌ ์๊ฐ ๋์์๋ง ์คํ๋๊ธฐ ๋๋ฌธ์ ๋๋ค. ์๋ฅผ ๋ค์ด, ๋งค์ผ 4์๊ฐ ๋์ ์คํ๋๋ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ํ์ดํ๋ผ์ธ์ 24์๊ฐ ์ ์ฒด๊ฐ ์๋ ํด๋น 4์๊ฐ์ ๋ํด์๋ง ๋น์ฉ์ ์ง๋ถํ๋๋ก ์ค์ ์ฌ์ฉ๋ ํ ๋ ๋ฉํธ๋ฆฌ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ค์ผ์ผ๋ง ์ ์ฑ ์ ์ค๊ณํฉ๋๋ค. ๋น์ฌ์ ์ํคํ ํธ๋ ๊ตฌํ ์์ ์ ์ ํ์ ๋จ๊ณ์์ ๊ณ ๊ฐ์ ์ํฌ๋ก๋ ํจํด์ ๋ถ์ํ์ฌ ์ ํํ ์ ๊ฐ์ก์ ์์ธกํฉ๋๋ค.
์ฝ๋ ์คํํธ ์๊ฐ์ ์ฌ์ ์๋ฐ๋ ๋ ธ๋ ํ์ ์ปจํ ์ด๋ํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฒฝ์ฐ 2-3์ด, ํน์ GPU ์ธ์คํด์ค ๋๋ ๋๊ท๋ชจ ๋ชจ๋ธ ๋ก๋ฉ์ด ํ์ํ ์ํฌ๋ก๋์ ๊ฒฝ์ฐ 5-10๋ถ๊น์ง ๋ค์ํ๋ฉฐ, MicrocosmWorks๋ ์ด๋ฌํ ์ง์ฐ์ ์ต์ํํ๊ธฐ ์ํด ์ฌ๋ฌ ๊ธฐ์ ์ ์ฌ์ฉํฉ๋๋ค. ์ฐ๋ฆฌ๋ ๊ณผ๊ฑฐ ํธ๋ํฝ ํจํด ๋ฐ ์์ฝ๋ ์ด๋ฒคํธ๋ฅผ ์ฌ์ฉํ์ฌ ์์ ์์๊ฐ ๋ฐ์ํ๊ธฐ ์ ์ ๋ฆฌ์์ค๋ฅผ ๊ฐ๋ํ๋ ์์ธก ์ค์ผ์ผ๋ง์ ๊ตฌํํ๊ณ , ์ง์ฐ ์๊ฐ์ ๋ฏผ๊ฐํ ์ํฌ๋ก๋์๋ ์ปจํ ์ด๋ ์ด๋ฏธ์ง ์ฌ์ ํ๋ง ๋ฐ ์ ํ ์์ฝ์ ์ฌ์ฉํฉ๋๋ค. ์ฝ๋ ์คํํธ๋ฅผ ์ ํ ํ์ฉํ ์ ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฒฝ์ฐ, ์์๊ฐ ๋ฐ์ํ๋ฉด ๊ณต๊ฒฉ์ ์ผ๋ก ์ค์ผ์ผ์ ํ๋ ์ต์ํ์ ์ ๋ฒ ์ด์ค๋ผ์ธ์ ์ ์งํฉ๋๋ค.
MicrocosmWorks๋ ํ ๊น์ด, CPU utilization ๋๋ ๋ง์ถคํ ์ ํ๋ฆฌ์ผ์ด์ ์งํ์ ์ํด ํธ๋ฆฌ๊ฑฐ๋๋ ๊ณต๊ฒฉ์ ์ธ ์ค์ผ์ผ์ ์ ์ฑ ๊ณผ, ์ค๋์ฑ์ ๋ฐฉ์งํ๊ธฐ ์ํ ์ฟจ๋ค์ด ๊ธฐ๊ฐ์ ํฌํจํ๋ ๋ณด๋ค ์ ์ง์ ์ธ ์ค์ผ์ผ๋ค์ด ์ ์ฑ ์ ๊ฒฐํฉํ ๋ฐ์ํ ์๋ ์ค์ผ์ผ๋ง์ ๊ตฌํํฉ๋๋ค. ์ฐ๋ฆฌ๋ ์์คํ ์ด ํ ๋ฒ์ ํ๋์ ์ธ์คํด์ค์ฉ ์์๋ฅผ ์ซ๋ ๋์ ์ง์์ ์ธ ์ฑ์ฅ์ ์์ธกํ๋๋ก ์ค์ผ์ผ์ ์ด๋ฒคํธ ๋์ ์ด๊ณผ ํ๋ก๋น์ ๋ ๋ฒํผ๋ฅผ ๊ตฌ์ฑํฉ๋๋ค. ํ๋์ ์ธ์ผ ๋๋ ๋ฐ์ด๋ด ์ด๋ฒคํธ์ ๊ฐ์ด ์ง์ ์ผ๋ก ์์ธก ๋ถ๊ฐ๋ฅํ ๊ธ์ฆ์ ๊ฒฝ์ฐ, ๋ง์ผํ ๋๋ ์ด์ ์บ๋ฆฐ๋์ ์ด๋ฒคํธ ๊ธฐ๋ฐ ํธ๋ฆฌ๊ฑฐ๋ฅผ ์ฌ์ฉํ์ฌ ์ฉ๋์ ์ฌ์ ํ๋ก๋น์ ๋ํฉ๋๋ค.
MicrocosmWorks๋ ์ ํด ๊ธฐ๊ฐ ๋์ ์คํ ๋ฆฌ์ง์ ์๊ตฌ์ฑ๊ณผ ์ฆ๊ฐ์ ์ธ ๊ฐ์ฉ์ฑ์ ์ ์งํ๋ฉด์ ์ปดํจํ ์ 0์ผ๋ก ์ค์ผ์ผ๋งํ๋ Aurora Serverless, Neon ๋๋ PlanetScale๊ณผ ๊ฐ์ ์๋ฒ๋ฆฌ์ค ๋ฐ์ดํฐ๋ฒ ์ด์ค ์คํผ๋ง์ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์จ์คํ ์ค์ผ์ผ๋ง์ ์ ์ฉํฉ๋๋ค. ์๋ฒ๋ฆฌ์ค ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฌ์ฉํ ์ ์๋ ์ํ ์ ์ฅ ์ํฌ๋ก๋์ ๊ฒฝ์ฐ, ์ต์ํ์ ๊ธฐ๋ณธ ์ธ์คํด์ค๋ฅผ ํญ์ ์คํ ์ํ๋ก ์ ์งํ๋ฉด์ ์ฟผ๋ฆฌ ๋ก๋์ ๋ฐ๋ผ ๋ณต์ ๋ณธ์ ์ถ๊ฐํ๊ณ ์ ๊ฑฐํ๋ ์ฝ๊ธฐ ๋ณต์ ๋ณธ ์ค์ผ์ผ๋ง์ ๊ตฌํํฉ๋๋ค. ์ด ํ์ด๋ธ๋ฆฌ๋ ์ ๊ทผ ๋ฐฉ์์ ํด๋ผ์ด์ธํธ๊ฐ ์ข ๋ฃ ๋ฐ ์ฌ์์ ์ฃผ๊ธฐ ๋์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ํ๋ฅผ ๊ด๋ฆฌํ๋ ๋ณต์ก์ฑ ์์ด ๋ฐ์ดํฐ ํฐ์ด ์ค์ผ์ผ๋ง์ ๋น์ฉ ์ด์ ์ ๋๋ฆด ์ ์๋๋ก ํฉ๋๋ค.
MicrocosmWorks๋ Grafana ๋๋ Datadog ๋์๋ณด๋๋ฅผ ์ฌ์ฉํ์ฌ ์ธ์คํด์ค ์, ์ค์ผ์ผ๋ง ์ด๋ฒคํธ ์ง์ฐ ์๊ฐ, ์คํจํ ์ค์ผ์ผ๋ง ์๋, ๊ทธ๋ฆฌ๊ณ ์ํ๋ ์ฉ๋๊ณผ ์ค์ ์ฉ๋ ๊ฐ์ ๊ฒฉ์ฐจ๋ฅผ ์ค์๊ฐ์ผ๋ก ์ถ์ ํ๋ ํฌ๊ด์ ์ธ ์ค์ผ์ผ๋ง ๊ด์ฐฐ ๊ฐ๋ฅ์ฑ(observability)์ ๋ฐฐํฌํฉ๋๋ค. ์ฐ๋ฆฌ๋ ์ค์ผ์ผ๋ง ์คํจ, ์ค์ผ์ผ๋ง ์ํ์ด ๋๋ฌด ๋ฎ์์ ์์ฌํ๋ ์ง์์ ์ธ ๋์ ์ฌ์ฉ๋ฅ , ๊ทธ๋ฆฌ๊ณ ํญ์ฃผ ์ค์ผ์ผ๋ง์ ๋ํ๋ด๋ ๋น์ฉ ์ด์์ ๋ํด ๋ค์ค ์ฑ๋ ๊ฒฝ๊ณ ๋ฅผ ๊ตฌ์ฑํฉ๋๋ค. ์ฐ๋ฆฌ์ ๋ฐ๋ถ์๋ ํด๋ผ์ฐ๋ ๊ณต๊ธ์ ์ธ์คํด์ค ์ ํ ๋๋ฌ ๋๋ ํน์ ๊ฐ์ฉ ์์ญ์์ ์ฉ๋ ๋ถ์กฑ ์ค๋ฅ ๋ฐ์๊ณผ ๊ฐ์ ์ผ๋ฐ์ ์ธ ์คํจ ๋ชจ๋์ ๋ํ ์๋ํ๋ ๋ฌธ์ ํด๊ฒฐ ๋ฐฉ๋ฒ์ด ํฌํจ๋์ด ์์ต๋๋ค.
์ฐ๋ฆฌ์ ์ํคํ ํธ๋ค์ ํน์ ์๊ตฌ ์ฌํญ์ ๋ง๊ฒ ์ด ํจํด์ ์ฌ์ฉํ์ฌ ์์คํ ์ ์ค๊ณํ๊ณ ๊ตฌ์ถํ๋ ๋ฐ ๋์์ ๋๋ฆด ์ ์์ต๋๋ค.
์ฐ๋ฝํ๊ธฐOn-off scaling architecture manages compute resources through warm/cold pooling, job-queue-driven provisioning, and automated teardown. A warm pool maintains a small number of pre-initialized instances ready for immediate use. A cold pool provisions additional capacity from spot/preemptible instances when demand exceeds the warm pool. A job orchestrator routes work to available instances, monitors progress, handles retries on spot eviction, and triggers scale-down when the queue drains. The pattern is particularly critical for GPU workloads where cold start (container pull + model loading) can take 3-10 minutes.
The system centers on a job queue (SQS, Redis, or custom) that buffers incoming work requests. A scaling controller monitors queue depth and provisions instances from the warm pool first, then from the cold pool (spot instances). Each worker instance pulls jobs from the queue, executes the workload (encoding, training, inference), reports completion, and returns to the pool or terminates. A checkpoint manager handles spot eviction by saving intermediate state to S3, enabling jobs to resume on a different instance without starting over.

System Architecture Overview
| Layer | Technologies |
|---|---|
| Compute | AWS EC2 Spot (G5/P4), GCP Preemptible (A2/L4), RunPod Serverless, Modal |
| Orchestration | Kubernetes (Karpenter for autoscaling), AWS Batch, custom job orchestrator |
| Job Queue | AWS SQS, BullMQ (Redis), Temporal, Celery |
| Storage | S3 (checkpoints, model artifacts), NVMe (model cache), EFS (shared workspace) |
| Monitoring | CloudWatch/Prometheus (queue depth, instance utilization, job latency), custom cost dashboards |
| Use When | Avoid When |
|---|---|
| Workload is bursty โ peak demand is 5x+ average demand | Traffic is steady and predictable โ right-sized reserved instances are cheaper |
| GPU/high-compute jobs that are expensive when idle | The workload is lightweight CPU processing that fits serverless (Lambda) |
| Jobs can tolerate 1-5 minute cold start for cold pool provisioning | Sub-second job start latency is required โ you need always-on infrastructure |
| Cost optimization is a primary concern and spot pricing offers 60-90% savings | Spot interruption would cause data loss that checkpointing can't mitigate |
MW designs on-off scaling with a "cost per job" lens โ we model the total cost of processing one unit of work (one video, one training run, one batch inference) across different scaling strategies and pick the one that minimizes cost at the required latency SLA. Our implementations include real-time cost dashboards that show per-job cost, infrastructure utilization, and spot savings. We've built on-off GPU infrastructure that reduced video processing costs by 70% compared to reserved instances, and ML training clusters that provision 64 GPUs for a 4-hour training run and release them automatically.
๋ณด์์ ์ถ์ ํ ์ถ๊ฐํ๋ ๊ธฐ๋ฅ์ด ์๋๋๋ค. ๊ทธ๊ฒ์ ์ํคํ ์ฒ์ ์์ฑ์ ๋๋ค โ ์์คํ ์ด ๋ณด์์ ์ํด ์ค๊ณ๋์๊ฑฐ๋ ๊ทธ๋ ์ง ์๊ฑฐ๋.