๋ก๋ ๋ฐธ๋ฐ์ฑ ๊ธฐ์ ๊ณผ ๋๊ตฌ์ ๋ํ ํฌ๊ด์ ์ธ ๊ฐ์ด๋๋ก, ์ต์ ์ ์ ํ๋ฆฌ์ผ์ด์ ์ฑ๋ฅ๊ณผ ๊ฐ์ฉ์ฑ์ ๋ณด์ฅํ๊ธฐ ์ํ ๋ค์ํ ์๊ณ ๋ฆฌ์ฆ๊ณผ ์ํํธ์จ์ด ์๋ฃจ์ ์ ์ดํด๋ด ๋๋ค.
๋ก๋ ๋ฐธ๋ฐ์ฑ: ์ต์ ์ ์ฑ๋ฅ์ ์ํ ๊ธฐ์ ๋ฐ ๋๊ตฌ
์ค๋๋ ์ ๋์งํธ ํ๊ฒฝ์์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฐ์ค๋ฌดํด 24์๊ฐ ์ฌ์ฉ ๊ฐ๋ฅํด์ผ ํ๋ฏ๋ก, ์ต์ ์ ์ฑ๋ฅ๊ณผ ๊ณ ๊ฐ์ฉ์ฑ์ ๋ณด์ฅํ๋ ๊ฒ์ด ๋ฌด์๋ณด๋ค ์ค์ํฉ๋๋ค. ๋ก๋ ๋ฐธ๋ฐ์ฑ์ ์ฌ๋ฌ ์๋ฒ์ ๋คํธ์ํฌ ํธ๋ํฝ์ ๋ถ์ฐํ์ฌ ๋จ์ผ ์๋ฒ๊ฐ ๊ณผ๋ถํ๋๋ ๊ฒ์ ๋ฐฉ์งํ๋ ํต์ฌ ๊ธฐ์ ์ ๋๋ค. ์ด๋ ์๋ต ์๊ฐ์ ๊ฐ์ ํ ๋ฟ๋ง ์๋๋ผ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ๋ฐ์ ์ธ ์์ ์ฑ๊ณผ ํ์ฅ์ฑ์ ํฅ์์ํต๋๋ค.
๋ก๋ ๋ฐธ๋ฐ์ฑ์ด๋ ๋ฌด์์ธ๊ฐ?
๋ก๋ ๋ฐธ๋ฐ์ฑ์ ์ฌ๋ฌ ์๋ฒ์ ๋คํธ์ํฌ ํธ๋ํฝ์ ๋ถ์ฐํ๋ ํ๋ก์ธ์ค์ ๋๋ค. ๋ชจ๋ ์์ฒญ์ ๋จ์ผ ์๋ฒ๋ก ๋ณด๋ด๋ ๋์ , ๋ก๋ ๋ฐธ๋ฐ์๋ ํธ๋ํฝ ๊ด๋ฆฌ์ ์ญํ ์ ํ์ฌ ๋ค์ํ ๊ธฐ์ค์ ๋ฐ๋ผ ์์ฒญ์ ๋ค๋ฅธ ์๋ฒ๋ก ๋ณด๋ ๋๋ค. ์ด๋ ๋จ์ผ ์๋ฒ๊ฐ ๋ณ๋ชฉ ํ์์ ์ผ์ผํค๋ ๊ฒ์ ๋ฐฉ์งํ๊ณ ๋ชจ๋ ์๋ฒ๊ฐ ํจ์จ์ ์ผ๋ก ํ์ฉ๋๋๋ก ๋ณด์ฅํฉ๋๋ค.
๋ง์ ๊ณ ๊ฐ์ด ์๋ฆฌ๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ ๋ถ๋น๋ ๋ ์คํ ๋์ ์๊ฐํด๋ณด์ญ์์ค. ๋ชจ๋ ๊ณ ๊ฐ์ด ๋จ์ผ ํ ์ด๋ธ์ ๊ธฐ๋ค๋ฆฌ๊ฒ ํ๋ ๋์ , ํธ์คํธ๋ ๋ ์คํ ๋ ์ ์ฒด์ ์ด์ฉ ๊ฐ๋ฅํ ํ ์ด๋ธ๋ก ๊ณ ๊ฐ์ ๋ถ์ฐ์ํต๋๋ค. ์ด๋ ๋ชจ๋ ํ ์ด๋ธ์ด ํ์ฉ๋๊ณ ๋จ์ผ ํ ์ด๋ธ์ ์๋์ด ๋ชฐ๋ฆฌ์ง ์๋๋ก ๋ณด์ฅํฉ๋๋ค.
๋ก๋ ๋ฐธ๋ฐ์ฑ์ด ์ค์ํ ์ด์ ๋ ๋ฌด์์ธ๊ฐ?
๋ก๋ ๋ฐธ๋ฐ์ฑ์ ๋ค์๊ณผ ๊ฐ์ ๋ช ๊ฐ์ง ์ฃผ์ ์ด์ ์ ์ ๊ณตํฉ๋๋ค:
- ์ฑ๋ฅ ํฅ์: ํธ๋ํฝ์ ๋ถ์ฐํจ์ผ๋ก์จ ๋ก๋ ๋ฐธ๋ฐ์ฑ์ ์๋ฒ ๊ณผ๋ถํ๋ฅผ ๋ฐฉ์งํ๊ณ ์๋ต ์๊ฐ์ ๋จ์ถํฉ๋๋ค.
- ๊ฐ์ฉ์ฑ ์ฆ๋: ํ ์๋ฒ์ ์ฅ์ ๊ฐ ๋ฐ์ํ๋ฉด ๋ก๋ ๋ฐธ๋ฐ์๊ฐ ์๋์ผ๋ก ๋๋จธ์ง ์ ์ ์๋ฒ๋ก ํธ๋ํฝ์ ์ฌ์ ์กํ์ฌ ์ง์์ ์ธ ์๋น์ค๋ฅผ ๋ณด์ฅํฉ๋๋ค.
- ํ์ฅ์ฑ: ๋ก๋ ๋ฐธ๋ฐ์ฑ์ ์ฌ์ฉํ๋ฉด ๋ณํํ๋ ํธ๋ํฝ ์๊ตฌ์ ๋ง์ถฐ ํ์์ ๋ฐ๋ผ ์๋ฒ๋ฅผ ์ฝ๊ฒ ์ถ๊ฐํ๊ฑฐ๋ ์ ๊ฑฐํ ์ ์์ต๋๋ค.
- ๋ค์ดํ์ ๊ฐ์: ์๋ฒ ๊ณผ๋ถํ๋ฅผ ๋ฐฉ์งํ๊ณ ์๋ ์ฅ์ ์กฐ์น๋ฅผ ์ ๊ณตํจ์ผ๋ก์จ ๋ก๋ ๋ฐธ๋ฐ์ฑ์ ๋ค์ดํ์์ ์ต์ํํฉ๋๋ค.
- ๋ณด์ ๊ฐํ: ๋ก๋ ๋ฐธ๋ฐ์๋ SSL ์ข ๋ฃ ๋ฐ DDoS ๋ฐฉ์ด์ ๊ฐ์ ์ถ๊ฐ์ ์ธ ๋ณด์ ๊ธฐ๋ฅ์ ์ ๊ณตํ ์ ์์ต๋๋ค.
๋ก๋ ๋ฐธ๋ฐ์ฑ ๊ธฐ์
์ฌ๋ฌ ๊ฐ์ง ๋ก๋ ๋ฐธ๋ฐ์ฑ ๊ธฐ์ ์ด ์ฌ์ฉ๋ ์ ์์ผ๋ฉฐ, ๊ฐ๊ฐ ์ฅ๋จ์ ์ด ์์ต๋๋ค. ์ต์์ ๊ธฐ์ ์ ์ ํ๋ฆฌ์ผ์ด์ ๋ฐ ์ธํ๋ผ์ ํน์ ์๊ตฌ ์ฌํญ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋๋ค.
1. ๋ผ์ด๋ ๋ก๋น(Round Robin)
๋ผ์ด๋ ๋ก๋น์ ๊ฐ์ฅ ๊ฐ๋จํ ๋ก๋ ๋ฐธ๋ฐ์ฑ ๊ธฐ์ ์ ๋๋ค. ์์ฐจ์ ์ผ๋ก ์๋ฒ์ ํธ๋ํฝ์ ๋ถ์ฐํฉ๋๋ค. ๊ฐ ์๋ฒ๋ ํ์ฌ ๋ถํ ์ํ๋ ์ฑ๋ฅ์ ๊ด๊ณ์์ด ๋์ผํ ์์ ํธ๋ํฝ์ ๋ฐ์ต๋๋ค. ์๋ฅผ ๋ค์ด, ์ธ ๊ฐ์ ์๋ฒ(A, B, C)๊ฐ ์๋ค๋ฉด ์ฒซ ๋ฒ์งธ ์์ฒญ์ A๋ก, ๋ ๋ฒ์งธ๋ B๋ก, ์ธ ๋ฒ์งธ๋ C๋ก ๊ฐ๊ณ , ๊ทธ ๋ค์ ๋ค์ A๋ก ๋์๊ฐ๋ ์์ ๋๋ค.
์ฅ์ :
- ๊ตฌํ์ด ๊ฐ๋จํจ
- ์ดํดํ๊ธฐ ์ฌ์
๋จ์ :
- ์๋ฒ ๋ถํ ๋๋ ์ฑ๋ฅ์ ๊ณ ๋ คํ์ง ์์
- ์๋ฒ์ ์ฉ๋์ด ๋ค๋ฅธ ๊ฒฝ์ฐ ๋ฆฌ์์ค ํ์ฉ์ด ๋ถ๊ท ๋ฑํด์ง ์ ์์
2. ๊ฐ์ค ๋ผ์ด๋ ๋ก๋น(Weighted Round Robin)
๊ฐ์ค ๋ผ์ด๋ ๋ก๋น์ ์๋ฒ์ ์๋ก ๋ค๋ฅธ ๊ฐ์ค์น๋ฅผ ํ ๋นํ ์ ์๋๋ก ํ๋ ๋ผ์ด๋ ๋ก๋น์ ํ์ฅํ์ ๋๋ค. ๊ฐ์ค์น๊ฐ ๋์ ์๋ฒ๊ฐ ๋ ๋ง์ ๋น์จ์ ํธ๋ํฝ์ ๋ฐ๊ฒ ๋ฉ๋๋ค. ์ด๋ ์๋ฒ์ ์ฉ๋์ด๋ ์ฑ๋ฅ ํน์ฑ์ด ๋ค๋ฅผ ๋ ์ ์ฉํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ๋ ๊ฐ์ ์๋ฒ A์ B๊ฐ ์๊ณ A์ ๊ฐ์ค์น 2๋ฅผ, B์ 1์ ํ ๋นํ๋ฉด A๋ B๋ณด๋ค ๋ ๋ฐฐ ๋ง์ ํธ๋ํฝ์ ๋ฐ๊ฒ ๋ฉ๋๋ค.
์ฅ์ :
- ์๋ฒ ์ฉ๋์ ๋ฐ๋ผ ํธ๋ํฝ์ ๋ถ๊ท ๋ฑํ๊ฒ ๋ถ๋ฐฐํ ์ ์์
- ๋น๊ต์ ๊ตฌํ์ด ๊ฐ๋จํจ
๋จ์ :
- ๊ฐ์ค์น๋ฅผ ์๋์ผ๋ก ์ค์ ํด์ผ ํจ
- ๋ณํํ๋ ์๋ฒ ์ํ์ ๋์ ์ผ๋ก ์ ์ํ์ง ์์
3. ์ต์ ์ฐ๊ฒฐ(Least Connections)
์ต์ ์ฐ๊ฒฐ ๋ฐฉ์์ ํ์ฑ ์ฐ๊ฒฐ ์๊ฐ ๊ฐ์ฅ ์ ์ ์๋ฒ๋ก ํธ๋ํฝ์ ๋ณด๋ ๋๋ค. ์ด ๊ธฐ์ ์ ๊ฐ ์๋ฒ์ ํ์ฌ ๋ถํ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํธ๋ํฝ์ ๋ถ์ฐํ๋ ค๊ณ ์๋ํฉ๋๋ค. ์ด๋ ๊ฐ ์๋ฒ์ ์ค์๊ฐ ๋ถํ๋ฅผ ๊ณ ๋ คํ๊ธฐ ๋๋ฌธ์ ๋ผ์ด๋ ๋ก๋น ๋ฐ ๊ฐ์ค ๋ผ์ด๋ ๋ก๋น๋ณด๋ค ๋ ์ ๊ตํฉ๋๋ค.
์ฅ์ :
- ์๋ฒ ๋ถํ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํธ๋ํฝ์ ๋ถ์ฐํจ
- ๋ผ์ด๋ ๋ก๋น ๊ธฐ์ ์ ๋นํด ์ฑ๋ฅ์ ํฅ์์ํฌ ์ ์์
๋จ์ :
- ๋ก๋ ๋ฐธ๋ฐ์๊ฐ ๊ฐ ์๋ฒ์ ๋ํ ์ฐ๊ฒฐ ์๋ฅผ ์ถ์ ํด์ผ ํจ
- ์ฐ๊ฒฐ์ด ๋จ๊ธฐ์ ์ธ ๊ฒฝ์ฐ ํจ์จ์ฑ์ด ๋จ์ด์ง ์ ์์
4. ์ต์ ์๋ต ์๊ฐ(Least Response Time)
์ต์ ์๋ต ์๊ฐ ๋ฐฉ์์ ํ๊ท ์๋ต ์๊ฐ์ด ๊ฐ์ฅ ๋ฎ์ ์๋ฒ๋ก ํธ๋ํฝ์ ๋ณด๋ ๋๋ค. ์ด ๊ธฐ์ ์ ํ์ฑ ์ฐ๊ฒฐ ์์ ์๋ฒ๊ฐ ์์ฒญ์ ์๋ตํ๋ ๋ฐ ๊ฑธ๋ฆฌ๋ ํ๊ท ์๊ฐ์ ๋ชจ๋ ๊ณ ๋ คํฉ๋๋ค. ์ด๋ ์ต์ ์ฐ๊ฒฐ ๋ฐฉ์๋ณด๋ค ๋ ์ ํํ ์๋ฒ ๋ถํ ์ธก์ ์น๋ฅผ ์ ๊ณตํฉ๋๋ค.
์ฅ์ :
- ์ค์ ์๋ฒ ์ฑ๋ฅ์ ๊ธฐ๋ฐ์ผ๋ก ํธ๋ํฝ์ ๋ถ์ฐํจ
- ์ต์ ์ฐ๊ฒฐ ๋ฐฉ์์ ๋นํด ์ฑ๋ฅ์ ๋์ฑ ํฅ์์ํฌ ์ ์์
๋จ์ :
- ๋ก๋ ๋ฐธ๋ฐ์๊ฐ ๊ฐ ์๋ฒ์ ์๋ต ์๊ฐ์ ์ถ์ ํด์ผ ํจ
- ๋ค๋ฅธ ๊ธฐ์ ๋ณด๋ค ๊ตฌํ์ด ๋ ๋ณต์กํจ
5. ํด์ ๊ธฐ๋ฐ(Hash-Based)
ํด์ ๊ธฐ๋ฐ ๋ก๋ ๋ฐธ๋ฐ์ฑ์ ํด์ ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ํด๋ผ์ด์ธํธ์ IP ์ฃผ์๋ ์ธ์ ์ฟ ํค์ ๊ฐ์ ์๋ณ์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํด๋ผ์ด์ธํธ ์์ฒญ์ ํน์ ์๋ฒ์ ๋งคํํฉ๋๋ค. ์ด๋ ๋์ผํ ํด๋ผ์ด์ธํธ์ ์์ฒญ์ด ์ผ๊ด๋๊ฒ ๋์ผํ ์๋ฒ๋ก ๋ผ์ฐํ ๋๋๋ก ๋ณด์ฅํ๋ฏ๋ก ์ธ์ ์ํ๋ฅผ ์ ์งํ๋ ๋ฐ ์ ์ฉํฉ๋๋ค.
์ฅ์ :
- ์ธ์ ์ง์์ฑ์ ๋ณด์ฅํจ
- ์ธ์ ์ํ์ ์์กดํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฑ๋ฅ์ ํฅ์์ํฌ ์ ์์
๋จ์ :
- ํด์ ํจ์๊ฐ ์ ์ค๊ณ๋์ง ์์ผ๋ฉด ํธ๋ํฝ์ด ๋ถ๊ท ๋ฑํ๊ฒ ๋ถ์ฐ๋ ์ ์์
- ์๋ฒ์ ์ฅ์ ๊ฐ ๋ฐ์ํ๋ฉด ํด๋น ์๋ฒ์ ๊ด๋ จ๋ ๋ชจ๋ ์์ฒญ์ด ์์ค๋จ
6. IP ํด์(IP Hash)
IP ํด์๋ ํด๋ผ์ด์ธํธ์ IP ์ฃผ์๋ฅผ ์ฌ์ฉํ์ฌ ์์ฒญ์ ๋ผ์ฐํ ํ ์๋ฒ๋ฅผ ๊ฒฐ์ ํ๋ ํน์ ์ ํ์ ํด์ ๊ธฐ๋ฐ ๋ก๋ ๋ฐธ๋ฐ์ฑ์ ๋๋ค. ์ด๋ ์น ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ธ์ ์ง์์ฑ์ ์ ์งํ๊ธฐ ์ํ ์ผ๋ฐ์ ์ธ ๊ธฐ์ ์ ๋๋ค.
์ฅ์ :
- ๊ตฌํ์ด ๊ฐ๋จํจ
- ํด๋ผ์ด์ธํธ IP ์ฃผ์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ธ์ ์ง์์ฑ์ ์ ๊ณตํจ
๋จ์ :
- ํด๋ผ์ด์ธํธ๊ฐ ํน์ IP ์ฃผ์ ๋ฒ์์ ์ง์ค๋์ด ์๋ ๊ฒฝ์ฐ ํธ๋ํฝ์ด ๋ถ๊ท ๋ฑํ๊ฒ ๋ถ์ฐ๋ ์ ์์
- NAT(Network Address Translation) ๋ค์ ์๋ ํด๋ผ์ด์ธํธ์๊ฒ๋ ํจ๊ณผ์ ์ด์ง ์์
7. URL ํด์(URL Hash)
URL ํด์๋ ์์ฒญ์ URL์ ์ฌ์ฉํ์ฌ ์์ฒญ์ ๋ผ์ฐํ ํ ์๋ฒ๋ฅผ ๊ฒฐ์ ํฉ๋๋ค. ์ด๋ URL์ ๊ธฐ๋ฐ์ผ๋ก ํน์ ์๋ฒ์ ์ฝํ ์ธ ๋ฅผ ์บ์ฑํ๋ ๋ฐ ์ ์ฉํ ์ ์์ต๋๋ค.
์ฅ์ :
- ์บ์ฑ ์ฑ๋ฅ์ ํฅ์์ํฌ ์ ์์
- ์ฝํ ์ธ ๊ธฐ๋ฐ ๋ผ์ฐํ ์ ํ์ฉํจ
๋จ์ :
- URL ๊ตฌ์กฐ๋ฅผ ์ ์คํ๊ฒ ์ค๊ณํด์ผ ํจ
- ๊ตฌํ์ด ๋ณต์กํ ์ ์์
8. ์ง๋ฆฌ์ ๋ก๋ ๋ฐธ๋ฐ์ฑ(GeoDNS)
GeoDNS ๋ก๋ ๋ฐธ๋ฐ์ฑ์ ํด๋ผ์ด์ธํธ์ ์ง๋ฆฌ์ ์์น๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์๋ฒ๋ก ํธ๋ํฝ์ ๋ผ์ฐํ ํฉ๋๋ค. ์ด๋ ํด๋ผ์ด์ธํธ๋ฅผ ๊ฐ์ฅ ๊ฐ๊น์ด ์๋ฒ๋ก ๋ณด๋ด ๋๊ธฐ ์๊ฐ์ ์ค์์ผ๋ก์จ ์ฑ๋ฅ์ ํฅ์์ํฌ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ์ ๋ฝ์ ์ฌ์ฉ์๋ ํ๋ํฌํธ๋ฅดํธ์ ์๋ฒ๋ก, ์์์์ ์ฌ์ฉ์๋ ์ฑ๊ฐํฌ๋ฅด์ ์๋ฒ๋ก ๋ผ์ฐํ ๋ ์ ์์ต๋๋ค.
์ฅ์ :
- ํด๋ผ์ด์ธํธ๋ฅผ ๊ฐ์ฅ ๊ฐ๊น์ด ์๋ฒ๋ก ๋ผ์ฐํ ํ์ฌ ๋๊ธฐ ์๊ฐ์ ์ค์
- ์ฌ์ฉ์ ๊ฒฝํ์ ํฅ์์ํด
๋จ์ :
- ์ฌ๋ฌ ์ง๋ฆฌ์ ์์น์ ๋ค์์ ์๋ฒ๊ฐ ํ์ํจ
- ๊ตฌ์ฑ์ด ๋ณต์กํ ์ ์์
๋ก๋ ๋ฐธ๋ฐ์ฑ ๋๊ตฌ
๋ก๋ ๋ฐธ๋ฐ์ฑ์ ๊ตฌํํ๊ธฐ ์ํ ์ฌ๋ฌ ์ํํธ์จ์ด ๋ฐ ํ๋์จ์ด ์๋ฃจ์ ์ด ์์ต๋๋ค. ์ด๋ฌํ ๋๊ตฌ๋ ์คํ ์์ค ์ํํธ์จ์ด๋ถํฐ ์์ฉ ์ดํ๋ผ์ด์ธ์ค ๋ฐ ํด๋ผ์ฐ๋ ๊ธฐ๋ฐ ์๋น์ค๊น์ง ๋ค์ํฉ๋๋ค.
1. HAProxy
HAProxy(High Availability Proxy)๋ ์๋, ์์ ์ฑ, ์ ์ฐ์ฑ์ผ๋ก ์ ๋ช ํ ์ธ๊ธฐ ์๋ ์คํ ์์ค ๋ก๋ ๋ฐธ๋ฐ์์ ๋๋ค. HTTP, TCP, SSL์ ํฌํจํ ๋ค์ํ ๋ก๋ ๋ฐธ๋ฐ์ฑ ์๊ณ ๋ฆฌ์ฆ๊ณผ ํ๋กํ ์ฝ์ ์ง์ํฉ๋๋ค. HAProxy๋ ๋๋์ ํธ๋ํฝ์ ์ฒ๋ฆฌํ๊ธฐ ์ํด ํ๋ก๋์ ํ๊ฒฝ์์ ๋๋ฆฌ ์ฌ์ฉ๋ฉ๋๋ค.
์ฃผ์ ํน์ง:
- ๋ค์ค ๋ก๋ ๋ฐธ๋ฐ์ฑ ์๊ณ ๋ฆฌ์ฆ ์ง์
- ์๋ฒ ๊ฐ์ฉ์ฑ์ ๋ชจ๋ํฐ๋งํ๋ ํฌ์ค ์ฒดํฌ
- SSL ์ข ๋ฃ
- TCP ๋ฐ HTTP ํ๋ก์
- ํ ์คํธ ๊ธฐ๋ฐ ํ์ผ์ ํตํ ๊ตฌ์ฑ
์์: ๋ ์๋ฒ ๊ฐ์ HTTP ํธ๋ํฝ์ ๋ก๋ ๋ฐธ๋ฐ์ฑํ๋๋ก HAProxy ๊ตฌ์ฑ:
```
frontend http-in
bind *:80
default_backend servers
backend servers
server server1 192.168.1.10:80 check
server server2 192.168.1.11:80 check
```
2. Nginx
Nginx(์์ง์์ค)๋ ๋ก๋ ๋ฐธ๋ฐ์๋ก๋ ์ฌ์ฉํ ์ ์๋ ๋ ๋ค๋ฅธ ์ธ๊ธฐ ์๋ ์คํ ์์ค ์น ์๋ฒ ๋ฐ ๋ฆฌ๋ฒ์ค ํ๋ก์ ์๋ฒ์ ๋๋ค. ๋์ ์ฑ๋ฅ, ํ์ฅ์ฑ, ๋ฎ์ ๋ฆฌ์์ค ์๋ชจ๋ก ์ ๋ช ํฉ๋๋ค. Nginx๋ ๋ค์ํ ๋ก๋ ๋ฐธ๋ฐ์ฑ ์๊ณ ๋ฆฌ์ฆ์ ์ง์ํ๋ฉฐ ๋ค์ํ ์ ํ์ ํธ๋ํฝ์ ์ฒ๋ฆฌํ๋๋ก ๊ตฌ์ฑํ ์ ์์ต๋๋ค.
์ฃผ์ ํน์ง:
- ๋ฆฌ๋ฒ์ค ํ๋ก์
- ๋ก๋ ๋ฐธ๋ฐ์ฑ
- HTTP ์บ์ฑ
- SSL ์ข ๋ฃ
- ํ ์คํธ ๊ธฐ๋ฐ ํ์ผ์ ํตํ ๊ตฌ์ฑ
์์: ๋ ์๋ฒ ๊ฐ์ HTTP ํธ๋ํฝ์ ๋ก๋ ๋ฐธ๋ฐ์ฑํ๋๋ก Nginx ๊ตฌ์ฑ:
```
upsream myapp {
server 192.168.1.10:80;
server 192.168.1.11:80;
}
server {
listen 80;
location / {
proxy_pass http://myapp;
}
}
```
3. Apache HTTP ์๋ฒ
Apache HTTP ์๋ฒ๋ ๋๋ฆฌ ์ฌ์ฉ๋๋ ์คํ ์์ค ์น ์๋ฒ๋ก, `mod_proxy_balancer`์ ๊ฐ์ ๋ชจ๋์ ์ฌ์ฉํ์ฌ ๋ก๋ ๋ฐธ๋ฐ์๋ก ๊ตฌ์ฑํ ์๋ ์์ต๋๋ค. ๋ก๋ ๋ฐธ๋ฐ์ฑ ์๋๋ฆฌ์ค์์ Nginx๋ HAProxy๋งํผ ์ฑ๋ฅ์ด ์ข์ง๋ ์์ง๋ง, ํนํ Apache ๊ตฌ์ฑ์ ์ด๋ฏธ ์ต์ํ ์ฌ๋๋ค์๊ฒ๋ ์คํ ๊ฐ๋ฅํ ์ต์ ์ ๋๋ค.
์ฃผ์ ํน์ง:
- ์ ์ฐํ ๊ตฌ์ฑ์ ํ์ฉํ๋ ๋ชจ๋์ ์ํคํ ์ฒ
- `mod_proxy_balancer` ๋ชจ๋๋ก ๋ก๋ ๋ฐธ๋ฐ์ฑ ๊ฐ๋ฅ
- ๋๋ฆฌ ์ฌ์ฉ๋๋ฉฐ ๋ฌธ์ํ๊ฐ ์ ๋์ด ์์
์์: `mod_proxy_balancer`๋ก Apache ๊ตฌ์ฑ:
```BalancerMember http://192.168.1.10:80 BalancerMember http://192.168.1.11:80 ProxyPass balancer://mycluster/ ```
4. Amazon Elastic Load Balancer(ELB)
Amazon ELB๋ Amazon Web Services(AWS)์์ ์ ๊ณตํ๋ ์์ ๊ด๋ฆฌํ ๋ก๋ ๋ฐธ๋ฐ์ฑ ์๋น์ค์ ๋๋ค. ์ฌ๋ฌ Amazon EC2 ์ธ์คํด์ค, ์ปจํ ์ด๋ ๋ฐ IP ์ฃผ์์ ๊ฑธ์ณ ๋ค์ด์ค๋ ์ ํ๋ฆฌ์ผ์ด์ ํธ๋ํฝ์ ์๋์ผ๋ก ๋ถ์ฐํฉ๋๋ค. ELB๋ Application Load Balancer(ALB), Network Load Balancer(NLB), Classic Load Balancer ๋ฑ ๋ค์ํ ์ ํ์ ๋ก๋ ๋ฐธ๋ฐ์๋ฅผ ์ง์ํฉ๋๋ค.
์ฃผ์ ํน์ง:
- ์์ ๊ด๋ฆฌํ ์๋น์ค
- ์๋ ํ์ฅ
- ํฌ์ค ์ฒดํฌ
- SSL ์ข ๋ฃ
- ๋ค๋ฅธ AWS ์๋น์ค์์ ํตํฉ
ELB ์ ํ:
- Application Load Balancer(ALB): HTTP ๋ฐ HTTPS ํธ๋ํฝ์ ๋ก๋ ๋ฐธ๋ฐ์ฑ์ ๊ฐ์ฅ ์ ํฉํฉ๋๋ค. ๋ง์ดํฌ๋ก์๋น์ค ๋ฐ ์ปจํ ์ด๋๋ฅผ ํฌํจํ ์ต์ ์ ํ๋ฆฌ์ผ์ด์ ์ํคํ ์ฒ ์ ๊ณต์ ๋ชฉํ๋ก ํ๋ ๊ณ ๊ธ ์์ฒญ ๋ผ์ฐํ ์ ์ ๊ณตํฉ๋๋ค.
- Network Load Balancer(NLB): ๊ทน๋์ ์ฑ๋ฅ์ด ์๊ตฌ๋๋ TCP, UDP ๋ฐ TLS ํธ๋ํฝ์ ๋ก๋ ๋ฐธ๋ฐ์ฑ์ ๊ฐ์ฅ ์ ํฉํฉ๋๋ค. ์ฐ๊ฒฐ ์์ค(๋ ์ด์ด 4)์์ ์๋ํ๋ NLB๋ ์ด์ ์ง์ฐ์ ์ ์งํ๋ฉด์ ์ด๋น ์๋ฐฑ๋ง ๊ฑด์ ์์ฒญ์ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
- Classic Load Balancer: ์ฌ๋ฌ Amazon EC2 ์ธ์คํด์ค์ ๊ฑธ์ณ ๊ธฐ๋ณธ์ ์ธ ๋ก๋ ๋ฐธ๋ฐ์ฑ์ ์ ๊ณตํ๋ฉฐ ์์ฒญ ๋ฐ ์ฐ๊ฒฐ ์์ค ๋ชจ๋์์ ์๋ํฉ๋๋ค. EC2-Classic ๋คํธ์ํฌ ๋ด์์ ๊ตฌ์ถ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋์์ผ๋ก ํฉ๋๋ค.
5. Google Cloud Load Balancing
Google Cloud Load Balancing์ Google Cloud Platform(GCP)์์ ์ ๊ณตํ๋ ์์ ๊ด๋ฆฌํ ๋ก๋ ๋ฐธ๋ฐ์ฑ ์๋น์ค์ ๋๋ค. ์ฌ๋ฌ Google Compute Engine ์ธ์คํด์ค, ์ปจํ ์ด๋ ๋ฐ IP ์ฃผ์์ ๊ฑธ์ณ ๋ค์ด์ค๋ ์ ํ๋ฆฌ์ผ์ด์ ํธ๋ํฝ์ ์๋์ผ๋ก ๋ถ์ฐํฉ๋๋ค. Google Cloud Load Balancing์ HTTP(S) ๋ก๋ ๋ฐธ๋ฐ์ฑ, TCP ๋ก๋ ๋ฐธ๋ฐ์ฑ, UDP ๋ก๋ ๋ฐธ๋ฐ์ฑ ๋ฑ ๋ค์ํ ์ ํ์ ๋ก๋ ๋ฐธ๋ฐ์๋ฅผ ์ง์ํฉ๋๋ค.
์ฃผ์ ํน์ง:
- ์์ ๊ด๋ฆฌํ ์๋น์ค
- ๊ธ๋ก๋ฒ ๋ก๋ ๋ฐธ๋ฐ์ฑ
- ํฌ์ค ์ฒดํฌ
- SSL ์ข ๋ฃ
- ๋ค๋ฅธ GCP ์๋น์ค์์ ํตํฉ
Google Cloud Load Balancing ์ ํ:
- HTTP(S) ๋ก๋ ๋ฐธ๋ฐ์ฑ: URL, ํธ์คํธ ๋๋ ๊ธฐํ ์์ฒญ ์์ฑ์ ๊ธฐ๋ฐ์ผ๋ก ๋ฐฑ์๋ ์ธ์คํด์ค์ HTTP ๋ฐ HTTPS ํธ๋ํฝ์ ๋ถ์ฐํฉ๋๋ค.
- TCP ๋ก๋ ๋ฐธ๋ฐ์ฑ: IP ์ฃผ์ ๋ฐ ํฌํธ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ฐฑ์๋ ์ธ์คํด์ค์ TCP ํธ๋ํฝ์ ๋ถ์ฐํฉ๋๋ค.
- UDP ๋ก๋ ๋ฐธ๋ฐ์ฑ: IP ์ฃผ์ ๋ฐ ํฌํธ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ฐฑ์๋ ์ธ์คํด์ค์ UDP ํธ๋ํฝ์ ๋ถ์ฐํฉ๋๋ค.
- ๋ด๋ถ ๋ก๋ ๋ฐธ๋ฐ์ฑ: ์ฌ์ค ๋คํธ์ํฌ ๋ด์์์ ๋ก๋ ๋ฐธ๋ฐ์ฑ.
6. Azure Load Balancer
Azure Load Balancer๋ Microsoft Azure์์ ์ ๊ณตํ๋ ์์ ๊ด๋ฆฌํ ๋ก๋ ๋ฐธ๋ฐ์ฑ ์๋น์ค์ ๋๋ค. ์ฌ๋ฌ Azure ๊ฐ์ ๋จธ์ , ์ปจํ ์ด๋ ๋ฐ IP ์ฃผ์์ ๊ฑธ์ณ ๋ค์ด์ค๋ ์ ํ๋ฆฌ์ผ์ด์ ํธ๋ํฝ์ ๋ถ์ฐํฉ๋๋ค. Azure Load Balancer๋ ๊ณต์ฉ ๋ก๋ ๋ฐธ๋ฐ์ ๋ฐ ๋ด๋ถ ๋ก๋ ๋ฐธ๋ฐ์ ๋ฑ ๋ค์ํ ์ ํ์ ๋ก๋ ๋ฐธ๋ฐ์๋ฅผ ์ง์ํฉ๋๋ค.
์ฃผ์ ํน์ง:
- ์์ ๊ด๋ฆฌํ ์๋น์ค
- ๊ณ ๊ฐ์ฉ์ฑ
- ์ํ ํ๋ก๋ธ
- SSL ์ข ๋ฃ
- ๋ค๋ฅธ Azure ์๋น์ค์์ ํตํฉ
Azure Load Balancer ์ ํ:
- ๊ณต์ฉ ๋ก๋ ๋ฐธ๋ฐ์: ์ธํฐ๋ท์ ํธ๋ํฝ์ Azure ๋ด์ ๋ฐฑ์๋ VM์ผ๋ก ๋ถ์ฐํฉ๋๋ค.
- ๋ด๋ถ ๋ก๋ ๋ฐธ๋ฐ์: Azure์ ์ฌ์ค ๋คํธ์ํฌ ๋ด์์ ํธ๋ํฝ์ ๋ถ์ฐํฉ๋๋ค.
7. F5 BIG-IP
F5 BIG-IP๋ ๊ณ ๊ธ ๋ก๋ ๋ฐธ๋ฐ์ฑ, ๋ณด์ ๋ฐ ์ต์ ํ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ ์์ฉ ์ ํ๋ฆฌ์ผ์ด์ ๋๋ฆฌ๋ฒ๋ฆฌ ์ปจํธ๋กค๋ฌ(ADC)์ ๋๋ค. ๋ณต์กํ ์ ํ๋ฆฌ์ผ์ด์ ํธ๋ํฝ ํ๋ฆ์ ๊ด๋ฆฌํ๊ธฐ ์ํด ์ํฐํ๋ผ์ด์ฆ ํ๊ฒฝ์์ ๋๋ฆฌ ์ฌ์ฉ๋ฉ๋๋ค.
์ฃผ์ ํน์ง:
- ๊ณ ๊ธ ๋ก๋ ๋ฐธ๋ฐ์ฑ ์๊ณ ๋ฆฌ์ฆ
- ์ ํ๋ฆฌ์ผ์ด์ ๋ณด์
- ํธ๋ํฝ ์ต์ ํ
- SSL ์คํ๋ก๋ฉ
- ๊ธ๋ก๋ฒ ํธ๋ํฝ ๊ด๋ฆฌ
8. Citrix ADC(NetScaler)
Citrix ADC(์ด์ NetScaler)๋ ๋ก๋ ๋ฐธ๋ฐ์ฑ, ์ ํ๋ฆฌ์ผ์ด์ ๋ณด์ ๋ฐ ์ต์ ํ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ ๋ ๋ค๋ฅธ ์์ฉ ADC์ ๋๋ค. ์กฐ์ง์์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฑ๋ฅ๊ณผ ๊ฐ์ฉ์ฑ์ ํฅ์์ํค๊ธฐ ์ํด ์ฌ์ฉ๋ฉ๋๋ค.
์ฃผ์ ํน์ง:
- ๋ก๋ ๋ฐธ๋ฐ์ฑ
- ์ ํ๋ฆฌ์ผ์ด์ ๋ณด์
- ํธ๋ํฝ ์ต์ ํ
- SSL ์คํ๋ก๋ฉ
- ๊ธ๋ก๋ฒ ์๋ฒ ๋ก๋ ๋ฐธ๋ฐ์ฑ
์ฌ๋ฐ๋ฅธ ๋ก๋ ๋ฐธ๋ฐ์ฑ ์๋ฃจ์ ์ ํํ๊ธฐ
์ต์์ ๋ก๋ ๋ฐธ๋ฐ์ฑ ์๋ฃจ์ ์ ์ ํ๋ฆฌ์ผ์ด์ ๋ฐ ์ธํ๋ผ์ ํน์ ์๊ตฌ ์ฌํญ์ ๋ฐ๋ผ ๋ค๋ฆ ๋๋ค. ๋ก๋ ๋ฐธ๋ฐ์๋ฅผ ์ ํํ ๋ ๋ค์ ์์๋ฅผ ๊ณ ๋ คํ์ญ์์ค:
- ํธ๋ํฝ ์: ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ฒ๋ฆฌํ ๊ฒ์ผ๋ก ์์๋๋ ํธ๋ํฝ ์์ ์ผ๋ง์ ๋๊น?
- ์ ํ๋ฆฌ์ผ์ด์ ์ ํ: ์ด๋ค ์ ํ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ก๋ ๋ฐธ๋ฐ์ฑํฉ๋๊น(์: HTTP, TCP, UDP)?
- ํ์ฅ์ฑ ์๊ตฌ ์ฌํญ: ๋ณํํ๋ ํธ๋ํฝ ์๊ตฌ์ ๋ง์ถฐ ๋ก๋ ๋ฐธ๋ฐ์๋ฅผ ์ผ๋ง๋ ์ฝ๊ฒ ํ์ฅํ ์ ์์ต๋๊น?
- ๊ณ ๊ฐ์ฉ์ฑ ์๊ตฌ ์ฌํญ: ์๋ฒ ์ฅ์ ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ์ฉ์ฑ์ ์ ์งํ๋ ๊ฒ์ด ์ผ๋ง๋ ์ค์ํฉ๋๊น?
- ๋ณด์ ์๊ตฌ ์ฌํญ: ์ด๋ค ๋ณด์ ๊ธฐ๋ฅ์ด ํ์ํฉ๋๊น(์: SSL ์ข ๋ฃ, DDoS ๋ฐฉ์ด)?
- ๋น์ฉ: ๋ก๋ ๋ฐธ๋ฐ์ฑ ์์ฐ์ ์ผ๋ง์ ๋๊น?
๋ก๋ ๋ฐธ๋ฐ์ฑ์ ์ํ ๋ชจ๋ฒ ์ฌ๋ก
๋ก๋ ๋ฐธ๋ฐ์ฑ ์๋ฃจ์ ์ด ํจ๊ณผ์ ์ด๊ณ ์ ๋ขฐํ ์ ์๋๋ก ๋ค์ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ๋ฐ๋ฅด์ญ์์ค:
- ์๋ฒ ์ํ ๋ชจ๋ํฐ๋ง: ํฌ์ค ์ฒดํฌ๋ฅผ ๊ตฌํํ์ฌ ๋น์ ์์ ์ธ ์๋ฒ๋ฅผ ์๋์ผ๋ก ๊ฐ์งํ๊ณ ๋ก๋ ๋ฐธ๋ฐ์ฑ ํ์์ ์ ๊ฑฐํ์ญ์์ค.
- ์ ์ ํ ๋ก๋ ๋ฐธ๋ฐ์ฑ ์๊ณ ๋ฆฌ์ฆ ์ฌ์ฉ: ์ ํ๋ฆฌ์ผ์ด์ ๋ฐ ํธ๋ํฝ ํจํด์ ์ ํฉํ ๋ก๋ ๋ฐธ๋ฐ์ฑ ์๊ณ ๋ฆฌ์ฆ์ ์ ํํ์ญ์์ค.
- ์ธ์ ์ง์์ฑ ๊ตฌ์ฑ: ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ธ์ ์ํ ์ ์ง์ ์์กดํ๋ ๊ฒฝ์ฐ ์ธ์ ์ง์์ฑ์ ๊ตฌ์ฑํ์ญ์์ค.
- ์ฑ๋ฅ ๋ชจ๋ํฐ๋ง: ๋ก๋ ๋ฐธ๋ฐ์์ ์๋ฒ์ ์ฑ๋ฅ์ ๋ชจ๋ํฐ๋งํ์ฌ ๋ฌธ์ ๋ฅผ ์๋ณํ๊ณ ํด๊ฒฐํ์ญ์์ค.
- ์ฅ์ ์กฐ์น ํ ์คํธ: ์ฅ์ ์กฐ์น ์ ์ฐจ๋ฅผ ์ ๊ธฐ์ ์ผ๋ก ํ ์คํธํ์ฌ ์๋ฒ ์ฅ์ ์ ๋ก๋ ๋ฐธ๋ฐ์๊ฐ ์๋์ผ๋ก ํธ๋ํฝ์ ์ฌ์ ์กํ ์ ์๋์ง ํ์ธํ์ญ์์ค.
- ๋ก๋ ๋ฐธ๋ฐ์ ๋ณด์: ๋ก๋ ๋ฐธ๋ฐ์๋ฅผ ๊ณต๊ฒฉ์ผ๋ก๋ถํฐ ๋ณดํธํ๊ธฐ ์ํ ๋ณด์ ์กฐ์น๋ฅผ ๊ตฌํํ์ญ์์ค.
- ์ํํธ์จ์ด ์ต์ ์ํ ์ ์ง: ๋ณด์ ์ทจ์ฝ์ ์ ํจ์นํ๊ณ ์ฑ๋ฅ์ ํฅ์์ํค๊ธฐ ์ํด ๋ก๋ ๋ฐธ๋ฐ์ฑ ์ํํธ์จ์ด๋ฅผ ์ ๊ธฐ์ ์ผ๋ก ์ ๋ฐ์ดํธํ์ญ์์ค.
๊ฒฐ๋ก
๋ก๋ ๋ฐธ๋ฐ์ฑ์ ์ต์ ์ ์ ํ๋ฆฌ์ผ์ด์ ์ฑ๋ฅ, ๊ณ ๊ฐ์ฉ์ฑ ๋ฐ ํ์ฅ์ฑ์ ๋ณด์ฅํ๋ ๋ฐ ์ค์ํ ๊ธฐ์ ์ ๋๋ค. ์ฌ๋ฌ ์๋ฒ์ ๋คํธ์ํฌ ํธ๋ํฝ์ ๋ถ์ฐํจ์ผ๋ก์จ ๋ก๋ ๋ฐธ๋ฐ์ฑ์ ์๋ฒ ๊ณผ๋ถํ๋ฅผ ๋ฐฉ์งํ๊ณ ์๋ต ์๊ฐ์ ๋จ์ถํ๋ฉฐ ๋ค์ดํ์์ ์ต์ํํฉ๋๋ค. HAProxy๋ Nginx์ ๊ฐ์ ์คํ ์์ค ์๋ฃจ์ , Amazon ELB๋ Google Cloud Load Balancing๊ณผ ๊ฐ์ ํด๋ผ์ฐ๋ ๊ธฐ๋ฐ ์๋น์ค, ๋๋ F5 BIG-IP๋ Citrix ADC์ ๊ฐ์ ์์ฉ ์ดํ๋ผ์ด์ธ์ค ์ค ์ด๋ค ๊ฒ์ ์ ํํ๋ , ๋ก๋ ๋ฐธ๋ฐ์ฑ์ ๊ตฌํํ๋ ๊ฒ์ ํ๋ ฅ์ ์ด๊ณ ํ์ฅ ๊ฐ๋ฅํ ์ธํ๋ผ๋ฅผ ๊ตฌ์ถํ๋ ๋ฐ ํ์์ ์ธ ๋จ๊ณ์ ๋๋ค. ์ฌ์ฉ ๊ฐ๋ฅํ ๋ค์ํ ๋ก๋ ๋ฐธ๋ฐ์ฑ ๊ธฐ์ ๊ณผ ๋๊ตฌ๋ฅผ ์ดํดํจ์ผ๋ก์จ ํน์ ์๊ตฌ์ ๋ง๋ ์ฌ๋ฐ๋ฅธ ์๋ฃจ์ ์ ์ ํํ๊ณ ์ ํ๋ฆฌ์ผ์ด์ ์ด ํญ์ ๊ฐ์ฉํ๊ณ ์ฑ๋ฅ์ด ๋ฐ์ด๋๋๋ก ๋ณด์ฅํ ์ ์์ต๋๋ค.
๋ณํํ๋ ํธ๋ํฝ ํจํด๊ณผ ์ ํ๋ฆฌ์ผ์ด์ ์๊ตฌ ์ฌํญ์ ์ ์ํ๊ธฐ ์ํด ๋ก๋ ๋ฐธ๋ฐ์ฑ ๊ตฌ์ฑ์ ์ง์์ ์ผ๋ก ๋ชจ๋ํฐ๋งํ๊ณ ์ต์ ํํ๋ ๊ฒ์ ์์ง ๋ง์ญ์์ค. ์ธํ๋ผ๊ฐ ๊ฒฝ์๋ ฅ ์๊ณ ์ ๋ขฐํ ์ ์๋๋ก ๋ก๋ ๋ฐธ๋ฐ์ฑ์ ์ต์ ๋ํฅ๊ณผ ๊ธฐ์ ์ ๋ํ ์ ๋ณด๋ฅผ ์ ์งํ์ญ์์ค. ์๊ท๋ชจ ์คํํธ์ ์ด๋ ๋๊ธฐ์ ์ด๋ ๋ก๋ ๋ฐธ๋ฐ์ฑ์ ํฌ์ํ๋ ๊ฒ์ ์ฌ์ฉ์ ๊ฒฝํ ํฅ์, ๋ค์ดํ์ ๊ฐ์, ๋น์ฆ๋์ค ๋ฏผ์ฒฉ์ฑ ์ฆ๋๋ก ์ด์ด์ง๋ ์ ๋ต์ ๊ฒฐ์ ์ ๋๋ค.