์๋ฒ๋ฆฌ์ค / Lambda ๋น์ฉ ๊ณ์ฐ๊ธฐ๋?
์ด ๊ณ์ฐ๊ธฐ๋ AWS Lambda, Google Cloud Functions, Azure Functions ๊ฐ์ ์๋ฒ๋ฆฌ์ค ํจ์๋ฅผ ์ด์ํ ๋ ๋๋ ์๊ฐ ๋น์ฉ์ ์์ธกํด ์ค๋๋ค. ์๋ฒ๋ฆฌ์ค ํ๋ซํผ์ ๋ณดํต ๋ ๊ฐ์ง ๊ธฐ์ค์ผ๋ก ์๊ธ์ ๋งค๊น๋๋ค. ํ๋๋ ์์ฒญ(ํธ์ถ) ํ ๊ฑด๋น ๋ถ๊ณผ๋๋ ์์ก์ ์๊ธ์ด๊ณ , ๋ค๋ฅธ ํ๋๋ GB-์ด ๋จ์๋ก ์ธก์ ๋๋ ์ปดํจํ ์๊ธ์ ๋๋ค. GB-์ด๋ ํจ์์ ํ ๋นํ ๋ฉ๋ชจ๋ฆฌ์ ์ค์ ์คํ ์๊ฐ์ ๊ณฑํ ๊ฐ์ ๋๋ค. ์์ ํธ๋ํฝ, ํ๊ท ์คํ ์๊ฐ, ๋ฉ๋ชจ๋ฆฌ ํฌ๊ธฐ, ๊ทธ๋ฆฌ๊ณ ์ฌ์ฉ ์ค์ธ ํด๋ผ์ฐ๋ ์ ๊ณต์ ์ฒด์ ๋จ๊ฐ๋ฅผ ์ ๋ ฅํ๋ฉด ๋ฐฐํฌํ๊ธฐ ์ ์ ์ ๋น์ฉ์ ํ๋์ ๊ฐ๋ ํด ๋ณผ ์ ์์ต๋๋ค. ์ฐธ๊ณ ๋ก ์๋ ๋จ๊ฐ๋ ๋ฏธ๊ตญ ๋ฌ๋ฌ(USD) ๊ธฐ์ค ๊ธ๋ก๋ฒ ํด๋ผ์ฐ๋ ์๊ธ์ ๋ฐ๋ฅด๋ฉฐ, ๊ตญ๋ด ๊ฒฐ์ ์ ํ์จ๊ณผ ๋ถ๊ฐ์ธ๊ฐ ๋ณ๋๋ก ์ ์ฉ๋ ์ ์์ต๋๋ค.
์ฌ์ฉ ๋ฐฉ๋ฒ
๋จผ์ ์์๋๋ ์๊ฐ ์์ฒญ ์, ํธ์ถ 1๊ฑด๋น ํ๊ท ์คํ ์๊ฐ(๋ฐ๋ฆฌ์ด, ms), ๊ทธ๋ฆฌ๊ณ ํ ๋นํ ๋ฉ๋ชจ๋ฆฌ(MB)๋ฅผ ์ ๋ ฅํ์ธ์. ์ด์ด์ ์ฌ์ฉ ์ค์ธ ์ ๊ณต์ ์ฒด์ ์์ฒญ๋น ๋จ๊ฐ์ GB-์ด๋น ๋จ๊ฐ๋ฅผ ์ ๋ ฅํฉ๋๋ค. ๊ธฐ๋ณธ๊ฐ์ AWS Lambda ์จ๋๋งจ๋ ์๊ธ(์์ฒญ 100๋ง ๊ฑด๋น $0.20, GB-์ด๋น ์ฝ $0.0000166667)์ ๊ฐ๊น๊ฒ ์ค์ ๋์ด ์์ต๋๋ค. ์ค์ ๋น์ฉ์ ๊ณ์ฐํ ๋๋ ๋ฐ๋์ ๋ณธ์ธ์ด ์ฌ์ฉํ๋ ๋ฆฌ์ ๊ณผ ์ ๊ณต์ ์ฒด์ ์ต์ ์๊ธ์ ์ง์ ํ์ธํ์ธ์.
๊ณ์ฐ ๊ณต์ ํ์ด
๋น์ฉ = ์์ฒญ ์ ร ์์ฒญ๋น ๋จ๊ฐ + (์์ฒญ ์ ร ์คํ ์๊ฐ(์ด) ร ๋ฉ๋ชจ๋ฆฌ(GB)) ร GB-์ด๋น ๋จ๊ฐ. ์คํ ์๊ฐ์ ๋ฐ๋ฆฌ์ด์์ ์ด๋ก(รท1000), ๋ฉ๋ชจ๋ฆฌ๋ MB์์ GB๋ก(รท1024) ๋ณํํฉ๋๋ค. ๊ฐ์ด๋ฐ ํญ์ด ์ ์ฒด GB-์ด๋ฅผ ๋ํ๋ด๋ฉฐ, ์ปดํจํ ์๊ธ์ ๋ฐ๋ก ์ด ๊ฐ์ ๊ธฐ์ค์ผ๋ก ๋ถ๊ณผ๋ฉ๋๋ค.
$$\text{Cost} = R \cdot p_r + \left(R \cdot \frac{d}{1000} \cdot \frac{m}{1024}\right) \cdot p_g$$$$\text{where}\quad \left\{ \begin{aligned} R &= \text{Monthly Requests} \\ p_r &= \text{Price per Request} \\ d &= \text{Avg Duration (ms)} \\ m &= \text{Memory (MB)} \\ p_g &= \text{Price per GB-second} \end{aligned} \right.$$
๊ณ์ฐ ์์
์์ฒญ 100๋ง ๊ฑด, ํ๊ท ์คํ ์๊ฐ 200ms, ๋ฉ๋ชจ๋ฆฌ 512MB, ์์ฒญ๋น $0.0000002, GB-์ด๋น $0.0000166667์ธ ๊ฒฝ์ฐ๋ฅผ ์ดํด๋ด ์๋ค. ์์ฒญ ์๊ธ = \(1{,}000{,}000 \times 0.0000002 = \$0.20\). GB-์ด = \(1{,}000{,}000 \times 0.2 \times 0.5 = 100{,}000\). ์ปดํจํ ์๊ธ = \(100{,}000 \times 0.0000166667 \approx \$1.67\). ๋ฐ๋ผ์ ์ ์ด๋น์ฉ์ ์ฝ $1.87์ ๋๋ค.
$$\text{Cost} = 1{,}000{,}000 \times 0.0000002 + \left(1{,}000{,}000 \cdot \frac{200}{1000} \cdot \frac{512}{1024}\right) \times 0.0000166667 \approx \$1.87$$
์์ฃผ ๋ฌป๋ ์ง๋ฌธ
๋ฌด๋ฃ ์ฌ์ฉ๋(ํ๋ฆฌ ํฐ์ด)์ด ๋ฐ์๋๋์? ์๋์. ์ด ๊ณ์ฐ๊ธฐ๋ ํ ์ธ ์ ์๋ ๋น์ฉ๋ง ๋ณด์ฌ์ค๋๋ค. AWS Lambda๋ ๋งค์ ์์ฒญ 100๋ง ๊ฑด๊ณผ GB-์ด 40๋ง ๊ฑด์ ์๊ตฌ ๋ฌด๋ฃ๋ก ์ ๊ณตํ๋ ํ๋ฆฌ ํฐ์ด๊ฐ ์์ผ๋ฉฐ, ์ด ๋ถ๋ถ์ ๋ณ๋๋ก ์ฐจ๊ฐํด์ ์๊ฐํ์ ์ผ ํฉ๋๋ค.
๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ 1024๋ก ๋๋๋์? ์๊ธ์ด GB-์ด ๋จ์๋ก ๋ถ๊ณผ๋๊ณ \(1\,\text{GB} = 1024\,\text{MB}\)์ด๊ธฐ ๋๋ฌธ์ ๋๋ค. ๊ทธ๋์ GB-์ด๋ฅผ ๊ณ์ฐํ๊ธฐ ์ ์ MB ๋จ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ GB๋ก ๋ณํํฉ๋๋ค.
๋ฐ์ดํฐ ์ ์ก์ด๋ ์คํ ๋ฆฌ์ง ๋น์ฉ๋ ํฌํจ๋๋์? ์๋์. ์ด ๊ณ์ฐ๊ธฐ๋ ํธ์ถ ์๊ธ๊ณผ ์ปดํจํ ์๊ธ๋ง ์ถ์ ํฉ๋๋ค. ๋ฐ์ดํฐ ์ก์ (egress), ๋ก๊น , ์คํ ๋ฆฌ์ง ๋น์ฉ์ ๋ณ๋๋ก ์ฒญ๊ตฌ๋ฉ๋๋ค.