[Network]Load Balancing, Load Balancer

mein-figurยท2021๋…„ 10์›” 7์ผ
0

Network & Web

๋ชฉ๋ก ๋ณด๊ธฐ
3/4

Load Balancing

  • Load Balancingโ“, Load Balancerโ“
  • Scale-up & Scale-out๐Ÿ”
  • Load Balancing์˜ ์ข…๋ฅ˜๐Ÿ”
  • Load Balancer ์ฃผ์š” ๊ธฐ๋Šฅโœ”
  • Load Balancer ๋™์ž‘ ๋ฐฉ์‹๐Ÿ”
  • Load Balancing Algorithm๐Ÿ”
  • Load Balancer ์˜ค๋ฅ˜ ๋Œ€๋น„โš 


Load Balancingโ“, Load Balancerโ“

๋กœ๋“œ๋ฐธ๋Ÿฐ์‹ฑ(load balancing, ๋˜๋Š” ๋ถ€ํ•˜ ๋ถ„์‚ฐ)์€ ์ปดํ“จํ„ฐ ๋„คํŠธ์›Œํฌ ๊ธฐ์ˆ ์˜ ์ผ์ข…์œผ๋กœ, ๋‘˜ ํ˜น์€ ์…‹ ์ด์ƒ์˜ ์ค‘์•™์ฒ˜๋ฆฌ์žฅ์น˜ ํ˜น์€ ์ €์žฅ์น˜์™€ ๊ฐ™์€ ์ปดํ“จํ„ฐ ์ž์›๋“ค์—๊ฒŒ ์ž‘์—…์„ ๋‚˜๋ˆ„๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค.

์Ÿ์•„์ง€๋Š” ํŠธ๋ž˜ํ”ฝ์„ ์—ฌ๋Ÿฌ ๋Œ€์˜ ์„œ๋ฒ„๋กœ ๋ถ„์‚ฐํ•ด์ฃผ๋Š” ๊ธฐ์ˆ ์ด ์—†๋‹ค๋ฉด, ํ•œ ๊ณณ์˜ ์„œ๋ฒ„์— ๋ชจ๋“  ํŠธ๋ž˜ํ”ฝ์ด ๋ชฐ๋ฆฌ๋Š” ์ƒํ™ฉ์ด ๋ฐœ์ƒํ•œ๋‹ค. ์•„๋ฌด๋ฆฌ ์„ฑ๋Šฅ์ด ๋›ฐ์–ด๋‚œ ์„œ๋ฒ„๋„ ๋ชจ๋“  ํŠธ๋ž˜ํ”ฝ์„ ๊ฐ๋‹นํ•  ์ˆ˜ ์—†๊ธฐ์—, ์—ฌ๋Ÿฌ ๋Œ€์˜ ์„œ๋ฒ„๋ฅผ ๊ตฌ์ถ•ํ•˜์—ฌ ์ˆ˜๋งŽ์€ ํŠธ๋ž˜ํ”ฝ์„ ํšจ๊ณผ์ ์œผ๋กœ ๋‹ค๋ค„์•ผ ํ•  ํ•„์š”์„ฑ์ด ์žˆ๋‹ค. ์ด ๋•Œ ํ•„์š”ํ•œ ๊ธฐ์ˆ ์ด ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ์ด๋‹ค.

๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ๋Š” ์„œ๋ฒ„์— ๊ฐ€ํ•ด์ง€๋Š” ๋ถ€ํ•˜๋ฅผ ๋ถ„์‚ฐํ•ด์ฃผ๋Š” ์žฅ์น˜ ๋˜๋Š” ๊ธฐ์ˆ ์„ ๋งํ•œ๋‹ค.

  • ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ํ’€(๋ถ„์‚ฐ ๋„คํŠธ์›Œํฌ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ์„œ๋ฒ„๋“ค์˜ ๊ทธ๋ฃน) ์‚ฌ์ด์— ์œ„์น˜
  • ํ•œ ๋Œ€์˜ ์„œ๋ฒ„๋กœ ๋ถ€ํ•˜๊ฐ€ ์ง‘์ค‘๋˜์ง€ ์•Š๋„๋ก ํŠธ๋ž˜ํ”ฝ์„ ๊ด€๋ฆฌํ•ด ๊ฐ๊ฐ์˜ ์„œ๋ฒ„๊ฐ€ ์ตœ์ ์˜ ํผํฌ๋จผ์Šค๋ฅผ ๋ณด์ผ ์ˆ˜ ์žˆ๋„๋ก ํ•จ


Scale-up & Scale-out ๐Ÿ”

