Key Takeaways
- ์๊ท๋ชจ ํ(5~10๋ช ): ๋จ์ผ ์๋ฒ(vLLM) + nginx + ์ธ์ฆ = ํ๋์จ์ด $3K, ์ ์ ๊ธฐ๋ฃ $50.
- ์ค๊ฐ ๊ท๋ชจ ํ(10~50๋ช ): ๋์ผ GPU ํด๋ฌ์คํฐ + ๋ก๋ ๋ฐธ๋ฐ์ + Prometheus ๋ชจ๋ํฐ๋ง = ํ๋์จ์ด $6K, ์ ์ ๊ธฐ๋ฃ $100.
- ๋๊ท๋ชจ ํ(50๋ช ์ด์): ์ด์คํ, ์บ์ฑ ๋ ์ด์ด(Redis), ์๋ ํ์ฅ์ ๊ฐ์ถ ์ํฐํ๋ผ์ด์ฆ ์ค์ = ๋ณ๋ ๊ฒฌ์ .
- ์ฌ์ฉ์๋น ๋น์ฉ: ์ถ๋ก ๋ณผ๋ฅจ์ ๋ฐ๋ผ ์ $10~100(ํด๋ผ์ฐ๋ API ์ $200~500 ๋๋น).
- ์ค์ ์๊ฐ: ๋จ์ผ ์๋ฒ = 1์ผ. ํด๋ฌ์คํฐ = 1์ฃผ. ์ํฐํ๋ผ์ด์ฆ = 1๊ฐ์(๋ณด์ ๊ฐ์ฌ ํฌํจ).
- API ์ธ์ฆ: ์ํฐํ๋ผ์ด์ฆ์ฉ OAuth 2.0(AD/Okta๋ฅผ ํตํ SSO). ์ค์๊ธฐ์ ์ฉ ๊ฐ๋จํ ํ ํฐ ์ธ์ฆ.
- ์ฌ์ฉ๋ ์ถ์ : ๋ชจ๋ ์ฟผ๋ฆฌ๊ฐ ์ฌ์ฉ์ ID, ํ์์คํฌํ, ์์ฑ๋ ํ ํฐ ์์ ํจ๊ป ๊ธฐ๋ก๋ฉ๋๋ค(๋น์ฉ ๊ท์์ฉ).
- ๊ด๋ฆฌ ๋ถ๋ด: ์ต์ํ(์๋ํ๋ ๋ชจ๋ํฐ๋ง). ํ์ฅ ์ด๋ฒคํธ = GPU ์นด๋ ์ถ๊ฐ + ์ฌ์กฐ์ (์ฝ๋ ๋ณ๊ฒฝ ์์).
์ด๋ค ์ํคํ ์ฒ๋ฅผ ์ ํํด์ผ ํฉ๋๊น: ๋จ์ผ ์๋ฒ ๋๋ ๋ฉํฐ GPU ํด๋ฌ์คํฐ?
๋จ์ผ vLLM ์๋ฒ(5~10๋ช ):
- 1ร RTX 4090 + 64GB RAM + 1TB SSD.
- 10๋ช ์ ๋์ ์ฌ์ฉ์ ์ฒ๋ฆฌ(๊ฐ 5 tok/s).
- ๊ฐ๋จํ ์ค์ , ๋จ์ผ ์ฅ์ ์ง์ . ํ๋ ์์ํฌ ์ ํ์ ๋ํด์๋ ๊ฐ๋ฐ์๋ฅผ ์ํ ์ต์ ์ ๋ก์ปฌ LLM ์คํ์ ์ฐธ์กฐํ์ญ์์ค.
- ๋น์ฉ: ํ๋์จ์ด $2,500 + ์ ์ ๊ธฐ๋ฃ $50.
๋์ผ GPU ํด๋ฌ์คํฐ(10~50๋ช ):
- 2ร vLLM ์ธ์คํด์ค(GPU๋น ํ๋) + nginx ๋ก๋ ๋ฐธ๋ฐ์.
- 20๋ช ์ ๋์ ์ฌ์ฉ์ ์ฒ๋ฆฌ(๊ฐ 10 tok/s).
- ์๋ ์ฅ์ ์กฐ์น(GPU 0 ์ฅ์ ์ GPU 1์ด ๊ณ์ ์คํ๋จ). ์์ธํ ๋ด์ฉ์ ์ํฐํ๋ผ์ด์ฆ ๋ก์ปฌ LLM ํ์ฅ์ ์ฐธ์กฐํ์ญ์์ค.
- ๋น์ฉ: ํ๋์จ์ด $5,000 + ์ ์ ๊ธฐ๋ฃ $100.
Redis ์บ์ฑ ๋ ์ด์ด(์ ํ ์ฌํญ):
- ์ผ๋ฐ์ ์ธ ํ๋กฌํํธ ์บ์(์์คํ ๋ฉ์์ง, ํ ํ๋ฆฟ).
- ๋ฐ๋ณต ์ฟผ๋ฆฌ์ ๋ํด ์ง์ฐ ์๊ฐ 30% ๊ฐ์.
- ๋น์ฉ: ์ถ๊ฐ ํ๋์จ์ด $1K.
์ฌ์ฉ์ ์ธ์ฆ ๋ฐ ์ ๊ทผ ์ ์ด๋ฅผ ์ด๋ป๊ฒ ์ค์ ํฉ๋๊น?
๊ฐ๋จํ ์ธ์ฆ(์ค์๊ธฐ์ , 50๋ช ๋ฏธ๋ง): ์ฌ์ฉ์๋น API ํค. ์ฌ์ฉ์๋ ์์ฒญ ํค๋์ `Authorization: Bearer $API_KEY`๋ฅผ ์ ์กํฉ๋๋ค. ๊ท์ ์ค์์ ๋ํด์๋ ๋ก์ปฌ LLM์ ํตํ ์ํฐํ๋ผ์ด์ฆ ๊ท์ ์ค์๋ฅผ ์ฐธ์กฐํ์ญ์์ค.
์ํฐํ๋ผ์ด์ฆ ์ธ์ฆ: Okta/Azure AD์์ OAuth 2.0 + SAML 2.0 ํตํฉ. SSO ๋ก๊ทธ์ธ, ์๋ ๊ทธ๋ฃน ํ ๋น.
์๋ ์ ํ: ์ฌ์ฉ์๋น ํ ํฐ ํ ๋น๋(์: ํ๋ฃจ 10๋ง ํ ํฐ). ํ ํ์ด ์๋ฒ๋ฅผ ๊ณผ๋ํ๊ฒ ์ฌ์ฉํ๋ ๊ฒ์ ๋ฐฉ์งํฉ๋๋ค.
๊ฐ์ฌ ์ถ์ : ๋ชจ๋ API ํธ์ถ์ ์ฌ์ฉ์ ID, IP, ์์ฒญ ํฌ๊ธฐ, ์๋ต ํฌ๊ธฐ, ํ์์คํฌํ์ ํจ๊ป ๊ธฐ๋กํฉ๋๋ค.
๋น์ฉ ๊ท์ ๋ฐ ์ฌ์ฉ๋ ์ธก์ ์ ์ด๋ป๊ฒ ์ถ์ ํฉ๋๊น?
์ถ์ : ์ฌ์ฉ์๋น ํ๋ฃจ ์์ฑ๋ ํ ํฐ ์. ํ ์ ์ฒด๋ฅผ ํฉ์ฐํ์ฌ ์ด ๋น์ฉ์ ์ฐ์ถํฉ๋๋ค. ํ๋ผ์ด๋ฒ์ ์ฐ์ ์ธก์ ์ ๋ํด์๋ ๋ฏผ๊ฐํ ๋ฐ์ดํฐ๋ฅผ ์ํ ํ๋ผ์ด๋น ๋ก์ปฌ LLM์ ์ฐธ์กฐํ์ญ์์ค.
๊ท์: ์๋ฒ ๋น์ฉ์ ๋น๋ก์ ์ผ๋ก ํ ๋นํฉ๋๋ค(์: Alice๊ฐ ํ ํฐ์ 40%๋ฅผ ์์ฑํ๋ฉด ์ฒญ๊ตฌ์์ 40%๋ฅผ ๋ถ๋ดํฉ๋๋ค).
์ผ๋ฐฑ ๋ณด๊ณ ์: ์ฌ์ฉ์๋น ์๊ฐ ๋ณด๊ณ ์: ์ฌ์ฉ๋ ํ ํฐ ์, ์์ ํด๋ผ์ฐ๋ API ๋น์ฉ, ๋ด๋ถ ๋น์ฉ, ์ ๊ฐ์ก.
๋๊ตฌ: Prometheus + ๋ง์ถคํ ์ฒญ๊ตฌ ์๋น์ค. ๋๋ ์คํ ์์ค ์ต์ ์ฌ์ฉ: Metered.io(ํด๋ผ์ฐ๋ ๊ธฐ๋ฐ ๋น์ฉ ์ถ์ ).
ํ ๊ท๋ชจ๊ฐ ์ฆ๊ฐํจ์ ๋ฐ๋ผ ๋ก์ปฌ LLM ์๋ฒ๋ฅผ ์ด๋ป๊ฒ ํ์ฅํฉ๋๊น?
5~10๋ช : 1ร RTX 4090. ์๋ฒ: ๋ชจ๋ ์ฌ๋์ด ๋์์ ์ถ๋ก ์ ์คํํ ๋ ํฌํ ์ํ. ํ์ฉ ๊ฐ๋ฅํ ์ง์ฐ ์๊ฐ ๊ธ๋ฑ.
10~30๋ช : 2ร RTX 4090(๋์ผ GPU ๊ธฐ๊ธฐ). Nginx ๋ก๋ ๋ฐธ๋ฐ์๋ก ๋ถํ๋ฅผ ๋ถ์ฐํฉ๋๋ค. 20๋ช ๋์ ์ ์ = ์์ ์ .
30~100๋ช : 3~4ร GPU ํด๋ฌ์คํฐ(๋ณ๋ ๊ธฐ๊ธฐ) + ์ ์ฉ ๋ก๋ ๋ฐธ๋ฐ์(ํ๋์จ์ด ๋๋ ์ํํธ์จ์ด). Kubernetes ์ ํ ์ฌํญ.
100๋ช ์ด์: ์ํฐํ๋ผ์ด์ฆ ์ํคํ ์ฒ(ํด๋ผ์ฐ๋ ์ฅ์ ์กฐ์น, ์บ์ ๋ ์ด์ด, API ๊ฒ์ดํธ์จ์ด) = ํ์ด๋ธ๋ฆฌ๋(๋ก์ปฌ + ํด๋ผ์ฐ๋ ๋ฒ์คํธ) ๊ณ ๋ ค.
์ฑ๋ฅ์ ์ด๋ป๊ฒ ๋ชจ๋ํฐ๋งํ๊ณ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํฉ๋๊น?
Prometheus ๋ฉํธ๋ฆญ: vLLM์ด ์์ฒญ ์ง์ฐ ์๊ฐ, tokens/sec, ํ ๊ธธ์ด๋ฅผ ๋ด๋ณด๋ ๋๋ค. 15์ด๋ง๋ค ์คํฌ๋ฉํฉ๋๋ค.
Grafana ๋์๋ณด๋: ํ ๊น์ด, ์ง์ฐ ์๊ฐ ๋ฐฑ๋ถ์์(p50, p99), GPU ํ์ฉ๋ฅ ์ ์๊ฐํํฉ๋๋ค.
์๋ฆผ: ์ง์ฐ ์๊ฐ > 2์ด ๋๋ ํ > 10๊ฐ ์์ฒญ์ด๋ฉด ์จ์ฝ ์์ง๋์ด์๊ฒ ํ์ด์ง๋ฅผ ๋ณด๋ ๋๋ค.
๋ก๊ทธ: vLLM + nginx ๋ก๊ทธ๋ฅผ ELK Stack์์ ์ค์ํํฉ๋๋ค. ์ฌ์ฉ์, ํ์์คํฌํ, ์ค๋ฅ๋ก ๊ฒ์ํฉ๋๋ค.
๋ณ๋ชฉ ํ์ ์๋ณ: GPU๊ฐ ํฌํ ์ํ(ํ์ฉ๋ฅ >90%)์ด๊ณ ์ง์ฐ ์๊ฐ > 1์ด์ด๋ฉด GPU๋ฅผ ์ถ๊ฐํฉ๋๋ค. CPU๊ฐ ํฌํ ์ํ์ด๋ฉด CPU๋ฅผ ์ ๊ทธ๋ ์ด๋ํฉ๋๋ค.
์ผ๋ฐ์ ์ธ ์ค์ ์ค์
- ๋จ์ผ ์ฅ์ ์ง์ (GPU ํ๋, ์ฅ์ ์กฐ์น ์์). GPU ์ฅ์ ์ ํ์ด ์ ๊ทผ๊ถ์ ์์ต๋๋ค. ์ต์ ๋์ผ GPU๋ฅผ ์ฌ์ฉํ์ญ์์ค.
- ์๋ ์ ํ ์์. ํ ์ฌ์ฉ์๊ฐ 100๋ง ํ ํฐ ์ถ๋ก ์ ์คํํ๋ฉด ๋ค๋ฅธ ๋ชจ๋ ์ฌ๋์ด ์ฐจ๋จ๋ฉ๋๋ค. ํ ํฐ ํ ๋น๋์ ๊ตฌํํ์ญ์์ค.
- ๊ฐ์ฌ ๋ก๊ทธ ์์. ๋๊ฐ ์ด๋ค ๋ฐ์ดํฐ์ ์ ๊ทผํ๋์ง ์ถ์ ํ ์ ์์ต๋๋ค. ๋ก๊น ์ ๊ท์ ์ค์ ํ์ ํ์์ ๋๋ค.
FAQ
์ ํ๋์จ์ด๋ฅผ ๊ตฌ์ ํ์ง ์๊ณ ์ฌ์ฉ์๋ฅผ ์ถ๊ฐํ ์ ์์ต๋๊น?
GPU๋น ์ต๋ 20~30๋ช ์ ๋์ ์ฌ์ฉ์๊น์ง ๊ฐ๋ฅํฉ๋๋ค. ๊ทธ ์ด์์ด๋ฉด ๋ ๋ฒ์งธ RTX 4090์ ์ถ๊ฐํ๊ณ nginx๋ก ๋ถํ๋ฅผ ์ฌ์กฐ์ ํ์ญ์์ค. RTX 4090 ํ๋๋ ๋์ ์ฌ์ฉ์๋น ์ฝ 5 tok/s๋ฅผ ์ฒ๋ฆฌํฉ๋๋ค.
๋ชจ๋ธ ์ ๋ฐ์ดํธ(์ Llama 3 ๋ณํ ๋ฑ)๋ฅผ ์ด๋ป๊ฒ ์ฒ๋ฆฌํฉ๋๊น?
๋ฐฐํฌ ์ ์ ๋ณ๋์ ๊ธฐ๊ธฐ์์ ์ ๋ชจ๋ธ์ ๋ค์ด๋ก๋ํ๊ณ ํ ์คํธํ์ญ์์ค. vLLM์ ์ ์์ฒญ์ ์ผ์ ์ค์งํ๊ณ , ์งํ ์ค์ธ ์ฟผ๋ฆฌ๋ฅผ ์๋ฃํ ํ ๋ชจ๋ธ ํ์ผ์ ๊ต์ฒดํจ์ผ๋ก์จ ๋ค์ดํ์ ์์ด ๋ชจ๋ธ ํซ ์ค์ํ์ ์ง์ํฉ๋๋ค.
ํ ๋ฐฐํฌ์ Kubernetes๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๊น?
50๋ช ๋ฏธ๋ง์ ์ฌ์ฉ์์๊ฒ๋ ํ์ํ์ง ์์ต๋๋ค. ์ผ๋ฐ Docker + docker-compose๊ฐ ๋ ๋จ์ํ๊ณ ํฌ๋ช ํ๋ฉฐ ์ด์ ์ค๋ฒํค๋๊ฐ ์ ์ต๋๋ค. Kubernetes๋ ์๊ท๋ชจ ํ์๊ฒ๋ ์์ํ๋ ์ด์ ์์ด ๋ณต์ก์ฑ๋ง ์ถ๊ฐํฉ๋๋ค.
ํ ํฐ์ ๊ธฐ๋ฐ์ผ๋ก ์ฌ์ฉ์์๊ฒ ์ฒญ๊ตฌํ ์ ์์ต๋๊น?
๋ค, Prometheus ๋ฉํธ๋ฆญ์ ์ฌ์ฉํ ์ผ๋ฐฑ ๋ณด๊ณ ์๋ฅผ ํตํด ๊ฐ๋ฅํฉ๋๋ค. ์ฌ์ฉ์๋น ํ๋ฃจ ํ ํฐ ์๋ฅผ ์ถ์ ํ๊ณ ์๋ฒ ๋น์ฉ์ ๋น๋ก์ ์ผ๋ก ํ ๋นํ์ญ์์ค. ๋จผ์ ์ ์ฑ ์ ๊ฒฐ์ ํ์ญ์์ค: ํ ์ ์ฒด ๊ณต์ ๋น์ฉ ๋๋ ๊ฐ๋ณ ๋ถ์๋ณ ๋น์ฉ ์ฒญ๊ตฌ.
์ฌ์ฉ์๊ฐ ์ค์๋ก ์๋ฒ์ ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ๋ฉด ์ด๋ป๊ฒ ๋ฉ๋๊น?
๋ชจ๋ ์ ์ถ๋ ฅ ๋ก๊ทธ์ ์ผ์ผ ๋ฐฑ์ ์ ์ธ๋ถ ์คํ ๋ฆฌ์ง์ ์คํํ์ญ์์ค. ํ๋์จ์ด ์ด์คํ๋ฅผ ์ํด RAID 6 ๊ตฌ์ฑ(๋์ ๋๋ผ์ด๋ธ 2๊ฐ ์ฅ์ ์๋ ์์กด)์ ์ฌ์ฉํ์ญ์์ค. ๋ฐฑ์ ์ด ์ ํจํ์ง ํ์ธํ๊ธฐ ์ํด ์๋ณ๋ก ๋ณต๊ตฌ ์ ์ฐจ๋ฅผ ํ ์คํธํ์ญ์์ค.
Slack/Teams์ ํตํฉํ์ฌ ์ฝ๊ฒ ์ ๊ทผํ ์ ์์ต๋๊น?
๋ค. vLLM API๋ฅผ ํธ์ถํ๊ณ ์ฑ๋์ ์๋ต์ ๋ฐํํ๋ Slack ๋ด์ ๊ตฌ์ถํ์ญ์์ค. ์ธ๊ธฐ ์๋ ํตํฉ: vLLM์ OpenAI ํธํ ์๋ํฌ์ธํธ์ ํธํ๋๋ Slack์ฉ OpenAI API ๋ํผ๋ฅผ ์ฌ์ฉํ์ญ์์ค.
์ถ์ฒ
- vLLM ๊ณต์ ๋ฌธ์ โ ๋ค์ค ์ฌ์ฉ์ ์ค์ ๋ฐ ์๋ ์ ํ
- Prometheus ๋ฌธ์ โ ๋ฉํธ๋ฆญ ์์ง ๋ฐ ์๋ฆผ
- Kubernetes ๋ชจ๋ฒ ์ฌ๋ก โ ๋๊ท๋ชจ ๋ฐฐํฌ๋ฅผ ์ํ ์ปจํ ์ด๋ ์ค์ผ์คํธ๋ ์ด์
- ํ ๋ฐฐํฌ์๋ ํ์คํ๋ ํ๋กฌํํ ๊ดํ์ด ํ์ํฉ๋๋ค. ํ ์ ์ฒด ํ๋กฌํํธ ์์ง๋์ด๋ง ํ์ค์ ์๋ฆฝํ์ญ์์ค: ์๊ท๋ชจ ํ์ ์ํ ํ๋กฌํํธ ์์ง๋์ด๋ง ์ค์ ์์๋ ๊ฑฐ๋ฒ๋์ค, ํ ํ๋ฆฟ ๋ฐ ์ํฌํ๋ก์ฐ๋ฅผ ๋ค๋ฃน๋๋ค.