๋คํธ์ํฌ L4, L7 ๋ก๋๋ฐธ๋ฐ์ฑ (Load balancing)
by JiwonDev# ์๋ฒ๊ฐ ๋ง์ ์์ฒญ์ ๊ฐ๋นํ๊ธฐ ํ๋ค๋ค๋ฉด
์๋ฒ์ ์ฑ๋ฅ์ ํฅ์์์ผ์ผํฉ๋๋ค. ์ฑ๋ฅ์ ํฅ์์ํค๋ ๋ฐฉ๋ฒ์๋ ํฌ๊ฒ 2๊ฐ์ง๊ฐ ์์ต๋๋ค.
- Scale-up : ๊ธฐ์กด์ ์๋ฒ์ ํ๋์จ์ด๋ฅผ ๊ต์ฒดํด์ ์ฑ๋ฅ์ ํฅ์์ํจ๋ค.
- Scale-out : ์๋ฒ์ ๊ฐ์๋ฅผ ์ถ๊ฐํ์ฌ ์ฌ๋ฌ ๋์ ์ฅ์น๊ฐ ์ผ์ ๋๋ ์ ์ฒ๋ฆฌํ๋ค.
์ด ์ฃผ์ ์ ๊ดํด์๋ ์ด์ผ๊ธฐํ๋ฉด ๊ธด๋ฐ, ๋ฐ๋ก ๊ธ์ ์์ฑํ๋๋ก ํ๊ฒ ์ต๋๋ค.
# ๋ก๋๋ฐธ๋ฐ์ฑ์ด๋?
๋ก๋๋ฐธ๋ฐ์ฑ์ ๋ณดํต ์ด์์ฒด์ ์ ํ๋ก์ธ์์ ์์ ์ค์ผ์ฅด๋ง ๋๋ ๋คํธ์ํฌ์ ์ฃผ๋ก ์ฌ์ฉ๋๋ ์ฉ์ด์ ๋๋ค.
์ฌ๊ธฐ์์ ๋งํ๋ ๋ก๋๋ฐธ๋ฐ์ฑ์ ๋คํธ์ํฌ ๋ก๋๋ฐธ๋ฐ์ฑ์ ์๋ฏธํฉ๋๋ค.
์ฆ ์๋ฒ๊ฐ ์ฌ๋ฌ๊ฐ(Scale-out)์ผ ๋ ์์ฒญ ํธ๋ํฝ์ ์ ์ ํ๊ฒ ๋ถ์ฐ์์ผ์ฃผ๋ ์๋น์ค๊ฐ Load Balancing์ ๋๋ค.
์ฐธ๊ณ ๋ก ์ด๋ฅผ ํด์ฃผ๋ Load Balancer๋ ๋ถํ ๋ถ์ฐ๋ง๊ณ ๋ ์๋์ ๊ฐ์ ๊ธฐ๋ฅ์ ์ถ๊ฐ๋ก ์ ๊ณตํด์ค๋๋ค.
- NAT (Network Address Translation, ์ฌ์คIP - ๊ณต์ธIP ์ ํ)
- Tunneling (์ธํฐ๋ท์์ ๋ณด์ด์ง ์๋ ์ฐ๊ฒฐ์ ๋ง๋ฆ. ํจํท ์ํธํ)
- DSR (๋์ ์์ค ๋ผ์ฐํ - ์๋ฒ์์ ์๋ตํ ๋ ์ค์์น๋ฅผ ๊ฑฐ์น์ง ์๊ณ ๋ฐ๋ก ์ฐพ์๊ฐ๋๋ก ๋ผ์ฐํ )
# ๋คํธ์ํฌ ๋ก๋๋ฐธ๋ฐ์์ ์ข ๋ฅ
2021.09.08 - [๊ธฐ๋ณธ ์ง์/์น ๊ธฐ๋ณธ์ง์] - ๋คํธ์ํฌ OSI 7๊ณ์ธต, TCP/IP 4๊ณ์ธต
@ L2(Data Link Layer)
๋ธ๋ฆฟ์ง, ํ๋ธ๋ฑ์์ ์ฌ์ฉ๋๋ ๋ก๋๋ฐธ๋ฐ์ฑ์ ๋๋ค.
๋คํธ์ํฌ ์ฅ๋น์ ๊ณ ์ ํ Mac ์ฃผ์(80–00–20–30–1C-47)๋ฅผ ์ด์ฉํ์ฌ ๋ก๋๋ฐธ๋ฐ์ฑํฉ๋๋ค. MAC == Media Access Control
๋น์ฐํ ์ค์์น๋ Macํ
์ด๋ธ์ ๊ฐ์ง๊ณ ์์ด์ผํ๋ฉฐ, ์ด๋ฅผ ๊ธฐ์ค์ผ๋ก ํจํท์ ์ ์กํฉ๋๋ค.
- ์ค์์น Mac Table์ ์ ๋ณด๊ฐ ์๋ค๋ฉด ํด๋น ์ฃผ์๋ก ์ด๋ (Forwarding) ์ํต๋๋ค.
- ๋ง์ฝ Mac Table์ ์ ๋ณด๊ฐ ์๋ค๋ฉด, ๋ค๋ฅธ ์ฅ์น์ ์ ๋ถ ์ ์ก์ ํด๋ณด๊ณ , ์๋ตํ๋ ์ฅ๋น๋ฅผ Mac Table์ ๋ฑ๋กํฉ๋๋ค (Flooding)
- ์ฅ์ : ๋ก๋๋ฐธ๋ฐ์์ ๊ฐ๊ฒฉ์ด ์ ๋ ดํฉ๋๋ค. ๋ํ ๊ตฌ์กฐ๊ฐ ๊ฐ๋จํด์ ์ฑ๋ฅ๊ณผ ์ ๋ขฐ์ฑ์ด ๋์ต๋๋ค.
- ๋จ์ : ๋ผ์ฐํ ์ด ๋ถ๊ฐ๋ฅํ์ฌ Broadcasting(๋ชจ๋ IP์ ์ ์ก)์ ์ํ ์ ์ฒด ์ฑ๋ฅ์ ํ๊ฐ ๋ฐ์ํ๊ธฐ ์ฝ์ต๋๋ค.
@ L3(Network Layer)
L2์ ๋ผ์ฐํ ๊ธฐ๋ฅ์ ๋ฃ์ ๋ก๋๋ฐธ๋ฐ์์ ๋๋ค.
์ฆ ๋ผ์ฐํฐ ๊ธฐ๊ธฐ์ ์์ฒด ๊ธฐ๋ฅ์ ์ด์ฉํด IP ์ฃผ์(213.12.32.123)๋ฅผ ๋ก๋๋ฐธ๋ฐ์ฑํฉ๋๋ค.
- ๋ผ์ฐํ ํ ์ด๋ธ์ ์ ๋ณด๊ฐ ์๋ค๋ฉด ํด๋น IP๋ก ์ด๋ (Forwarding) ์ํต๋๋ค.
- ๋ง์ฝ ๋ผ์ฐํ
ํ
์ด๋ธ์ ์ ๋ณด๊ฐ ์๋ค๋ฉด, ๋ผ์ฐํฐ๋ ํด๋น ์์ฒญ์ ๋ฒ๋ฆฝ๋๋ค. (Drop)
์ฆ Public IP๊ฐ ์๋ ๋ด๋ถ๋ง์์๋ง ์ฌ์ฉํ๋ Private IP๋ ํด๋น ํ ์ด๋ธ ์ ๋ณด๊ฐ ์์ผ๋ฉด ๋คํธ์ํฌ ํต์ ์ด ๋ถ๊ฐ๋ฅํฉ๋๋ค. - ๋ผ์ฐํฐ๋ ๋ผ์ฐํ ํ๋กํ ์ฝ์ ํ์ฉํ์ฌ, ์ด๋ ํ ๋์ญ์ผ๋ก ํจํท์ ๋ณด๋ด๋๊ฒ ์ค๋ฅ์์ด ๊ฐ ์ ์๋ ๊ฒฝ๋ก์ธ์ง ํ์ตํฉ๋๋ค.
์ฅ์ : L2์ ๋ค๋ฅด๊ฒ ๊ฐ ํธ๋ํฝ์ ์ฒดํฌํ์ฌ Broadcasting์ ์ํ ์ ์ฒด ์ฑ๋ฅ์ ํ๋ฅผ ๋ฐฉ์งํ ์ ์์ต๋๋ค.
๋จ์ : ํน์ ํ๋กํ ์ฝ(ICMP)์ ์ฌ์ฉํด์ผ ์ค์์นญ์ด ๊ฐ๋ฅํฉ๋๋ค.
@ ์ฃผ๋ก ์ฌ์ฉ - L4 (Transport Layer)
IP + Port ๋ฅผ ์ด์ฉํ ๋ก๋๋ฐธ๋ฐ์ฑ์ ๋๋ค. (213.12.32.123:80, 213.12.32.123:1024)
๋จ์ ๋ผ์ฐํฐ๋ง ์ด์ฉํ๋ ๊ฒ์ด ์๋๋ผ, TCP/IP ํ๋กํ ์ฝ์ ์ฌ์ฉํฉ๋๋ค. ์ฃผ๋ก Round Robin ๋ฐฉ์์ ์ด์ฉํฉ๋๋ค.
โก Round Robin์ด๋ ์ฐ์ ์์๋ฅผ ๋์ง์๊ณ , ์๊ฐ ๋จ์๋ก ๋ฒ๊ฐ์๊ฐ๋ฉฐ ์์ฒญ์ ํ ๋นํ๋ ๊ฒ์ ๋งํฉ๋๋ค.
Port ๊ตฌ๋ถ์ด ๊ฐ๋ฅํ๊ธฐ์ ํ๋กํ ์ฝ(HTTP, FTP)๋ง๋ค ๋ค๋ฅธ ์๋ฒ๋ก ๋ณด๋ด๋๋ก ์ค์ ์ด ๊ฐ๋ฅํฉ๋๋ค.
์ค์ IP๋ค์ ํ๋์ ๊ฐ์IP(Virtual Ip, VIP)๋ก ๋ฌถ์ด์ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค. ๊ทธ๋์ ์๋์ ๊ฐ์ ์์ ์ด ๊ฐ๋ฅํฉ๋๋ค.
- VIP๋ฅผ ํตํด ์์ฒญ๋ฐ์ ์์ ์ ์ฌ๋ฌ๊ฐ์ ์๋ฒ๋ก ๋ถ์ฐ์ํฌ ์ ์์.
- VIP๋ฅผ ํตํด ์ฐ๊ฒฐ๋ ์๋ฒ๊ฐ ๋ค์ด๋์ด๋ ์๋์ผ๋ก ๋ค๋ฅธ ์๋ฒ๊ฐ ํด๋น์ญํ ์ ํ๋๋ก ์ ํํ๋ Failover ๊ธฐ๋ฅ์ง์.
@ ์ฃผ๋ก ์ฌ์ฉ - L7 Switch (Application Layer)
์ดํ๋ฆฌ์ผ์ด์ ์์ญ, ์ฆ HTTP Request ์์ฒญ ๋ด์ฉ๊น์ง ํ๋จํ์ฌ ๋ก๋๋ฐธ๋ฐ์ฑํฉ๋๋ค.
์ฐธ๊ณ ๋ก L5,L6๋ ๋คํธ์ํฌ ๊ณ์ธต์์ ๋ณ ์๋ฏธ๊ฐ ์์ด์ ์กด์ฌํ์ง ์์ต๋๋ค.
L4๊ฐ ์ฌ์ฉํ๋ IP + Port ๋ฟ๋ง์๋๋ผ URI์ ๋ณด, ์ฟ ํค๋ฑ์ ๋ค ํ๋จํด ์ ์ฐํ๊ฒ ๋คํธ์ํฌ ๋ฐธ๋ฐ์ฑ์ ํ ์ ์์ต๋๋ค.
- ์1) L4 Switch์์ ์ ๊ณตํ๋ ๊ธฐ๋ฅ์ ๋ค ํฌํจํฉ๋๋ค. ํ๋กํ ์ฝ(Port)๋ณ๋ก ๋ค๋ฅธ ์๋ฒ์ ํ ๋น ๊ฐ๋ฅํฉ๋๋ค.
- ์2) www.naver.com/blog ์ www.naver.com/cafe ๋ฅผ ๋ค๋ฅธ ์๋ฒ๊ฐ ์ฒ๋ฆฌํ๋๋ก ์ค์ ํ ์ ์์ต๋๋ค.
- ์3) URI, ์ฟ ํค, ๋ฐ์ด๋ฌ์ค ํจํด๋ฑ์ ๋ถ์ํด ํน์ ํธ๋ํฝ์ ๋ฐ์ง ์๋๋ก ํํฐ๋ง ํ ์ ์์ต๋๋ค.
- ์4) ํจํท์ ๋ฐ์ดํฐ๋ถ๋ถ, Payload๋ฅผ ๋ถ์ํ์ฌ DDOS ๊ฐ์ ์๋น์ค ๊ณต๊ฒฉ์ ์ํ ํ ์ ์์ต๋๋ค.
ํ์ฌ์์ ๊ณต์ ๊ธฐ(์ฌ์คIP)๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ โก ํ ํ์ฌ์ ๋ชจ๋ ์์ฒญ IP๊ฐ ๋๊ฐ๋ค.
- L4 ์ค์์น๋ ๋ชจ๋ ์์ฒญ์ ํ ์๋ฒ์ ํ ๋นํฉ๋๋ค. IP+Port๊ฐ ๊ฐ์ผ๋๊น
- L7 ์ค์์น๋ IP+Port๋ฟ๋ง ์๋๋ผ HTTP Request๋ฅผ ์ด์ฉํด ๋ถ์ฐ์ํค๋ฏ๋ก, ์ ์ ํ๊ฒ ๋ถ์ฐ ๊ฐ๋ฅํฉ๋๋ค.
ํ์ง๋ง L4์ ๋นํด ๋ถ์ํด์ผํ ์ ๋ณด๊ฐ ๋ง์ ๋ก๋๋ฐธ๋ฐ์ฑ ์์ ์ด ์ด๋ ต๊ณ ๋ฌด๊ฑฐ์์ง๋๋ค.
๊ทธ๋์ ์ฑ๋ฅ ์ข์ L7 Switch ์ฅ๋น์ ๊ฐ๊ฒฉ์ด ๋งค์ฐ ๋น์๋๋ค.
# ์ฌ์ฉํ๋ ๋คํธ์ํฌ ๋ก๋๋ฐธ๋ฐ์
๋ณดํต์ L2,L3๋ ํ๋ธ๋ ์ค์์นญํ๋ธ(๋ผ์ฐํ ๊ธฐ๋ฅ์ด ์๋ ํ๋ธ)์ ์ฌ์ฉ๋ฉ๋๋ค.
๋ผ์ฐํฐ๋ฅผ ์ด์ฉํ๋ฉด L4, L7๋ฅผ ์ฃผ๋ก ์ฌ์ฉํฉ๋๋ค.
'๐๊ธฐ๋ณธ ์ง์ > CS ๊ธฐ๋ณธ์ง์' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์์ ํด์(Consistent Hashing) (1) | 2024.02.18 |
---|---|
DB ์ธ๋ฑ์ค์์๋ ์ HashTable์ ์ฌ์ฉํ์ง ์์๊น? (0) | 2024.01.10 |
์ ์์ผ๊ณผ ์ต์คํธ๋ฆผ ํ๋ก๊ทธ๋๋ฐ(Agile , XP) (0) | 2021.08.25 |
ํธ๋์ญ์ ๊ฒฉ๋ฆฌ์์ค(DB Isolation Level) (0) | 2021.08.10 |
Java์์์ ์๊ณ์์ญ๊ณผ ๋ฐ๋๋ฝ ํด๊ฒฐ (sync, ๋ชจ๋ํฐ) (0) | 2021.07.28 |
๋ธ๋ก๊ทธ์ ์ ๋ณด
JiwonDev
JiwonDev