์‚ฌ์—…์˜ ๊ทœ๋ชจ๊ฐ€ ํ™•์žฅ๋˜๊ณ , ํด๋ผ์ด์–ธํŠธ์˜ ์ˆ˜๊ฐ€ ๋Š˜์–ด๋‚˜๋ฉด ๊ธฐ์กด ์„œ๋ฒ„๋กœ ์ฆ๊ฐ€๋œ ํŠธ๋ž˜ํ”ฝ์— ๋Œ€์ฒ˜ํ•  ์ˆ˜ ์—†๋‹ค. ์ด ๋•Œ, ๋Œ€์ฒ˜ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์€ ํฌ๊ฒŒ 2๊ฐ€์ง€๊ฐ€ ์žˆ๋Š”๋ฐ, ๊ทธ๊ฒƒ์ด ๋ฐ”๋กœ Scale-up, Scale-out ์ด๋‹ค.

  • Scale-up
    • ์„œ๋ฒ„๊ฐ€ ๋” ๋น ๋ฅด๊ฒŒ ๋™์ž‘ํ•˜๊ธฐ ์œ„ํ•ด ํ•˜๋“œ์›จ์–ด ์„ฑ๋Šฅ์„ ์˜ฌ๋ฆฌ๋Š” ๋ฐฉ์‹
    • ์„œ๋ฒ„ ์ž์ฒด์˜ ์„ฑ๋Šฅ์„ ํ™•์žฅ
  • Scale-out
    • ๊ธฐ์กด ์„œ๋ฒ„์™€ ๋™์ผํ•˜๊ฑฐ๋‚˜ ๋‚ฎ์€ ์„ฑ๋Šฅ์˜ ์„œ๋ฒ„๋ฅผ ๋‘ ๋Œ€ ์ด์ƒ ์ฆ์„คํ•˜์—ฌ ์šด์˜
    • ๋กœ๋“œ๋ฐธ๋Ÿฐ์‹ฑ์ด ๋ฐ˜๋“œ์‹œ ํ•„์š”


Load Balancing์˜ ์ข…๋ฅ˜๐Ÿ”

  • OSI 7๊ณ„์ธต์— ๋”ฐ๋ผ ๋‚˜๋‰จ
    • L2(Data Link): MAC ์ฃผ์†Œ ๊ธฐ๋ฐ˜ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ
    • L3(Network): IP์ฃผ์†Œ ๊ธฐ๋ฐ˜ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ
    • L4(Transport): ํฌํŠธ ๋ฒˆํ˜ธ ๊ธฐ๋ฐ˜ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ
    • L7(Application): URL, HTTP ํ—ค๋”, ์ฟ ํ‚ค ๋“ฑ ์‚ฌ์šฉ์ž์˜ ์š”์ฒญ์„ ๊ธฐ์ค€์œผ๋กœ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ

L4 Load Balancer

  • TCP/UDP ํฌํŠธ ์ •๋ณด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ํ•จ
  • ๋ฐ์ดํ„ฐ๋ฅผ ๋“ค์—ฌ๋‹ค๋ณด์ง€ ์•Š๊ณ  ํŒจํ‚ท ๋ ˆ๋ฒจ์—์„œ ๋กœ๋“œ๋ฅผ ๋ถ„์‚ฐํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์†๋„๊ฐ€ ๋น ๋ฅด๊ณ  ํšจ์œจ์ด ๋†’์Œ
  • ๋ฐ์ดํ„ฐ์˜ ๋‚ด์šฉ์„ ๋ณตํ˜ธํ™”ํ•  ํ•„์š”๊ฐ€ ์—†์–ด ์•ˆ์ „ํ•จ
  • ํŒจํ‚ท์˜ ๋‚ด์šฉ์„ ๋ณผ ์ˆ˜ ์—†์–ด ์„ฌ์„ธํ•œ ๋ผ์šฐํŒ… ๋ถˆ๊ฐ€๋Šฅ
  • ์‚ฌ์šฉ์ž์˜ IP๊ฐ€ ์ˆ˜์‹œ๋กœ ๋ฐ”๋€Œ๋Š” ๊ฒฝ์šฐ๋ผ๋ฉด ์—ฐ์†์ ์ธ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜๊ธฐ ์–ด๋ ค์›€


