<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Serverless on ICE-ICE-BEAR-BLOG</title><link>https://ice-ice-bear.github.io/ko/tags/serverless/</link><description>Recent content in Serverless on ICE-ICE-BEAR-BLOG</description><generator>Hugo -- gohugo.io</generator><language>ko</language><lastBuildDate>Mon, 13 Apr 2026 00:00:00 +0900</lastBuildDate><atom:link href="https://ice-ice-bear.github.io/ko/tags/serverless/index.xml" rel="self" type="application/rss+xml"/><item><title>RunPod Serverless vs Pods — GPU 워크로드에서 무엇이 언제 이기는가</title><link>https://ice-ice-bear.github.io/ko/posts/2026-04-13-runpod-serverless-vs-pods/</link><pubDate>Mon, 13 Apr 2026 00:00:00 +0900</pubDate><guid>https://ice-ice-bear.github.io/ko/posts/2026-04-13-runpod-serverless-vs-pods/</guid><description>&lt;img src="https://ice-ice-bear.github.io/" alt="Featured image of post RunPod Serverless vs Pods — GPU 워크로드에서 무엇이 언제 이기는가" /&gt;&lt;h2 id="개요"&gt;개요
&lt;/h2&gt;&lt;p&gt;&lt;a class="link" href="https://github.com/ice-ice-bear/popcon-matting-bench" target="_blank" rel="noopener"
 &gt;popcon&lt;/a&gt; GPU 워커를 붙이면서 진짜 선택을 강요받았다 — 추론 파이프라인을 RunPod Serverless로 돌릴까, 상시 Pod로 돌릴까? 둘 다 초 단위 과금에 동일한 GPU SKU를 쓰지만 비용 곡선은 특정 이용률 지점에서만 교차한다. 이 글은 아키텍처 차이와 손익분기 계산을 정리한다.&lt;/p&gt;
&lt;h2 id="두-모델"&gt;두 모델
&lt;/h2&gt;&lt;pre class="mermaid" style="visibility:hidden"&gt;graph TD
 A["워크로드 유형은?"] --&gt; B{"버스티 트래픽 &amp;lt;br/&amp;gt; (대부분 idle)?"}
 B --&gt;|예| C[RunPod Serverless]
 B --&gt;|아니오, 지속 부하| D[RunPod Pod]
 C --&gt; E[Flex 워커 &amp;lt;br/&amp;gt; 콜드 스타트, $0 idle]
 C --&gt; F[Active 워커 &amp;lt;br/&amp;gt; 워밍, 할인 요금]
 D --&gt; G[시간당 과금 &amp;lt;br/&amp;gt; idle 여부와 무관]
 D --&gt; H[영구 볼륨]&lt;/pre&gt;&lt;h2 id="pods--상시-컨테이너"&gt;Pods — 상시 컨테이너
&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;Pod&lt;/strong&gt;는 볼륨 디스크가 붙은 영구 컨테이너다. 요청을 처리하든 idle이든 &lt;strong&gt;연속적으로&lt;/strong&gt; 시간당 GPU 요금을 낸다. 스토리지는 실행 중일 때 &lt;code&gt;$0.10/GB/월&lt;/code&gt;(초 단위), &lt;strong&gt;중단 시에는 &lt;code&gt;$0.20/GB/월&lt;/code&gt;로 두 배가 된다&lt;/strong&gt; — RunPod는 &amp;ldquo;쓰거나 지우거나&amp;rdquo; 하라고 강하게 유도한다. 잔액이 0이 되면 볼륨이 통째로 삭제된다.&lt;/p&gt;
&lt;p&gt;배포 시 &lt;strong&gt;최소 1시간치 크레딧&lt;/strong&gt;이 계좌에 있어야 하고, 기본 &lt;code&gt;$80/시간&lt;/code&gt; 지출 한도가 폭주를 막아준다.&lt;/p&gt;
&lt;p&gt;Pods가 맞는 경우:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;노트북 환경, SSH 접근, 영구 상태가 필요할 때&lt;/li&gt;
&lt;li&gt;GPU가 실제 작업에 40% 이상 쓰일 때&lt;/li&gt;
&lt;li&gt;콜드 스타트 지연이 UX를 망칠 때(인터랙티브 비디오 모델 등)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="serverless--초-단위-핸들러"&gt;Serverless — 초 단위 핸들러
&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;Serverless 워커&lt;/strong&gt;는 트래픽이 오면 뜨고, 큐 요청을 처리한 뒤 사라지는 stateless 컨테이너 핸들러다. 두 가지 워커 클래스:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Flex&lt;/strong&gt; — 트래픽 도착 시 콜드 스타트, &lt;strong&gt;idle 비용 0&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Active&lt;/strong&gt; — 할인된 요금으로 워밍 유지, 콜드 스타트 없음&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;handler(event)&lt;/code&gt; 함수를 짜고 Docker 이미지로 배포한다. 네트워크 볼륨(&lt;code&gt;$0.07/GB/월&lt;/code&gt; 1TB 미만, &lt;code&gt;$0.05/GB/월&lt;/code&gt; 1TB 초과)은 워커 간 공유 모델 가중치 캐싱에 쓴다.&lt;/p&gt;
&lt;h3 id="콜드-스타트-함정"&gt;콜드 스타트 함정
&lt;/h3&gt;&lt;p&gt;콜드 스타트 시간도 과금된다. 30초짜리 이미지 매팅 요청에 10초 콜드 스타트면 40초가 청구된다. 모델이 5GB 이상이고 네트워크 볼륨에 있으면 콜드 스타트가 폭증할 수 있다. &lt;a class="link" href="https://github.com/ice-ice-bear/popcon-matting-bench" target="_blank" rel="noopener"
 &gt;popcon&lt;/a&gt;의 &lt;code&gt;gpu_worker/Dockerfile&lt;/code&gt; 패턴은 정확히 이 문제를 피하려고 &lt;strong&gt;모델 가중치를 이미지에 굽는다&lt;/strong&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-dockerfile" data-lang="dockerfile"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;FROM&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;runpod/pytorch:2.1-cuda12.1&lt;/span&gt;&lt;span class="err"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;COPY&lt;/span&gt; weights/birefnet.pth /app/weights/&lt;span class="err"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;COPY&lt;/span&gt; handler.py /app/&lt;span class="err"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;CMD&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;python&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;/app/handler.py&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="err"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;6GB 이미지는 풀이 오래 걸리지만 워커에 캐시되면 몇 초 안에 로드된다.&lt;/p&gt;
