BigQuery ๋น์ฉ ๊ณ์ฐ๊ธฐ๋?
์ด ๊ณ์ฐ๊ธฐ๋ ์จ๋๋งจ๋(On-demand) ์๊ธ์ ๊ธฐ์ค์ผ๋ก ๊ตฌ๊ธ ํด๋ผ์ฐ๋ BigQuery์ ์ ์ฒญ๊ตฌ์ก์ ์ถ์ ํด ์ค๋๋ค. ์จ๋๋งจ๋ ์๊ธ์ ์์๋ ์ฟผ๋ฆฌ๊ฐ ์ค์บํ๋ ๋ฐ์ดํฐ ์๊ณผ ์ ์ฅํด ๋ ์คํ ๋ฆฌ์ง ์ฉ๋์ ๋ฐ๋ผ ๋น์ฉ์ด ๋ถ๊ณผ๋ฉ๋๋ค. ๋ฌด๊ฑฐ์ด ๋ถ์ ์์ ์ ๋๋ฆฌ๊ธฐ ์ ์ ๋น์ฉ์ ๋ฏธ๋ฆฌ ๊ฐ๋ ํ๊ณ , ๋์ฉ๋ ํ ์ด๋ธ์ ๋ฐ๋ณตํด์ ์ค์บํ ๋ ๋ฐ์ํ๋ ๋ถ๋ด์ ํ๋์ ํ์ ํ๋ ๋ฐ ์ ์ฉํฉ๋๋ค. BigQuery ์๊ธ์ ๋ฆฌ์ (region)๋ณ๋ก ๋ค๋ฅด๋ฉฐ ๊ตฌ๊ธ ํด๋ผ์ฐ๋๊ฐ USD(๋ฏธ๊ตญ ๋ฌ๋ฌ) ๊ธฐ์ค์ผ๋ก ์ฑ ์ ํฉ๋๋ค. ๋ฐ๋ผ์ ๋ณธ์ธ ํ๋ก์ ํธ์ ๋ฆฌ์ ์ ์ ์ฉ๋๋ ์์จ์ ์ง์ ์ ๋ ฅํด ์ฃผ์ธ์.
์ฌ์ฉ ๋ฐฉ๋ฒ
๋จผ์ ์ฟผ๋ฆฌ๋น ํ๊ท ์ค์บ ๋ฐ์ดํฐ๋ฅผ ํ ๋ผ๋ฐ์ดํธ(TB) ๋จ์๋ก ์ ๋ ฅํ๊ณ , ์๊ฐ ์ฟผ๋ฆฌ ์คํ ํ์์ ์จ๋๋งจ๋ TB๋น ์ฟผ๋ฆฌ ์๊ธ(๊ตฌ๊ธ ๊ธฐ๋ณธ๊ฐ์ ๋ค์ ๋ฆฌ์ ์์ ์ฝ $6.25/TB)์ ์ ๋ ฅํฉ๋๋ค. ์ด์ด์ ๋ฌด๋ฃ ์ฟผ๋ฆฌ ์ฌ์ฉ๋(๋ณดํต ์ ์ต์ด 1TB๋ ๋ฌด๋ฃ)์ ์ถ๊ฐํ ๋ค, ํ์ฑ ์คํ ๋ฆฌ์ง(active storage) ์ฉ๋(GB)๊ณผ GBยท์๋น ์คํ ๋ฆฌ์ง ์๊ธ(ํ์ฑ ์คํ ๋ฆฌ์ง ๊ธฐ์ค ์ฝ $0.02)์ ์ ๋ ฅํ์ธ์. ๊ณ์ฐ๊ธฐ๋ ๊ณผ๊ธ ๋์ ๋ฐ์ดํฐ์ ์ฟผ๋ฆฌ ์๊ธ์ ๊ณฑํ ๋ค ์คํ ๋ฆฌ์ง ๋น์ฉ์ ๋ํด ์ค๋๋ค.
๊ณ์ฐ ๊ณต์ ํ์ด
์ด ์ค์บ๋ = ์ฟผ๋ฆฌ๋น ๋ฐ์ดํฐ ร ์ฟผ๋ฆฌ ํ์. ๊ณผ๊ธ ๋์ ์ค์บ๋ = ์ด ์ค์บ๋ โ ๋ฌด๋ฃ ์ฌ์ฉ๋(0 ๋ฏธ๋ง์ผ๋ก ๋ด๋ ค๊ฐ์ง ์์). ์ฟผ๋ฆฌ ๋น์ฉ = ๊ณผ๊ธ ๋์ ์ค์บ๋ ร TB๋น ์๊ธ. ์คํ ๋ฆฌ์ง ๋น์ฉ = ์คํ ๋ฆฌ์ง GB ร GB๋น ์๊ธ. ์ ์์ ๋น์ฉ = ์ฟผ๋ฆฌ ๋น์ฉ + ์คํ ๋ฆฌ์ง ๋น์ฉ.
$$\text{Total Cost} = \max\!\left(Q \cdot D - F,\; 0\right) \cdot P_q \;+\; S \cdot P_s$$ $$\text{where}\quad \left\{ \begin{aligned} D &= \text{Data Scanned (TB)} \\ Q &= \text{Queries / Month} \\ F &= \text{Free Tier (TB)} \\ P_q &= \text{Query Price (\$/TB)} \\ S &= \text{Storage (GB)} \\ P_s &= \text{Storage Price (\$/GB)} \end{aligned} \right.$$
์ค์ ๊ณ์ฐ ์์
์ฟผ๋ฆฌ ํ ๊ฑด์ด 1TB๋ฅผ ์ค์บํ๊ณ , ์ 1,000๊ฑด์ ์ฟผ๋ฆฌ๋ฅผ ์คํํ๋ฉฐ, ์๊ธ์ด $6.25/TB, ๋ฌด๋ฃ ์ฌ์ฉ๋์ด 1TB๋ผ๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค. ์ด ์ค์บ๋์ 1,000TB์ด๊ณ , ๊ณผ๊ธ ๋์์ 999TB์ด๋ฏ๋ก ์ฟผ๋ฆฌ ๋น์ฉ์ \(999 \times \$6.25 = \$6{,}243.75\)์ ๋๋ค. ์ฌ๊ธฐ์ ์คํ ๋ฆฌ์ง 1,000GB๋ฅผ $0.02/GB๋ก ๊ณ์ฐํ๋ฉด $20์ด ๋ฉ๋๋ค. ๋ฐ๋ผ์ ํฉ๊ณ๋ ์ $6,263.75์ ๋๋ค.
BigQuery ์จ๋๋งจ๋ ์๊ธ ์ฐธ๊ณ ์๋ฃ
Google BigQuery์ ์จ๋๋งจ๋ ๋ชจ๋ธ์ ๊ฐ ์ฟผ๋ฆฌ๊ฐ ์ค์บํ๋ ๋ฐ์ดํฐ ์์ ๋ฐ๋ผ ์๊ธ์ ๋ถ๊ณผํ๋ฉฐ, ์ ์ฅ๋ ๋ฐ์ดํฐ์ ๋ํด ๋ณ๋์ ์๊ฐ ์๊ธ์ ๋ถ๊ณผํฉ๋๋ค. ์๋์ ์๊ธ์ ๋ฏธ๊ตญ ๋ค์ค ์ง์ญ์ ๋ํด ๋๋ฆฌ ๊ณต์๋ ์ ๊ฐ์ด๋ฉฐ USD ๊ธฐ์ค์ ๋๋ค. ์ง์ญ๋ง๋ค ์๊ธ์ด ๋ค๋ฆ ๋๋ค(์: ์ผ๋ถ ์ง์ญ์ TB๋น ๋ ๋์ ์๊ธ ์ฒญ๊ตฌ). ๋ฐ๋ผ์ ํญ์ ํ์ฌ Google Cloud ์๊ธ ํ์ด์ง์ ์ฒญ๊ตฌ ์ง์ญ์ ๊ธฐ์ค์ผ๋ก ํ์ธํ์ธ์.
| ํญ๋ชฉ | ๊ณต์ ์๊ธ (๋ฏธ๊ตญ) | ์ค๋ช |
|---|---|---|
| ์จ๋๋งจ๋ ์ฟผ๋ฆฌ ์๊ธ | ~$6.25 / TB ์ค์บ | ์ฒ๋ฆฌํ ๋ฐ์ดํธ ๊ธฐ์ค ์ฒญ๊ตฌ, ์ฌ๋ฆผ; ์ฟผ๋ฆฌ๋น ์ต์ 10 MB |
| ํ์ฑ ์ ์ฅ์ | ~$0.02 / GB / ์ | ์ง๋ 90์ผ ์ด๋ด์ ์์ ๋ ํ ์ด๋ธ ๋๋ ํํฐ์ |
| ์ฅ๊ธฐ ์ ์ฅ์ | ~$0.01 / GB / ์ | 90์ผ ์ฐ์ ๋ฏธ์์ ๋ฐ์ดํฐ (~50% ํ ์ธ) |
| ๋ฌด๋ฃ ์ฟผ๋ฆฌ ํ๋ | 1 TB / ์ | ๋งค์ ์ฒ์ 1 TB์ ์ฟผ๋ฆฌ ๋ฐ์ดํฐ๋ ๋ฌด๋ฃ |
| ๋ฌด๋ฃ ์ ์ฅ์ ํ๋ | 10 GB / ์ | ๋งค์ ์ฒ์ 10 GB์ ์ ์ฅ์๋ ๋ฌด๋ฃ |
๋น์ฉ ๊ณต์์์ ์ฟผ๋ฆฌ ์๊ธ์ \(P_q\) ($/TB)๋ก, ์ ์ฅ์ ์๊ธ์ \(P_s\) ($/GB)๋ก, ๋ฌด๋ฃ ์ฟผ๋ฆฌ ํ๋๋ \(F\) (TB)๋ก, ์ ์ฅ๋ ๋ฐ์ดํฐ ์์ \(S\) (GB)๋ก ๋งคํ๋ฉ๋๋ค. ๋ฐ์ดํฐ ๋ก๋ฉ, ๋ณต์ฌ ๋ฐ ๋ด๋ณด๋ด๊ธฐ๋ ์ผ๋ฐ์ ์ผ๋ก ๋ฌด๋ฃ์ด์ง๋ง ์คํธ๋ฆฌ๋ฐ ์ฝ์ ๋ฐ ๊ธฐํ ์ผ๋ถ ์์ ์๋ ์ฌ๊ธฐ์ ๋ชจ๋ธ๋งํ์ง ์์ ์์ฒด ์๊ธ์ด ์์ต๋๋ค.
์ผ๋ฐ์ ์ธ ์ํฌ๋ก๋ ์๋๋ฆฌ์ค๋ณ ๋น์ฉ
์๋ ํ๋ ๊ณต์ \(\text{์ด ๋น์ฉ} = \max(Q\cdot D - F,\,0)\cdot P_q + S\cdot P_s\)๋ฅผ ์ฟผ๋ฆฌ ๊ฐ๊ฒฉ $6.25/TB, 1 TB ๋ฌด๋ฃ ํ๋, ์ ์ฅ์ 500 GB ๊ณ ์ , ์ ์ฅ์ ์๊ธ $0.02/GB/์ (๋ชจ๋ ํ์์ $10.00 ์ ์ฅ์ ์๊ธ)์ ์ฌ์ฉํ์ฌ ์ ์ฉํฉ๋๋ค. ๋งค์ ์ด ์ค์บ ๋ฐ์ดํฐ๋ \(Q\cdot D\)์ ๋๋ค.
| ์๋๋ฆฌ์ค | ๋ฐ์ดํฐ / ์ฟผ๋ฆฌ | ์ ์ฟผ๋ฆฌ ์ | ์ด ์ค์บ | ์ฒญ๊ตฌ ๋์ (1 TB ๋ฌด๋ฃ ํ) | ์ฟผ๋ฆฌ ๋น์ฉ | ์ ์ฅ์ ๋น์ฉ | ์ ์ด ๋น์ฉ |
|---|---|---|---|---|---|---|---|
| ๊ฒฝ๋ | 0.1 TB | 200 | 20 TB | 19 TB | $118.75 | $10.00 | $128.75 |
| ์ค๊ฐ | 1 TB | 1,000 | 1,000 TB | 999 TB | $6,243.75 | $10.00 | $6,253.75 |
| ๋์ฉ๋ | 5 TB | 2,000 | 10,000 TB | 9,999 TB | $62,493.75 | $10.00 | $62,503.75 |
๊ฒฝ๋ ์๋๋ฆฌ์ค์ ์ฟผ๋ฆฌ ๋น์ฉ์ \((200 \times 0.1 - 1) \times 6.25 = 19 \times 6.25 = \$118.75\)๋ก ๊ณ์ฐ๋๊ณ , \(500 \times 0.02 = \$10.00\) ์ ์ฅ์ ๋น์ฉ์ด ๋ํด์ง๋๋ค. ์ด ์์น๋ ๋์ฉ๋ ์ํฌ๋ก๋์ ๊ฒฝ์ฐ ์ฟผ๋ฆฌ(์ค์บ) ๋น์ฉ์ด ์ ์ฅ์๋ฅผ ํจ์ฌ ์ด๊ณผํจ์ ๋ช ํํ ๋ณด์ฌ์ค๋๋ค. ๋น์ฉ ์ ๊ฐ์ ์ค์บ๋ ๋ฐ์ดํธ๋ฅผ ์ ์ดํ๋ ๋ฐ ์์ต๋๋ค.
์ฃผ์ ์ฉ์ด ์ค๋ช
- ์ค์บ๋ ๋ฐ์ดํฐ / ์ฒ๋ฆฌ ๋ฐ์ดํธ (\(D\))
- ์ฟผ๋ฆฌ๊ฐ ์ฝ๋ ํ ์ด๋ธ ๋ฐ์ดํฐ์ ์์ผ๋ก, ๋ฐ์ดํธ ๋จ์๋ก ์ธก์ ํ๋ฉฐ TB๋น ์ฒญ๊ตฌ๋ฉ๋๋ค. BigQuery๋ ๋ฐํ๋ ํ ์์ ๊ด๊ณ์์ด ์ฒ๋ฆฌ๋ ๋ฐ์ดํธ๋ฅผ ๊ธฐ์ค์ผ๋ก ์ฒญ๊ตฌํฉ๋๋ค. ๋ ์ ์ ์ด์ ์ ํํ๋ฉด ๋ ์ ์ ๋ฐ์ดํธ๋ฅผ ์ฝ์ต๋๋ค.
- ์ ์ฟผ๋ฆฌ ์ (\(Q\))
- ๋งค์ ์คํํ๋ ์ฟผ๋ฆฌ ์์ ๋๋ค. ์ด ์ค์บ ๋ฐ์ดํฐ๋ \(Q \cdot D\)์ด๋ฉฐ, ์ฟผ๋ฆฌ ๊ฐ๊ฒฉ \(P_q\)๋ฅผ ์ ์ฉํ๊ธฐ ์ ์ ๋ฌด๋ฃ ํ๋ \(F\)๋ฅผ ๋นผ์ง๋๋ค.
- ์จ๋๋งจ๋ vs. ์ฉ๋ (์ฌ๋กฏ)
- ์จ๋๋งจ๋๋ ์ค์บ๋ TB๋น ์ฒญ๊ตฌํฉ๋๋ค (์ด ๊ณ์ฐ๊ธฐ์ ๋ชจ๋ธ). ์ฉ๋ ์๊ธ์ ๋์ ์ฌ๋กฏ์ด๋ผ๋ ์ปดํจํ ๋จ์๋ฅผ ์ ์ก ์๊ฐ ๋๋ ์ฝ์ ์๊ธ์ผ๋ก ์์ฝํ์ฌ ๋น์ฉ์ ์ค์บ๋ ๋ฐ์ดํธ์ ๋ถ๋ฆฌํฉ๋๋ค. ์์ ์ ์ด๊ณ ๋์ฉ๋ ์ฌ์ฉ์ ๋ ์ ํฉํฉ๋๋ค.
- ํ์ฑ ์ ์ฅ์ vs. ์ฅ๊ธฐ ์ ์ฅ์
- ํ ์ด๋ธ ๋๋ ํํฐ์ ์ด ์ง๋ 90์ผ ์ด๋ด์ ์์ ๋๋ ๋์ ํ์ฑ ์ ์ฅ์์ ๋๋ค (~$0.02/GB). 90์ผ ์ฐ์ ๋ฏธ์์ ์ํ์ด๋ฉด ์ฝ ์ ๋ฐ ์๊ธ์ ์ฅ๊ธฐ ์ ์ฅ์(~$0.01/GB)๊ฐ ๋๋ฉฐ, ์ฑ๋ฅ์๋ ๋ณํ๊ฐ ์์ต๋๋ค.
- ๋ฌด๋ฃ ํ๋ (\(F\))
- ๋งค์ BigQuery๋ ์ฟผ๋ฆฌ ์ฒ๋ฆฌ 1 TB์ ์ ์ฅ์ 10 GB๋ฅผ ๋ฌด๋ฃ๋ก ์ ๊ณตํฉ๋๋ค. ๊ณต์์์ \(F\)๋ ์ด ์ค์บ ๋ฐ์ดํฐ์์ ๋บ ๋ฌด๋ฃ ์ฟผ๋ฆฌ ํ๋์ด๋ฉฐ, 0 ์ด์์ ๋๋ค.
- ํํฐ์ ๋ ๋ฐ ํด๋ฌ์คํฐ๋ง
- ํ ์ด๋ธ์ ์ ๋ ฌํ์ฌ ์ฟผ๋ฆฌ๊ฐ ๊ด๋ จ ์ธ๊ทธ๋จผํธ๋ง ์ฝ๋๋ก ํ๋ ๊ธฐ๋ฒ์ ๋๋ค. ํจ๊ณผ์ ์ธ ํํฐ์ ๋(์: ๋ ์ง๋ณ)๊ณผ ํด๋ฌ์คํฐ๋ง์ \(D\) (์ค์บ๋ ๋ฐ์ดํธ)๋ฅผ ๊ฐ์์์ผ ์จ๋๋งจ๋ ๋น์ฉ์ ์ง์ ๋ฎ์ถฅ๋๋ค.
- ์ง์ญ
- ๋ฐ์ดํฐ์ ์ ์ง๋ฆฌ์ ์์น์ ๋๋ค. TB๋น ์ฟผ๋ฆฌ ์๊ธ๊ณผ GB๋น ์ ์ฅ์ ์๊ธ์ ์ง์ญ๋ง๋ค ๋ค๋ฆ ๋๋ค. ์ด ๋๊ตฌ์ \(P_q\)์ \(P_s\)๋ ๋ฐ์ดํฐ๊ฐ ์๋ ์ง์ญ๊ณผ ์ผ์นํด์ผ ํฉ๋๋ค.
์์ฃผ ๋ฌป๋ ์ง๋ฌธ
์ค์ ์ฒญ๊ตฌ์ก๊ณผ ์ ํํ ์ผ์นํ๋์? ์๋๋๋ค. ์ด๋๊น์ง๋ ์ถ์ ์น์ ๋๋ค. ์ค์ BigQuery ๋น์ฉ์ ๋ฆฌ์ , ์๋์ (์จ๋๋งจ๋ vs. ์ฉ๋/์ฌ๋กฏ ๊ธฐ๋ฐ), ์ฅ๊ธฐ ์คํ ๋ฆฌ์ง์ ํ์ฑ ์คํ ๋ฆฌ์ง ๊ฐ ํ ์ธ, MB ๋จ์ ๋ฐ์ฌ๋ฆผ ๋ฑ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋๋ค.
์ฟผ๋ฆฌ ๋น์ฉ์ ์ค์ด๋ ค๋ฉด ์ด๋ป๊ฒ ํ๋์? ํ์ํ ์ปฌ๋ผ๋ง ์ ํํ๊ณ , ํ ์ด๋ธ์ ํํฐ์ ๋ยทํด๋ฌ์คํฐ๋งํ๋ฉฐ, LIMIT์ ์ ์คํ๊ฒ ์ฌ์ฉํ์ธ์(LIMIT์ ์ค์บ๋๋ ๋ฐ์ดํธ ์๋ฅผ ์ค์ด์ง ์์ต๋๋ค). ๋ํ ์คํ ์ ์ ์ฟผ๋ฆฌ ์ ํจ์ฑ ๊ฒ์ฌ๊ธฐ๋ก ์ค์บ๋ ๋ฐ์ดํธ ์์ ๋ฏธ๋ฆฌ ํ์ธํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
๋ฌด๋ฃ ์ฌ์ฉ๋์ ์ด๊ธฐํ๋๋์? ์จ๋๋งจ๋ ๋ฌด๋ฃ ๋ถ์ ์ฌ์ฉ๋(๋ณดํต 1TB)์ ๋งค์ ์ด๊ธฐํ๋ฉ๋๋ค. ๊ณ์ ์ ๋ ์ด์ ์ ์ฉ๋์ง ์๋๋ค๋ฉด 0์ผ๋ก ์ค์ ํ์ธ์.