JiwonDev

๋„คํŠธ์›Œํฌ L4, L7 ๋กœ๋“œ๋ฐธ๋Ÿฐ์‹ฑ (Load balancing)

by JiwonDev

# ์„œ๋ฒ„๊ฐ€ ๋งŽ์€ ์š”์ฒญ์„ ๊ฐ๋‹นํ•˜๊ธฐ ํž˜๋“ค๋‹ค๋ฉด

์„œ๋ฒ„์˜ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œ์ผœ์•ผํ•ฉ๋‹ˆ๋‹ค. ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ค๋Š” ๋ฐฉ๋ฒ•์—๋Š” ํฌ๊ฒŒ 2๊ฐ€์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

  • Scale-up : ๊ธฐ์กด์˜ ์„œ๋ฒ„์˜ ํ•˜๋“œ์›จ์–ด๋ฅผ ๊ต์ฒดํ•ด์„œ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚จ๋‹ค.
  • Scale-out : ์„œ๋ฒ„์˜ ๊ฐœ์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ์—ฌ๋Ÿฌ ๋Œ€์˜ ์žฅ์น˜๊ฐ€ ์ผ์„ ๋‚˜๋ˆ ์„œ ์ฒ˜๋ฆฌํ•œ๋‹ค.

์ด ์ฃผ์ œ์— ๊ด€ํ•ด์„œ๋„ ์ด์•ผ๊ธฐํ•˜๋ฉด ๊ธด๋ฐ, ๋”ฐ๋กœ ๊ธ€์„ ์ž‘์„ฑํ•˜๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

 

 

# ๋กœ๋“œ๋ฐธ๋Ÿฐ์‹ฑ์ด๋ž€?

๋กœ๋“œ๋ฐธ๋Ÿฐ์‹ฑ์€ ๋ณดํ†ต ์šด์˜์ฒด์ œ์˜ ํ”„๋กœ์„ธ์„œ์˜ ์ž‘์—… ์Šค์ผ€์ฅด๋ง ๋˜๋Š” ๋„คํŠธ์›Œํฌ์— ์ฃผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ์šฉ์–ด์ž…๋‹ˆ๋‹ค.

 

์—ฌ๊ธฐ์—์„œ ๋งํ•˜๋Š” ๋กœ๋“œ๋ฐธ๋Ÿฐ์‹ฑ์€ ๋„คํŠธ์›Œํฌ ๋กœ๋“œ๋ฐธ๋Ÿฐ์‹ฑ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. 

์ฆ‰ ์„œ๋ฒ„๊ฐ€ ์—ฌ๋Ÿฌ๊ฐœ(Scale-out)์ผ ๋•Œ ์š”์ฒญ ํŠธ๋ž˜ํ”ฝ์„ ์ ์ ˆํ•˜๊ฒŒ ๋ถ„์‚ฐ์‹œ์ผœ์ฃผ๋Š” ์„œ๋น„์Šค๊ฐ€ Load Balancing์ž…๋‹ˆ๋‹ค.

4๊ณ„์ธต (TCP/IP ๋ถ„์„, Transport) ์—์„œ ๋กœ๋“œ๋ฐธ๋Ÿฐ์‹ฑ์„ ์ง„ํ–‰ํ•˜๋Š” ๊ฒฝ์šฐ
7๊ณ„์ธต (์‚ฌ์šฉ์ž์˜ Request ๋ถ„์„, HTTP)์—์„œ ๋กœ๋“œ๋ฐธ๋Ÿฐ์‹ฑ์„ ์ง„ํ–‰ํ•˜๋Š” ๊ฒฝ์šฐ

์ฐธ๊ณ ๋กœ ์ด๋ฅผ ํ•ด์ฃผ๋Š” 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)

์ฐธ๊ณ ๋กœ AWS์—์„œ ์ œ๊ณตํ•˜๋Š” ๊ฐ€์ƒ์˜ L2 Switch๋Š” ํฌํŠธ๋ฒˆํ˜ธ(4๊ณ„์ธต)์œผ๋กœ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ๋งํ•˜๋Š” ์‹ค์ œ ์Šค์œ„์น˜๋ž‘์€ ์กฐ๊ธˆ ๋‹ฌ๋ผ์š”.

  • ์žฅ์  : ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ์˜ ๊ฐ€๊ฒฉ์ด ์ €๋ ดํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ๊ตฌ์กฐ๊ฐ€ ๊ฐ„๋‹จํ•ด์„œ ์„ฑ๋Šฅ๊ณผ ์‹ ๋ขฐ์„ฑ์ด ๋†’์Šต๋‹ˆ๋‹ค.
  • ๋‹จ์  : ๋ผ์šฐํŒ…์ด ๋ถˆ๊ฐ€๋Šฅํ•˜์—ฌ 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๋ฅผ ์ฃผ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

 

๋ธ”๋กœ๊ทธ์˜ ์ •๋ณด

JiwonDev

JiwonDev

ํ™œ๋™ํ•˜๊ธฐ