๋ก๋ ๋ฐธ๋ฐ์ฑ์ด๋?
๋ก๋ ๋ฐธ๋ฐ์ฑ (Load Balancing)
๋ก๋ ๋ฐธ๋ฐ์ฑ์ด๋?
์ธํ๋ผ๋ฅผ ์ด์ํ๋ค๋ฉด ์์์ง๋ ํธ๋ํฝ์ ๊ณ ๋ คํ์ง ์์ ์๊ฐ ์์ต๋๋ค. ์๋ฌด๋ฆฌ ์ฑ๋ฅ์ด ๋ฐ์ด๋ ์๋ฒ๋ผ๋ ํ ๋์ ์๋ฒ๋ก๋ ๋ชจ๋ ํธ๋ํฝ์ ๊ฐ๋นํ๊ธฐ ์ด๋ ต๊ธฐ ๋๋ฌธ์ ๋ค์์ ์๋ฒ๋ฅผ ๊ตฌ์ถํ๊ฒ ๋ฉ๋๋ค. ํ์ง๋ง ๋จ์ํ ์ฌ๋ฌ ๋์ ์๋ฒ๋ฅผ ์ด์ํ๋ค๊ณ ํด์ ๋ชจ๋ ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ์ผ๊ด์ฑ ์๊ฒ ์๋ตํ ์ ์์๊น์?
๋ก๋ ๋ฐธ๋ฐ์ฑ์ด๋ ๋ง ๊ทธ๋๋ก ์๋ฒ๊ฐ ์ฒ๋ฆฌํด์ผ ํ ์ ๋ฌด ํน์ ์์ฒญ(Load)๋ฅผ ์ฌ๋ฌ ๋์ ์๋ฒ๋ก ๋๋์ด(Balanding) ์ฒ๋ฆฌํ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ํ ๋์ ์๋ฒ๋ก ๋ถํ๊ฐ ์ง์ค๋์ง ์๋๋ก ํธ๋ํฝ์ ๊ด๋ฆฌํด ๊ฐ๊ฐ์ ์๋ฒ๊ฐ ์ต์ ์ ์ฑ๋ฅ์ ๋ณด์ผ ์ ์๊ฒ ํ๋ ๊ฒ์ด ๋ชฉ์ ์ ๋๋ค.
์๋น์ค์ ๊ท๋ชจ๊ฐ ์ปค์ง๊ณ , ์ฌ์ฉ์ ์๊ฐ ๋์ด๋๊ฒ ๋๋ฉด ๊ธฐ์กด์ ์๋ฒ๋ง์ผ๋ก๋ ์์ฒญ ์ฒ๋ฆฌ๊ฐ ์ด๋ ค์์ง๊ธฐ ๋๋ฌธ์ ๋ค์๊ณผ ๊ฐ์ด ํฌ๊ฒ ๋ ๊ฐ์ง ๋ฐฉ๋ฒ์ผ๋ก ๋์ฒํ ์ ์์ต๋๋ค.
- ๊ธฐ์กด์ ์๋ฒ ์ฑ๋ฅ์ ํ์ฅํ๋ Scale-up ๋ฐฉ์
- ๊ธฐ์กด์ ์๋ฒ์ ๋์ผํ๊ฑฐ๋ ๋ฎ์ ์ฑ๋ฅ์ ์๋ฒ๋ฅผ ์ฆ์คํ๋ Scale-out ๋ฐฉ์
์ด ๋ Scale-out ๋ฐฉ์์ ํตํด ์ฆ๊ฐํ ํธ๋ํฝ์ ๋์ฒํ๊ธฐ๋ก ํ๋ค๋ฉด, ์ฌ๋ฌ ๋์ ์๋ฒ๋ก ํธ๋ํฝ์ ๊ท ๋ฑํ๊ฒ ๋ถ์ฐํด์ฃผ๋ ๋ก๋ ๋ฐธ๋ฐ์ฑ์ด ํ์ํฉ๋๋ค.
๋ก๋ ๋ฐธ๋ฐ์ฑ ๊ธฐ๋ฒ
์๋ฒ์ ์ฑ๋ฅ์ ๊ณ ๋ คํ์ฌ ๋ถ๋ฐฐํด์ผ ํ๊ธฐ ๋๋ฌธ์ ์๋ฒ์ ์ํฉ์ ๋ง์ถฐ ์ ์ ํ ๋ฐฉ๋ฒ์ ์ ํํด์ผ ํฉ๋๋ค.
- ๋ผ์ด๋ ๋ก๋น ๋ฐฉ์(Round Robin Method)
- ์๋ฒ์ ๋ค์ด์จ ์์ฒญ์ ์์๋๋ก ๋์๊ฐ๋ฉฐ ๋ฐฐ์ ํ๋ ๋ฐฉ์
- ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ์์๋๋ก ๋ถ๋ฐฐํ๊ธฐ ๋๋ฌธ์ ์ฌ๋ฌ ๋์ ์๋ฒ๊ฐ ๋์ผํ ์คํ์ ๊ฐ๊ณ ์๊ณ , ์๋ฒ์์ ์ฐ๊ฒฐ(์ธ์ )์ด ์ค๋ ์ง์๋์ง ์๋ ๊ฒฝ์ฐ์ ํ์ฉํ๊ธฐ ์ ํฉ
- ๊ฐ์ค ๋ผ์ด๋ ๋ก๋น ๋ฐฉ์(Weighted Round Robin Method)
- ์๋ฒ๋ง๋ค ๊ฐ์ค์น๋ฅผ ๋งค๊ธฐ๊ณ ๊ฐ์ค์น๋ฅผ ๋งค๊ธฐ๊ณ ๊ฐ์ค์น๊ฐ ๋์ ์๋ฒ์ ํด๋ผ์ด์ธํธ ์์ฒญ์ ์ฐ์ ์ ์ผ๋ก ๋ฐฐ๋ถ
- ์ฃผ๋ก ์๋ฒ์ ํธ๋ํฝ ์ฒ๋ฆฌ ๋ฅ๋ ฅ์ด ์์ดํ ๊ฒฝ์ฐ ์ฌ์ฉ๋๋ ๋ถํ ๋ถ์ฐ ๋ฐฉ์
- ์๋ฅผ ๋ค์ด A๋ผ๋ ์๋ฒ๊ฐ 5๋ผ๋ ๊ฐ์ค์น๋ฅผ ๊ฐ๊ณ , B๋ผ๋ ์๋ฒ๊ฐ 2๋ผ๋ ๊ฐ์ค์น๋ฅผ ๊ฐ๋๋ค๋ฉด, ๋ก๋ ๋ฐธ๋ฐ์๋ ๋ผ์ด๋๋ก๋น ๋ฐฉ์์ผ๋ก A ์๋ฒ์ 5๊ฐ B ์๋ฒ์ 2๊ฐ์ ์์ฒญ์ ์ ๋ฌ
- IP ํด์ ๋ฐฉ์(IP Hash Method)
- ํด๋ผ์ด์ธํธ์ IP ์ฃผ์๋ฅผ ํน์ ์๋ฒ๋ก ๋งคํํ์ฌ ์์ฒญ์ ์ฒ๋ฆฌํ๋ ๋ฐฉ์
- ์ฌ์ฉ์์ IP๋ฅผ ํด์ฑํด ๋ก๋๋ฅผ ๋ถ๋ฐฐํ๊ธฐ ๋๋ฌธ์ ์ฌ์ฉ์๊ฐ ํญ์ ๋์ผํ ์๋ฒ๋ก ์ฐ๊ฒฐ๋๋ ๊ฒ์ ๋ณด์ฅ
- ์ต์ ์ฐ๊ฒฐ ๋ฐฉ์(Least Connection Method)
- ์์ฒญ์ด ๋ค์ด์จ ์์ ์ ๊ฐ์ฅ ์ ์ ์ฐ๊ฒฐ์ํ๋ฅผ ๋ณด์ด๋ ์๋ฒ์ ์ฐ์ ์ ์ผ๋ก ํธ๋ํฝ ๋ฐฐ๋ถ
- ์์ฃผ ์ธ์ ์ด ๊ธธ์ด์ง๊ฑฐ๋, ์๋ฒ์ ๋ถ๋ฐฐ๋ ํธ๋ํฝ๋ค์ด ์ผ์ ํ์ง ์์ ๊ฒฝ์ฐ์ ์ ํฉ
- ์ต์ ์๋ต ์๊ฐ ๋ฐฉ์(Least Response Time Method)
- ์๋ฒ์ ํ์ฌ ์ฐ๊ฒฐ ์ํ์ ์๋ต ์๊ฐ์ ๋ชจ๋ ๊ณ ๋ คํ์ฌ ํธ๋ํฝ ๋ฐฐ๋ถ
- ๊ฐ์ฅ ์ ์ ์ฐ๊ฒฐ ์ํ์ ๊ฐ์ฅ ์งง์ ์๋ต ์๊ฐ์ ๋ณด์ด๋ ์๋ฒ์ ์ฐ์ ์ ์ผ๋ก ๋ก๋๋ฅผ ๋ฐฐ๋ถํ๋ ๋ฐฉ์
L4 ๋ก๋ ๋ฐธ๋ฐ์ฑ๊ณผ L7 ๋ก๋ ๋ฐธ๋ฐ์ฑ
๋ก๋ ๋ฐธ๋ฐ์ฑ์๋ L4 ๋ก๋ ๋ฐธ๋ฐ์ฑ๊ณผ L7 ๋ก๋ ๋ฐธ๋ฐ์ฑ์ด ๊ฐ์ฅ ๋ง์ด ํ์ฉ๋ฉ๋๋ค.
๋จผ์ L4์ L7์ด ๋ฌด์์ ์๋ฏธํ๋ ์ง๋ถํฐ ์์๋ด ์๋ค.
L4๋ Layer 4(์ ์ก ๊ณ์ธต) ํ๋กํ ์ฝ๊ณผ Layer 7(์์ฉ ๊ณ์ธต) ํ๋กํ ์ฝ์ ํค๋๋ฅผ ๋ถํ ๋ถ์ฐ์ ์ด์ฉํ๊ธฐ ๋๋ฌธ์ ๋ถ์ ์ ๋์ฌ์ ๋๋ค. ๋ชจ๋ ์์ฒญ์ L4 ๋๋ L7 ๋ก๋ ๋ฐธ๋ฐ์๊ฐ ๋ฐ์ ์๋ฒ๋ค์๊ฒ ์ ์ ํ ๋๋์ด ์ค๋๋ค.
L4 ๋ก๋ ๋ฐธ๋ฐ์
- ๋คํธ์ํฌ ๊ณ์ธต(IP, IPX)์ด๋ ์ ์ก ๊ณ์ธต(TCP, UDP)์ ์ ๋ณด(IP์ฃผ์, ํฌํธ๋ฒํธ, MAC์ฃผ์, ์ ์ก ํ๋กํ ์ฝ)๋ฅผ ๋ฐํ์ผ๋ก ๋ก๋ ๋ถ์ฐ
L7 ๋ก๋ ๋ฐธ๋ฐ์
- ์ ํ๋ฆฌ์ผ์ด์ ๊ณ์ธต(HTTP, FTP, SMTP)์์ ๋ก๋๋ฅผ ๋ถ์ฐํ๋ฏ๋ก HTTP ํค๋, ์ฟ ํค ๋ฑ๊ณผ ๊ฐ์ ์ฌ์ฉ์์ ์์ฒญ์ ๊ธฐ์ค์ผ๋ก ํน์ ์๋ฒ์ ํธ๋ํฝ ๋ถ์ฐ
- ํจํท์ ๋ด์ฉ์ ํ์ธํ๊ณ ๊ทธ ๋ด์ฉ์ ๋ฐ๋ผ ๋ก๋๋ฅผ ํน์ ์๋ฒ์ ๋ถ๋ฐฐํ๋ ๊ฒ
- URL์ ๋ฐ๋ผ ๋ก๋๋ฅผ ๋ถ์ฐ์ํค๊ฑฐ๋ HTTP ํค๋์ ์ฟ ํค ๊ฐ์ ๋ฐ๋ผ ๋ถํ๋ ๋ถ์ฐํ๋ ๋ฑ ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ์ธ๋ถํํด ์๋ฒ์ ์ ๋ฌ
- ํน์ ํ ํจํด์ ์ง๋ ๋ฐ์ด๋ฌ์ค๋ฅผ ๊ฐ์งํด ๋คํธ์ํฌ๋ฅผ ๋ณดํธํ ์ ์์
- DoS/DDoS์ ๊ฐ์ ๋น์ ์์ ์ธ ํธ๋ํฝ์ ํํฐ๋ง ํ ์ ์์ด ๋คํธ์ํฌ ๋ณด์ ๋ถ์ผ์์ ํ์ฉ
์ฐธ๊ณ ๋งํฌ
- https://velog.io/@yanghl98/OS์ด์์ฒด์ -๋ก๋๋ฐธ๋ฐ์ฑ-Load-Balancing-์ ์-์ข ๋ฅ-์๊ณ ๋ฆฌ์ฆ
- https://tecoble.techcourse.co.kr/post/2021-11-07-load-balancing/