L7 Load Balancer

  • TCP/UDP ์ •๋ณด๋Š” ๋ฌผ๋ก  HTTP์˜ URL, FTP์˜ ํŒŒ์ผ๋ช…, ์ฟ ํ‚ค ์ •๋ณด ๋“ฑ์„ ๋ฐ”ํƒ•์œผ๋กœ ํ•จ
  • ์ƒ์œ„ ๊ณ„์ธต์—์„œ ๋กœ๋“œ๋ฅผ ๋ถ„์‚ฐํ•˜๋ฏ€๋กœ ์„ฌ์„ธํ•œ ๋ผ์šฐํŒ… ๊ฐ€๋Šฅ
  • ์บ์‹ฑ ๊ธฐ๋Šฅ ์ œ๊ณต
  • ๋น„์ •์ƒ์ ์ธ ํŠธ๋ž˜ํ”ฝ ์‚ฌ์ „์— ํ•„ํ„ฐ๋งํ•  ์ˆ˜ ์žˆ์–ด ์„œ๋น„์Šค ์•ˆ์ •์„ฑ์ด ๋†’์Œ
  • ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ์™€ ์ธ์ฆ์„œ๋ฅผ ๊ณต์œ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ณต๊ฒฉ์ž๊ฐ€ ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ๋ฅผ ํ†ตํ•ด ํด๋ผ์ด์–ธํŠธ์˜ ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ๋ณด์•ˆ ์ƒ์˜ ์œ„ํ—˜์„ฑ ์กด์žฌ



Load Balancer ์ฃผ์š” ๊ธฐ๋Šฅโœ”

  • NAT(Network Address Translation)
    • IP์ฃผ์†Œ๋ฅผ ๋ณ€ํ™˜ํ•ด์ฃผ๋Š” ๊ธฐ๋Šฅ
    • Private IP๋ฅผ Public IP๋กœ ๋ณ€๊ฒฝ(๋ฐ˜๋Œ€๋„ ๊ฐ€๋Šฅ)
  • Tunneling
    • ๋ฐ์ดํ„ฐ๋ฅผ ์บก์Šํ™”ํ•ด์„œ ์—ฐ๊ฒฐ๋œ ์ƒํ˜ธ ๊ฐ„์—๋งŒ ์บก์Šํ™”๋œ ํŒจํ‚ท์„ ๊ตฌ๋ณ„ํ•˜์—ฌ ํ•ด์ œ ๊ฐ€๋Šฅ
  • DSR(Direct Server Routing)
    • ์„œ๋ฒ„์—์„œ ํด๋ผ์ด์–ธํŠธ๋กœ ๋˜๋Œ์•„๊ฐ€๋Š” ๊ฒฝ์šฐ(์š”์ฒญ์— ๋Œ€ํ•œ ์‘๋‹ต), ๋ชฉ์ ์ง€๋ฅผ ํด๋ผ์ด์–ธํŠธ๋กœ ์„ค์ •ํ•œ ๋‹ค์Œ ๋„คํŠธ์›Œํฌ ์žฅ๋น„๋‚˜ ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ๋ฅผ ๊ฑฐ์น˜์ง€ ์•Š๊ณ  ๋ฐ”๋กœ ํด๋ผ์ด์–ธํŠธ๋กœ ์ฐพ์•„๊ฐ
    • ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ์˜ ๋ถ€ํ•˜๋ฅผ ์ค„์—ฌ์คŒ


Load Balancer ๋™์ž‘ ๋ฐฉ์‹๐Ÿ”

  • Bridge/Transparent Mode
    1. ์œ ์ €๊ฐ€ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ๋กœ ์š”์ฒญ ์ „์†ก
    2. ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ๋Š” NAT ์ ์šฉํ•˜์—ฌ IP/MAC ์ฃผ์†Œ ๋ณ€์กฐ, ์‹ค์ œ ์„œ๋ฒ„๋กœ ํŠธ๋ž˜ํ”ฝ ์š”์ฒญ
    3. ์„œ๋ฒ„๊ฐ€ ๋ฐ›์€ ์š”์ฒญ์— ๋Œ€ํ•œ ์‘๋‹ต ์ „์†ก
    4. ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ๋Š” NAT ์ ์šฉํ•˜์—ฌ ์ถœ๋ฐœ์ง€ IP์ฃผ์†Œ๋ฅผ ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ์˜ ๊ฐ€์ƒ IP์ฃผ์†Œ๋กœ ๋ณ€์กฐํ•˜์—ฌ ์œ ์ €์—๊ฒŒ ์ „๋‹ฌ
  • Router Mode
  • One Arm Mode
  • DSR Mode