&lt;h2 id="손익분기-계산"&gt;손익분기 계산
&lt;/h2&gt;&lt;p&gt;A100 기준 대략적인 숫자:&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;모델&lt;/th&gt;
 &lt;th&gt;요금&lt;/th&gt;
 &lt;th&gt;24시간 비용&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Pod&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;$1.89/시간&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;$45.36&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Serverless Flex (활성 컴퓨트)&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;$0.00076/초&lt;/code&gt; ≈ &lt;code&gt;$2.74/시간&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;$2.74 × 사용 시간&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;분기점은 대략 17시간/일 이용률.&lt;/strong&gt; 그 아래면 Serverless 승, 위면 Pods 승. 사용자 트래픽이 들쭉날쭉한 스타트업이면 거의 항상 Serverless가 정답이다. 계속 파인튜닝하는 연구소라면 Pods가 정답.&lt;/p&gt;
&lt;h2 id="동시성-패턴"&gt;동시성 패턴
&lt;/h2&gt;&lt;p&gt;Serverless가 정말 빛나는 곳은 병렬 추론이다. &lt;code&gt;asyncio.gather&lt;/code&gt;로 N개 요청을 동시 발사:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;results&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="n"&gt;asyncio&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;gather&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;gpu_client&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;infer&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;task&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;rembg&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;image&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;frame&lt;/span&gt;&lt;span class="p"&gt;})&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;frame&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;frames&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;병목이 컴퓨트에서 RunPod 오토스케일러로 옮겨간다 — 30개 요청이 동시에 도착하면 추가 Flex 워커의 콜드 스타트가 wall-clock 지연시간을 &lt;em&gt;가장 느린 콜드 스타트&lt;/em&gt; 정도로 묶는다, 30배의 warm 지연시간이 아니라. 단일 Pod로 같은 일을 하려면 요청을 배치하거나(추가 코드, 추론 어려움) 여러 Pod를 띄워야 한다(전부 연속 과금).&lt;/p&gt;
&lt;h2 id="serverless를-쓰지-말아야-할-때"&gt;Serverless를 쓰지 &lt;em&gt;말아야&lt;/em&gt; 할 때
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;장시간 학습 작업&lt;/strong&gt; — RunPod Serverless는 요청당 최대 실행 시간이 있다. 멀티시간 파인튜닝은 Pod로.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;비자명한 상태가 있는 모델&lt;/strong&gt; — 추론이 핫 in-memory KV 캐시를 읽는다면, Serverless의 stateless 워커는 콜드 스타트마다 그 캐시를 다시 만든다.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;지연 시간이 결정적인 인터랙티브 UX&lt;/strong&gt; — 사용자가 UI에서 2초 미만 응답을 기다리는 경우, Active 워커가 도움이 되지만 워밍된 Pod에는 못 미친다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="인사이트"&gt;인사이트
&lt;/h2&gt;&lt;p&gt;Serverless 모델은 지금 GPU 컴퓨트에서 가장 흥미로운 흐름이다 — &amp;ldquo;모델을 API로 배포한다&amp;quot;가 Lambda 배포처럼 느껴지게 만든다. 스타트업 규모의 추론 워크로드 90%에서는 Serverless가 올바른 디폴트다 — 손익분기는 거의 24시간 운용에 가까워질 때까지 Pods를 선호하지 않는다. 주의할 함정은 콜드 스타트 비용 분할 — 가중치를 네트워크 볼륨이 아니라 이미지에 굽고, 그러면 실효 Serverless 비용이 warm 요금에 가깝게 머문다. RunPod의 가격 모델은 본질적으로 &amp;ldquo;대부분의 GPU 작업은 버스티하다고 우리는 믿는다&amp;quot;고 말하고 있고, 제품 워크로드에서는 아마 옳다.&lt;/p&gt;
&lt;h2 id="빠른-링크"&gt;빠른 링크
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class="link" href="https://docs.runpod.io/pods/pricing" target="_blank" rel="noopener"
 &gt;RunPod Pods Pricing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://docs.runpod.io/serverless/pricing" target="_blank" rel="noopener"
 &gt;RunPod Serverless Pricing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://docs.runpod.io/accounts-billing/billing" target="_blank" rel="noopener"
 &gt;RunPod Billing Overview&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item></channel></rss>