Key Takeaways
- ๋จ์ผ ๋จธ์ : GPU 1๊ฐ, ๋์ ์ฌ์ฉ์ 10~50๋ช , ๊ฐ๋จํ ์ค์ .
- ๋ค์ค GPU: GPU 2~8๊ฐ, ์ฌ์ฉ์ 50~200๋ช , Kubernetes ์ค์ผ์คํธ๋ ์ด์ .
- ์ํฐํ๋ผ์ด์ฆ: GPU 5~50๊ฐ, ์ฌ์ฉ์ 500๋ช ์ด์, ๋ถ์ฐยท๊ณ ๊ฐ์ฉ์ฑ ๊ตฌ์ฑ.
- ๋ก๋ ๋ฐธ๋ฐ์ฑ: ๋ผ์ด๋ ๋ก๋น ๋ฐฉ์์ผ๋ก GPU ํ๋ ์ ๋ฐ์ ์์ฒญ์ ๋ถ์ฐ.
- ๋ชจ๋ํฐ๋ง: ์ง์ฐ ์๊ฐ, ํ ๊น์ด, GPU ์ฌ์ฉ๋ฅ , ์ค๋ฅ์จ์ ์ถ์ .
- 2026๋ 4์ ๊ธฐ์ค, Kubernetes๋ ์ํฐํ๋ผ์ด์ฆ LLM ๋ฐฐํฌ์ ํ์ค์ ๋๋ค.
๋จ์ผ ๋จธ์ ์์ ๋ถ์ฐ ์์คํ ์ผ๋ก ์ด๋ป๊ฒ ํ์ฅํ์ญ๋๊น?
๋จ์ผ ๋จธ์ ์์ ํ๋ก๋์ ์ผ๋ก์ ๋ฐ์ ๋จ๊ณ:
| ๋ฐฐํฌ ๋จ๊ณ | GPU ์ | ๋์ ์ฌ์ฉ์ ์ | SLA ๊ฐ๋๋ฅ | ์ธํ๋ผ ์ค์ |
|---|---|---|---|---|
| โ | โ | โ | โ | โ |
| โ | โ | โ | โ | โ |
| โ | โ | โ | โ | โ |
| โ | โ | โ | โ | โ |
๋ก๋ ๋ฐธ๋ฐ์ฑ์ ์ด๋ป๊ฒ ๊ตฌํํ์ญ๋๊น?
๋ก๋ ๋ฐธ๋ฐ์๋ ์์ฒญ์ ๊ฐ์ฅ ์ฌ์ ๋ก์ด ์ธํผ๋ฐ์ค ํ๋๋ก ๋ผ์ฐํ ํฉ๋๋ค.
๋ผ์ด๋ ๋ก๋น: ํ๋ ์ ๋ฐ์ ๊ท ๋ฑํ๊ฒ ๋ถ์ฐํฉ๋๋ค (๊ฐ์ฅ ๋จ์).
์ต์ ๋ถํ: ํ๊ฐ ๊ฐ์ฅ ์งง์ ํ๋๋ก ์ ์กํฉ๋๋ค (๋ ๋ฎ์ ์ง์ฐ ์๊ฐ).
๊ณ ์ ์ธ์ : ๋์ผ ์ฌ์ฉ์๊ฐ ํญ์ ๋์ผ ํ๋๋ฅผ ์ฌ์ฉํฉ๋๋ค (์ปจํ ์คํธ ์ ์ง์ ์ ์ฉํ๋ ํ๋ ์ฅ์ ์ ์ํ).
# Kubernetes Service with load balancing
apiVersion: v1
kind: Service
metadata:
name: llm-inference
spec:
selector:
app: vllm-inference
ports:
- port: 8000
targetPort: 8000
type: LoadBalancer
sessionAffinity: None # Round-robin across pods์ด์คํ์ ํ์ผ์ค๋ฒ๋ฅผ ์ด๋ป๊ฒ ๊ตฌํํ์ญ๋๊น?
๊ณ ๊ฐ์ฉ์ฑ์ ์ด์คํ๋ ๊ตฌ์ฑ ์์๋ฅผ ํ์๋ก ํฉ๋๋ค:
ํ๋ ๋ณต์ ๋ณธ: ์ฌ๋ฌ ์ธํผ๋ฐ์ค ํ๋๋ฅผ ๊ตฌ์ฑํฉ๋๋ค. ํ๋๊ฐ ์ค๋จ๋์ด๋ ๋๋จธ์ง ํ๋๊ฐ ์์ฒญ์ ์ฒ๋ฆฌํฉ๋๋ค.
ํฌ์ค ์ฒดํฌ: Kubernetes๊ฐ ๋น์ ์ ํ๋๋ฅผ ์๋์ผ๋ก ์ ๊ฑฐํฉ๋๋ค.
์คํ ๋ฆฌ์ง ์ด์คํ: ๋ชจ๋ธ ํ์ผ์ด ๋ ธ๋ ์ ๋ฐ์ ๋ณต์ ๋ฉ๋๋ค.
DNS ํ์ผ์ค๋ฒ: ์ ์ฒด ๋ฐ์ดํฐ์ผํฐ๊ฐ ์ฅ์ ๋ฅผ ์ผ์ผํฌ ๊ฒฝ์ฐ, ํธ๋ํฝ์ ๋ฐฑ์ ์์ค๋ก ๋ผ์ฐํ ํฉ๋๋ค.
๋ฌด์์ ๋ชจ๋ํฐ๋งํด์ผ ํ์ญ๋๊น?
์ํฐํ๋ผ์ด์ฆ ๋ฐฐํฌ์์ ๋ฐ๋์ ๋ชจ๋ํฐ๋งํด์ผ ํ ํญ๋ชฉ:
- ์ง์ฐ ์๊ฐ: ์์ฒญ๋ณ ์ฒ๋ฆฌ ์๊ฐ (p50, p95, p99 ๋ฐฑ๋ถ์์).
- ํ ๊น์ด: ๋๊ธฐ ์ค์ธ ์์ฒญ ์. 10 ์ด๊ณผ ์ ๊ณผ๋ถํ ์ํ.
- GPU ์ฌ์ฉ๋ฅ : 70~90% ์ ์ง๋ฅผ ๋ชฉํ๋ก ํฉ๋๋ค. 50% ๋ฏธ๋ง ์ ๊ณผ์ ํ๋ก๋น์ ๋, 95% ์ด๊ณผ ์ ๋ถ์กฑ ํ๋ก๋น์ ๋.
- ์ค๋ฅ์จ: ์คํจํ ์์ฒญ์ ๋น์จ. 0.1% ๋ฏธ๋ง์ด์ด์ผ ํฉ๋๋ค.
- ์ฒ๋ฆฌ๋: ์ ์ฒด ํ๋์์์ ์ด๋น ํ ํฐ ์.
- ๊ฐ๋๋ฅ : ์๋น์ค ์ด์ฉ ๊ฐ๋ฅ ์๊ฐ์ ๋น์จ (๋ชฉํ: 99.9%).
- ์ฟผ๋ฆฌ๋น ๋น์ฉ: ์์ฒญ๋น ๋น์ฉ (ํ๋์จ์ด ์๊ฐ ํฌํจ).
๊ท๋ชจ์์ ๋น์ฉ์ ์ด๋ป๊ฒ ์ต์ ํํ์ญ๋๊น?
๊ท๋ชจ์์๋ ๋ค์ ์ฌํญ์ ์ง์คํ์ญ์์ค:
- GPU ์ฌ์ฉ๋ฅ : ๋์์๋ก ์์ฒญ๋น ๋น์ฉ์ด ๋ฎ์์ง๋๋ค. 80~90% ๋ชฉํ.
- ๋ชจ๋ธ ์์ํ: Q4 vs FP16์ VRAM์ 4๋ฐฐ ์ ์ฝํ๋ฉฐ ์๋๋ ๋์ผํฉ๋๋ค. ํ์ํ GPU ์๊ฐ ์ค์ด๋ญ๋๋ค.
- ๋ฐฐ์น ํฌ๊ธฐ: ๋ฐฐ์น๊ฐ ํด์๋ก ์์ฒญ๋น ๋น์ฉ์ด ๋ฎ์์ง๋๋ค (๋จ, ์ง์ฐ ์๊ฐ ์ฆ๊ฐ).
- ์คํ ์ค์ผ์ผ๋ง: ์ผ๊ฐ์๋ ์ถ์ํ๊ณ ๋ฎ์๋ ํ์ฅํฉ๋๋ค (ํด๋ผ์ฐ๋ ๋น์ฉ 30~50% ์ ๊ฐ).
- ๋ฉํฐ ํ ๋์: GPU๋น 2~3๊ฐ์ ๋ชจ๋ธ์ ์คํํฉ๋๋ค (VRAM์ด ํ์ฉํ๋ ๊ฒฝ์ฐ). ์ฌ์ฉ๋ฅ ์ด ๋์์ง๋๋ค.
ํํ ์ํฐํ๋ผ์ด์ฆ ํ์ฅ ์ค์
- ์ง์ฐ ์๊ฐ ์๊ฑด์ ๋ฌด์ํ๋ ๊ฒ. ๋ฐฐํฌ ์ ์ p99 ์ง์ฐ ์๊ฐ SLA๋ฅผ ํฉ์ํ์ญ์์ค. 2์ด์ ์ง์ฐ ์๊ฐ์ ์ฌ์ฉ์๊ฐ ๋ถ๋ง์ ์ ๊ธฐํ๊ธฐ ์ ๊น์ง๋ ๊ด์ฐฎ์ ๋ณด์ผ ์ ์์ต๋๋ค.
- ํผํฌ์ ๋ง์ถฐ ๊ณผ์ ํ๋ก๋น์ ๋ํ๋ ๊ฒ. ํ๋ฃจ 2์๊ฐ๋ง 100๋ช ์ ๋์ ์ฌ์ฉ์๊ฐ ์ ์ํ๋ค๋ฉด ์ข ์ผ 100๋ช ์ ๋ง๋ ํ๋์จ์ด๋ฅผ ๊ตฌ๋งคํ ํ์๊ฐ ์์ต๋๋ค. ์คํ ์ค์ผ์ผ๋ง์ ํ์ฉํ์ญ์์ค.
- ์ฅ์ ๊ฒฉ๋ฆฌ๊ฐ ๋ฏธํกํ ๊ฒ. ํ๋ ํ๋์ ์ถฉ๋์ด ๋ก๋ ๋ฐธ๋ฐ์ ์ ์ฒด๋ฅผ ์ค๋จ์ํจ๋ค๋ฉด ์ํคํ ์ฒ๊ฐ ์๋ชป๋ ๊ฒ์ ๋๋ค. ์ฅ์ ์๋๋ฆฌ์ค๋ฅผ ๋ฐ๋์ ํ ์คํธํ์ญ์์ค.
- ์ฌ๋ฐ๋ฅธ ๋ฉํธ๋ฆญ์ ๋ชจ๋ํฐ๋งํ์ง ์๋ ๊ฒ. GPU ์ฌ์ฉ๋ฅ ๋ง ๋ชจ๋ํฐ๋งํ๊ณ ์ง์ฐ ์๊ฐ์ ๋ชจ๋ํฐ๋งํ์ง ์๋ ๊ฒ์ ์๋ชป๋ ์ ๊ทผ์ ๋๋ค. ์ง์ฐ ์๊ฐ์ด ์ฌ์ฉ์ ๊ฒฝํ์ ์ง์ ์ ์ธ ์ํฅ์ ๋ฏธ์นฉ๋๋ค.
- ์คํ์์ค ๋๊ตฌ๊ฐ ์ํฐํ๋ผ์ด์ฆ ๊ท๋ชจ๋ก ํ์ฅ๋๋ค๊ณ ๊ฐ์ ํ๋ ๊ฒ. Ollama๋ 1๋ช ์ ์ฌ์ฉ์์๊ฒ๋ ํ๋ฅญํ๊ฒ ์๋ํฉ๋๋ค. 500๋ช ์ ๋์ ์ฌ์ฉ์์๊ฒ๋ ์ํฐํ๋ผ์ด์ฆ ๋ชจ๋ํฐ๋ง๊ณผ ์ค์ผ์คํธ๋ ์ด์ ์ด ํ์ํฉ๋๋ค.
๋ก์ปฌ LLM ํ์ฅ์ ๋ํ ์์ฃผ ๋ฌป๋ ์ง๋ฌธ
์ํฐํ๋ผ์ด์ฆ ๋ฐฐํฌ์ GPU๊ฐ ๋ช ๊ฐ๋ ํ์ํฉ๋๊น?
๋์ ์ ์ ์์ ์ง์ฐ ์๊ฐ ์๊ฑด์ ๋ฐ๋ผ ๋ค๋ฆ ๋๋ค. 7B ๋ชจ๋ธ์์ ๋์ ์ฌ์ฉ์ 100๋ช : GPU ์ฝ 5~8๊ฐ. ๋์ ์ฌ์ฉ์ 500๋ช : GPU 20~30๊ฐ. ๊ณต์: (๋์ ์ฌ์ฉ์ ์ ร ์์ ์ง์ฐ ์๊ฐ) / (GPU๋น ํ ํฐ/์ด).
๋ก๋ ๋ฐธ๋ฐ์ฑ๊ณผ ์คํ ์ค์ผ์ผ๋ง์ ์ฐจ์ด๋ ๋ฌด์์ ๋๊น?
๋ก๋ ๋ฐธ๋ฐ์ฑ์ ๊ธฐ์กด ํ๋ ์ ๋ฐ์ ์์ฒญ์ ๋ถ์ฐํฉ๋๋ค. ์คํ ์ค์ผ์ผ๋ง์ ๋ถํ์ ๋ฐ๋ผ ํ๋๋ฅผ ์ถ๊ฐํ๊ฑฐ๋ ์ ๊ฑฐํฉ๋๋ค. ๋ ๊ฐ์ง ๋ชจ๋ ํ์ํฉ๋๋ค. ๋ก๋ ๋ฐธ๋ฐ์ฑ์ ํ์ฌ ์์ ์ ๋ถ์ฐํ๊ณ , ์คํ ์ค์ผ์ผ๋ง์ ์ฉ๋์ ์กฐ์ ํฉ๋๋ค.
GPU ์ฅ์ ๋ฅผ ์ด๋ป๊ฒ ์ฒ๋ฆฌํฉ๋๊น?
Kubernetes๊ฐ ํ๋๋ฅผ ์ ์ GPU๋ก ์๋ ์ฌ์ค์ผ์ค๋งํฉ๋๋ค. GPU ํ๋๊ฐ ์ฅ์ ๋ฅผ ์ผ์ผํค๋ฉด Kubernetes๊ฐ ์ด๋ฅผ ์ฌ์ฉ ๋ถ๊ฐ ์ํ๋ก ํ์ํ๊ณ ํธ๋ํฝ์ ๋ค๋ฅธ GPU๋ก ๋ผ์ฐํ ํฉ๋๋ค. ์ด์คํ๋ฅผ ํ๋ณดํ์ญ์์ค. GPU 8๊ฐ๊ฐ ํ์ํ๋ค๋ฉด 10๊ฐ๋ฅผ ํ๋ก๋น์ ๋ํ์ญ์์ค.
์ด๋ค ์ง์ฐ ์๊ฐ SLA๋ฅผ ๋ชฉํ๋ก ํด์ผ ํฉ๋๊น?
์ฑ๋ด์ ๊ฒฝ์ฐ p99 ์ง์ฐ ์๊ฐ 2์ด ๋ฏธ๋ง์ด ํ์ค์ ๋๋ค. ์ค์๊ฐ ์๋์์ฑ์ ๊ฒฝ์ฐ p99 500ms ๋ฏธ๋ง. ์ฌ์ฉ์ ๊ฒฝํ์ ๊ธฐ๋ฐ์ผ๋ก SLA๋ฅผ ์ ์ํ ํ, ์ด๋ฅผ ์ถฉ์กฑํ๋ ํ๋์จ์ด์ ๋ฐฐ์น ํฌ๊ธฐ๋ฅผ ์ ํํ์ญ์์ค.
๋ถ์ฐ ์ธํผ๋ฐ์ค ํด๋ฌ์คํฐ๋ฅผ ์ด๋ป๊ฒ ๋ชจ๋ํฐ๋งํฉ๋๊น?
ํ๋๋ณ ๋ฐ ํด๋ฌ์คํฐ ์ ์ฒด ๋จ์๋ก ๋ชจ๋ํฐ๋งํ์ญ์์ค: GPU ์ฌ์ฉ๋ฅ , ํ ๊น์ด, ์ง์ฐ ์๊ฐ (p50/p95/p99), ์ค๋ฅ์จ, ์ฒ๋ฆฌ๋, ๊ฐ๋๋ฅ . Prometheus + Grafana ๋๋ ๋๊ธ ๋๊ตฌ๋ฅผ ํ์ฉํ์ญ์์ค.
์จํ๋ ๋ฏธ์ค ํ์ฅ์ด ํด๋ผ์ฐ๋๋ณด๋ค ์ ๋ ดํฉ๋๊น?
๊ท๋ชจ์์๋ ๊ทธ๋ ์ต๋๋ค. ์์ต๋ถ๊ธฐ์ ์ ์ ์ฝ 50๋ง ํ ํฐ์ ๋๋ค. ์จํ๋ ๋ฏธ์ค: ์ด๊ธฐ ๋น์ฉ์ด ๋๊ณ ($500k~200๋ง ๋ฌ๋ฌ ํ๋์จ์ด), ์์ฒญ๋น ๋น์ฉ์ ๋ฎ์ต๋๋ค. ํด๋ผ์ฐ๋: ์ด๊ธฐ ๋น์ฉ ์์, ์์ฒญ๋น ๋น์ฉ ๋์ ($0.15~60/100๋ง ํ ํฐ).
์ถ์ฒ
- Kubernetes Documentation -- kubernetes.io/docs
- vLLM Deployment Guide -- docs.vllm.ai/en/serving/distributed_serving.html
- Prometheus Monitoring -- prometheus.io