Load Balancing Algorithm๐Ÿ”

  • ๋ผ์šด๋“œ ๋กœ๋นˆ(Round Robin)
    • ์„œ๋ฒ„์— ๋“ค์–ด์˜จ ์š”์ฒญ์„ ์ˆœ์„œ๋Œ€๋กœ ๋Œ์•„๊ฐ€๋ฉฐ ๋ฐฐ์ •ํ•˜๋Š” ๋ฐฉ์‹
    • ์—ฌ๋Ÿฌ ๋Œ€์˜ ์„œ๋ฒ„๊ฐ€ ๋™์ผํ•œ ์ŠคํŽ™์„ ๊ฐ–๊ณ  ์žˆ๊ณ , ์„œ๋ฒ„์™€์˜ ์—ฐ๊ฒฐ์ด ์˜ค๋ž˜ ์ง€์†๋˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ์ ํ•ฉ
  • ๊ฐ€์ค‘ ๋ผ์šด๋“œ ๋กœ๋นˆ(Weighted Round Robin)
    • ๊ฐ๊ฐ์˜ ์„œ๋ฒ„๋งˆ๋‹ค ๊ฐ€์ค‘์น˜๋ฅผ ๋งค๊ธฐ๊ณ  ๊ฐ€์ค‘์น˜๊ฐ€ ๋†’์€ ์„œ๋ฒ„์— ์š”์ฒญ์„ ์šฐ์„ ์ ์œผ๋กœ ๋ฐฐ๋ถ„
    • ์„œ๋ฒ„๋“ค์˜ ํŠธ๋ž˜ํ”ฝ ์ฒ˜๋ฆฌ ๋Šฅ๋ ฅ์ด ๋‹ค๋ฅธ ๊ฒฝ์šฐ ์‚ฌ์šฉ๋˜๋Š” ๋ฐฉ์‹
  • IP ํ•ด์‹œ(IP Hash, Source Hash Scheduling)
    • ํด๋ผ์ด์–ธํŠธ์˜ IP์ฃผ์†Œ๋ฅผ ํŠน์ • ์„œ๋ฒ„๋กœ ๋งคํ•‘ํ•˜์—ฌ ์š”์ฒญ
    • ์‚ฌ์šฉ์ž๊ฐ€ ํ•ญ์ƒ ๋™์ผํ•œ ์„œ๋ฒ„๋กœ ์—ฐ๊ฒฐ๋˜๋Š” ๊ฒƒ์„ ๋ณด์žฅ
  • ์ตœ์†Œ ์—ฐ๊ฒฐ(Least Connection)
    • ์š”์ฒญ์ด ๋“ค์–ด์˜จ ์‹œ์ ์— ๊ฐ€์žฅ ์ ์€ ์—ฐ๊ฒฐ์ƒํƒœ๋ฅผ ๋ณด์ด๋Š” ์„œ๋ฒ„์— ์šฐ์„ ์ ์œผ๋กœ ๋ฐฐ๋ถ„
    • ์„ธ์…˜์ด ๊ธธ์–ด์ง€๊ฑฐ๋‚˜, ๋ถ„๋ฐฐ๋œ ํŠธ๋ž˜ํ”ฝ์ด ์ผ์ •ํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ์— ์ ํ•ฉ
  • ์ตœ์†Œ ๋ฆฌ์Šคํฐ ํƒ€์ž„(Least Response Time)
    • ์„œ๋ฒ„์˜ ํ˜„์žฌ ์—ฐ๊ฒฐ ์ƒํƒœ์™€ ์‘๋‹ต ์‹œ๊ฐ„์„ ๊ณ ๋ คํ•˜์—ฌ ํŠธ๋ž˜ํ”ฝ ๋ฐฐ๋ถ„
    • ๊ฐ€์žฅ ์ ์€ ์—ฐ๊ฒฐ ์ƒํƒœ์™€ ๊ฐ€์žฅ ์งง์€ ์‘๋‹ต์‹œ๊ฐ„์„ ๋ณด์ด๋Š” ์„œ๋ฒ„์— ์šฐ์„ ์ ์œผ๋กœ ๋กœ๋“œ๋ฅผ ๋ฐฐ๋ถ„


Load Balancer ์˜ค๋ฅ˜ ๋Œ€๋น„โš 

  • Load Balancer๋ฅผ ์ด์ค‘ํ™”ํ•˜์—ฌ ์žฅ์• ๋ฅผ ๋Œ€๋น„

  • ์ด์ค‘ํ™”๋œ Load Balancer๋“ค์€ ์„œ๋กœ Health Check๋ฅผ ํ•จ
  • Primary Load Balancer๊ฐ€ ๋™์ž‘ํ•˜์ง€ ์•Š์œผ๋ฉด, ์—ฌ๋ถ„์˜ Load Balancer๋กœ ๋ณ€๊ฒฝ ํ›„ ์šด์˜


REFERENCE

profile
Growing Developer

0๊ฐœ์˜ ๋Œ“๊ธ€