Post

Load Balancer

Load Balancer

๐Ÿค” Load Balancer๋ž€??

๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ(Load Balancer)๋Š” ํด๋ผ์ด์–ธํŠธ๋กœ๋ถ€ํ„ฐ ๋“ค์–ด์˜ค๋Š” ์š”์ฒญ(ํŠธ๋ž˜ํ”ฝ)์„ ์—ฌ๋Ÿฌ ๋Œ€์˜ ์„œ๋ฒ„์— ๊ณ ๋ฅด๊ฒŒ ๋ถ„์‚ฐ์‹œ์ผœ์ฃผ๋Š” ์žฅ๋น„ ๋˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด์ด๋‹ค. ์„œ๋ฒ„๊ฐ€ ํ•œ ๋Œ€์ผ ๊ฒฝ์šฐ ํŠธ๋ž˜ํ”ฝ์ด ๋ชฐ๋ฆฌ๋ฉด ์‘๋‹ต ์†๋„๊ฐ€ ๋А๋ ค์ง€๊ฑฐ๋‚˜ ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ๋Š” ์—ฌ๋Ÿฌ ๋Œ€์˜ ์„œ๋ฒ„(์„œ๋ฒ„ ํ’€, Server Pool) ์•ž๋‹จ์— ์œ„์น˜ํ•˜์—ฌ ์š”์ฒญ์„ ๋ถ„๋ฐฐํ•จ์œผ๋กœ์จ ํŠน์ • ์„œ๋ฒ„์— ๋ถ€ํ•˜๊ฐ€ ์ง‘์ค‘๋˜์ง€ ์•Š๋„๋ก ์กฐ์œจํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.

ํด๋ผ์ด์–ธํŠธ ์ž…์žฅ์—์„œ๋Š” ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ์˜ ๊ฐ€์ƒ IP(VIP) ํ•˜๋‚˜๋งŒ ๋ฐ”๋ผ๋ณด๊ฒŒ ๋˜๊ณ , ์‹ค์ œ๋กœ ์–ด๋–ค ์„œ๋ฒ„๊ฐ€ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๋Š”์ง€๋Š” ์•Œ ํ•„์š”๊ฐ€ ์—†๋‹ค. ์ฆ‰ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ๋Š” ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ์‚ฌ์ด์˜ ์ค‘๊ฐœ์ž(Reverse Proxy) ์—ญํ• ์„ ํ•˜๋ฉด์„œ, ๋’ท๋‹จ ์„œ๋ฒ„๋“ค์˜ ๊ตฌ์„ฑ์ด ๋ฐ”๋€Œ์–ด๋„ ํด๋ผ์ด์–ธํŠธ์—๋Š” ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๋Š” ์ถ”์ƒํ™” ๊ณ„์ธต์„ ์ œ๊ณตํ•œ๋‹ค.

โš™๏ธ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ์˜ ์—ญํ• 

  • ๐Ÿšฆ Distribute Traffic (ํŠธ๋ž˜ํ”ฝ ๋ถ„์‚ฐ)
    • Round Robin, Least Connections, IP Hash ๋“ฑ์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ด์šฉํ•ด ์—ฌ๋Ÿฌ ์„œ๋ฒ„์— ์š”์ฒญ์„ ๊ท ๋“ฑํ•˜๊ฒŒ ๋ถ„๋ฐฐํ•œ๋‹ค.
    • ํŠน์ • ์„œ๋ฒ„์—๋งŒ ํŠธ๋ž˜ํ”ฝ์ด ๋ชฐ๋ฆฌ๋Š” ๋ณ‘๋ชฉ ํ˜„์ƒ์„ ๋ฐฉ์ง€ํ•œ๋‹ค.
  • ๐Ÿ“ˆ Scale Applications (ํ™•์žฅ์„ฑ ์ œ๊ณต)
    • ํŠธ๋ž˜ํ”ฝ์ด ์ฆ๊ฐ€ํ•˜๋ฉด ์„œ๋ฒ„๋ฅผ ์ˆ˜ํ‰์œผ๋กœ ํ™•์žฅ(Scale-out)ํ•˜๊ณ , ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ๊ฐ€ ์ƒˆ๋กœ ์ถ”๊ฐ€๋œ ์„œ๋ฒ„๋ฅผ ์ž๋™์œผ๋กœ ํ’€์— ํฌํ•จ์‹œ์ผœ ํŠธ๋ž˜ํ”ฝ์„ ๋ถ„์‚ฐํ•œ๋‹ค.
    • ๋ฐ˜๋Œ€๋กœ ํŠธ๋ž˜ํ”ฝ์ด ์ค„์–ด๋“ค๋ฉด ์„œ๋ฒ„๋ฅผ ์ค„์ด๋Š” Scale-in๋„ ์œ ์—ฐํ•˜๊ฒŒ ๋Œ€์‘ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • โšก Improve Performance (์„ฑ๋Šฅ ํ–ฅ์ƒ)
    • ๊ฐ ์„œ๋ฒ„์˜ ๋ถ€ํ•˜๋ฅผ ๋‚ฎ์ถฐ ์‘๋‹ต ์‹œ๊ฐ„์„ ๋‹จ์ถ•์‹œํ‚จ๋‹ค.
    • SSL Termination(SSL ์ฒ˜๋ฆฌ๋ฅผ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ๊ฐ€ ๋Œ€์‹  ์ˆ˜ํ–‰), ์บ์‹ฑ, ์••์ถ• ๋“ฑ์„ ํ†ตํ•ด ๋ฐฑ์—”๋“œ ์„œ๋ฒ„์˜ ์—ฐ์‚ฐ ๋ถ€๋‹ด์„ ์ค„์—ฌ์ค€๋‹ค.
  • ๐Ÿ›ก๏ธ Improve Availability (๊ฐ€์šฉ์„ฑ ํ–ฅ์ƒ)
    • Health Check๋ฅผ ํ†ตํ•ด ๊ฐ ์„œ๋ฒ„์˜ ์ƒํƒœ๋ฅผ ์ฃผ๊ธฐ์ ์œผ๋กœ ํ™•์ธํ•˜๊ณ , ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•œ ์„œ๋ฒ„๋Š” ํŠธ๋ž˜ํ”ฝ ๋ถ„๋ฐฐ ๋Œ€์ƒ์—์„œ ์ž๋™์œผ๋กœ ์ œ์™ธํ•œ๋‹ค.
    • ํŠน์ • ์„œ๋ฒ„๊ฐ€ ๋‹ค์šด๋˜๋”๋ผ๋„ ๋‚˜๋จธ์ง€ ์„œ๋ฒ„๊ฐ€ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๋ฏ€๋กœ ์„œ๋น„์Šค ์ „์ฒด์˜ ๋ฌด์ค‘๋‹จ(High Availability)์„ ๋ณด์žฅํ•  ์ˆ˜ ์žˆ๋‹ค.

๐Ÿงฉ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ ํƒ€์ž…

๐Ÿ–ฅ๏ธ ํ•˜๋“œ์›จ์–ด ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ

  • F5 BIG-IP, Citrix ADC(NetScaler) ๋“ฑ ๋ฌผ๋ฆฌ ์žฅ๋น„ ํ˜•ํƒœ๋กœ ์ œ๊ณต๋˜๋Š” ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ์ด๋‹ค.
  • ์ „์šฉ ํ•˜๋“œ์›จ์–ด(ASIC)๋กœ ํŠธ๋ž˜ํ”ฝ์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋งค์šฐ ๋†’์€ ์ฒ˜๋ฆฌ๋Ÿ‰๊ณผ ๋‚ฎ์€ ์ง€์—ฐ ์‹œ๊ฐ„์„ ๋ณด์žฅํ•œ๋‹ค.
  • ์‚ฌ์šฉ ์‹œ์ : ๋Œ€๊ทœ๋ชจ ๊ธˆ์œต๊ถŒ, ํ†ต์‹ ์‚ฌ ๋“ฑ ํŠธ๋ž˜ํ”ฝ ์–‘์ด ๋งค์šฐ ๋งŽ๊ณ  ์ดˆ์ €์ง€์—ฐ์ด ์š”๊ตฌ๋˜๋ฉฐ, ์ดˆ๊ธฐ ๋„์ž… ๋น„์šฉ(CAPEX)์„ ๊ฐ๋‹นํ•  ์ˆ˜ ์žˆ๋Š” ์˜จํ”„๋ ˆ๋ฏธ์Šค ๋ฐ์ดํ„ฐ์„ผํ„ฐ ํ™˜๊ฒฝ์—์„œ ์ฃผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค.

๐Ÿ’พ ์†Œํ”„ํŠธ์›จ์–ด ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ

  • Nginx, HAProxy, Envoy ๋“ฑ ์ผ๋ฐ˜ ์„œ๋ฒ„(๋ฆฌ๋ˆ…์Šค ๋“ฑ) ์œ„์— ์„ค์น˜ํ•ด์„œ ์‚ฌ์šฉํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด์ด๋‹ค.
  • ํ•˜๋“œ์›จ์–ด ๋Œ€๋น„ ๋น„์šฉ์ด ์ €๋ ดํ•˜๊ณ , ์„ค์ • ๋ณ€๊ฒฝ์ด๋‚˜ ์Šค์ผ€์ผ ์กฐ์ •์ด ์œ ์—ฐํ•˜๋‹ค.
  • ์‚ฌ์šฉ ์‹œ์ : ์Šคํƒ€ํŠธ์—…์ด๋‚˜ ์ค‘์†Œ ๊ทœ๋ชจ ์„œ๋น„์Šค์ฒ˜๋Ÿผ ๋น„์šฉ ํšจ์œจ์„ฑ๊ณผ ์œ ์—ฐํ•œ ์ปค์Šคํ„ฐ๋งˆ์ด์ง•(๋ผ์šฐํŒ… ๊ทœ์น™, ์บ์‹ฑ ๋“ฑ)์ด ์ค‘์š”ํ•œ ๊ฒฝ์šฐ, ํ˜น์€ ์ปจํ…Œ์ด๋„ˆ/์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ํ™˜๊ฒฝ์—์„œ Ingress Controller๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ์— ์ ํ•ฉํ•˜๋‹ค.

โ˜๏ธ ํด๋ผ์šฐ๋“œ ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ

  • AWS ELB(ALB/NLB), GCP Load Balancing, Azure Load Balancer์ฒ˜๋Ÿผ ํด๋ผ์šฐ๋“œ ๋ฒค๋”๊ฐ€ ๊ด€๋ฆฌํ˜• ์„œ๋น„์Šค๋กœ ์ œ๊ณตํ•˜๋Š” ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ์ด๋‹ค.
  • ์ธํ”„๋ผ ๊ด€๋ฆฌ(HA ๊ตฌ์„ฑ, ํŒจ์น˜, ์žฅ์•  ๋Œ€์‘)๋ฅผ ๋ฒค๋”๊ฐ€ ๋Œ€์‹  ํ•ด์ฃผ๋ฉฐ, ํŠธ๋ž˜ํ”ฝ์— ๋”ฐ๋ผ ์ž๋™์œผ๋กœ ํ™•์žฅ(Auto Scaling)๋œ๋‹ค.
  • ์‚ฌ์šฉ ์‹œ์ : ํด๋ผ์šฐ๋“œ ๋„ค์ดํ‹ฐ๋ธŒ ํ™˜๊ฒฝ์—์„œ ์šด์˜ ๋ถ€๋‹ด ์—†์ด ๋น ๋ฅด๊ฒŒ ๋ฐฐํฌํ•˜๊ณ , ํŠธ๋ž˜ํ”ฝ ๋ณ€๋™ ํญ์ด ํฐ ์„œ๋น„์Šค(์˜ˆ: ์ด๋ฒคํŠธ์„ฑ ํŠธ๋ž˜ํ”ฝ ๊ธ‰์ฆ)์— ์ž๋™์œผ๋กœ ๋Œ€์‘ํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.

๐Ÿ”Œ L4 ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ

  • OSI 4๊ณ„์ธต(Transport Layer)์—์„œ ๋™์ž‘ํ•˜๋ฉฐ, IP ์ฃผ์†Œ์™€ ํฌํŠธ ์ •๋ณด๋งŒ ๋ณด๊ณ  ํŠธ๋ž˜ํ”ฝ์„ ๋ถ„์‚ฐํ•œ๋‹ค.
  • ํŒจํ‚ท์˜ ๋‚ด์šฉ(HTTP ํ—ค๋”, URL ๋“ฑ)์„ ๋“ค์—ฌ๋‹ค๋ณด์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์ฒ˜๋ฆฌ ์†๋„๊ฐ€ ๋น ๋ฅด๊ณ  ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ์ ๋‹ค.
  • ์‚ฌ์šฉ ์‹œ์ : HTTP๋ฟ ์•„๋‹ˆ๋ผ TCP/UDP ๊ธฐ๋ฐ˜์˜ ๋‹ค์–‘ํ•œ ํ”„๋กœํ† ์ฝœ(DB ์ปค๋„ฅ์…˜, ๊ฒŒ์ž„ ์„œ๋ฒ„ ๋“ฑ)์„ ๋ถ„์‚ฐํ•ด์•ผ ํ•˜๊ฑฐ๋‚˜, ์ตœ๊ณ  ์ˆ˜์ค€์˜ ์ฒ˜๋ฆฌ ์„ฑ๋Šฅ์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ์— ์‚ฌ์šฉํ•œ๋‹ค.

๐ŸŒ L7 ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ

  • OSI 7๊ณ„์ธต(Application Layer)์—์„œ ๋™์ž‘ํ•˜๋ฉฐ, HTTP ํ—ค๋”, URL ๊ฒฝ๋กœ, ์ฟ ํ‚ค ๋“ฑ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ผ์šฐํŒ…ํ•œ๋‹ค.
  • /api๋Š” API ์„œ๋ฒ„๋กœ, /static์€ ์ •์  ํŒŒ์ผ ์„œ๋ฒ„๋กœ ๋ณด๋‚ด๋Š” ๋“ฑ ์ฝ˜ํ…์ธ  ๊ธฐ๋ฐ˜ ๋ผ์šฐํŒ…์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
  • ์‚ฌ์šฉ ์‹œ์ : ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜์ฒ˜๋Ÿผ URL ๊ฒฝ๋กœ๋‚˜ ํ—ค๋”์— ๋”ฐ๋ผ ๋‹ค๋ฅธ ๋ฐฑ์—”๋“œ๋กœ ์š”์ฒญ์„ ๋ถ„๊ธฐํ•ด์•ผ ํ•˜๊ฑฐ๋‚˜, SSL Terminationยท์ฟ ํ‚ค ๊ธฐ๋ฐ˜ ์„ธ์…˜ ์œ ์ง€(Sticky Session) ๊ฐ™์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ ˆ๋ฒจ ๊ธฐ๋Šฅ์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ์— ์‚ฌ์šฉํ•œ๋‹ค.

๐ŸŒ Global Server Load Balancer (GSLB)

  • ๋‹จ์ผ ๋ฐ์ดํ„ฐ์„ผํ„ฐ๊ฐ€ ์•„๋‹Œ, ์ง€๋ฆฌ์ ์œผ๋กœ ๋ถ„์‚ฐ๋œ ์—ฌ๋Ÿฌ ๋ฐ์ดํ„ฐ์„ผํ„ฐ/๋ฆฌ์ „์— ๊ฑธ์ณ ํŠธ๋ž˜ํ”ฝ์„ ๋ถ„์‚ฐํ•˜๋Š” ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ์ด๋‹ค.
  • DNS ๊ธฐ๋ฐ˜์œผ๋กœ ๋™์ž‘ํ•˜๋ฉฐ, ์‚ฌ์šฉ์ž์˜ ์œ„์น˜์—์„œ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด(ํ˜น์€ ๊ฐ€์žฅ ์‘๋‹ต์ด ๋น ๋ฅธ) ๋ฆฌ์ „์œผ๋กœ ํŠธ๋ž˜ํ”ฝ์„ ๋ผ์šฐํŒ…ํ•œ๋‹ค.
  • ์‚ฌ์šฉ ์‹œ์ : ๊ธ€๋กœ๋ฒŒ ์„œ๋น„์Šค์—์„œ ์‚ฌ์šฉ์ž์™€ ์ง€๋ฆฌ์ ์œผ๋กœ ๊ฐ€๊นŒ์šด ์„œ๋ฒ„๋กœ ์—ฐ๊ฒฐํ•ด ์ง€์—ฐ ์‹œ๊ฐ„์„ ์ค„์ด๊ฑฐ๋‚˜, ํ•œ ๋ฆฌ์ „ ์ „์ฒด์— ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ๋‹ค๋ฅธ ๋ฆฌ์ „์œผ๋กœ ํŠธ๋ž˜ํ”ฝ์„ ์šฐํšŒ์‹œ์ผœ ์žฌํ•ด ๋ณต๊ตฌ(DR)๋ฅผ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ์— ์‚ฌ์šฉํ•œ๋‹ค.

๐Ÿ”€ Load Balancing Algorithms

1๏ธโƒฃ Round Robin

  • ๋™์ž‘ ๋ฐฉ์‹: ์„œ๋ฒ„ ๋ชฉ๋ก์„ ์ˆœ์„œ๋Œ€๋กœ ๋Œ์•„๊ฐ€๋ฉฐ ์š”์ฒญ์„ ํ•˜๋‚˜์”ฉ ๋ฐฐ๋ถ„ํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์„œ๋ฒ„๊ฐ€ A, B, C ์„ธ ๋Œ€๋ผ๋ฉด ์š”์ฒญ์€ A โ†’ B โ†’ C โ†’ A โ†’ B โ†’ C ์ˆœ์„œ๋กœ ์ „๋‹ฌ๋œ๋‹ค.
  • ์ ์šฉ ์ƒํ™ฉ: ๋ชจ๋“  ์„œ๋ฒ„์˜ ์ŠคํŽ™(CPU, ๋ฉ”๋ชจ๋ฆฌ ๋“ฑ)์ด ๋™์ผํ•˜๊ณ , ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„๋„ ๋น„์Šทํ•œ ๊ฒฝ์šฐ์— ์ ํ•ฉํ•˜๋‹ค. ๊ตฌํ˜„์ด ๋‹จ์ˆœํ•ด์„œ ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋งŽ์ด ์“ฐ์ธ๋‹ค.

2๏ธโƒฃ Sticky Round Robin

  • ๋™์ž‘ ๋ฐฉ์‹: ๊ธฐ๋ณธ์ ์ธ Round Robin ๋ฐฉ์‹์œผ๋กœ ์„œ๋ฒ„๋ฅผ ๋ฐฐ๋ถ„ํ•˜๋˜, ํ•œ ๋ฒˆ ํŠน์ • ํด๋ผ์ด์–ธํŠธ๊ฐ€ ํŠน์ • ์„œ๋ฒ„์— ์—ฐ๊ฒฐ๋˜๋ฉด ์ดํ›„ ์š”์ฒญ๋„ ๊ณ„์† ๊ฐ™์€ ์„œ๋ฒ„๋กœ ๋ณด๋‚ธ๋‹ค(์„ธ์…˜ ์œ ์ง€, Session Affinity). ๋ณดํ†ต ์ฟ ํ‚ค๋‚˜ ํด๋ผ์ด์–ธํŠธ ์ •๋ณด๋ฅผ ์ด์šฉํ•ด ๋งคํ•‘์„ ๊ธฐ์–ตํ•œ๋‹ค.
  • ์ ์šฉ ์ƒํ™ฉ: ๋กœ๊ทธ์ธ ์„ธ์…˜ ์ •๋ณด๋‚˜ ์žฅ๋ฐ”๊ตฌ๋‹ˆ ๋ฐ์ดํ„ฐ์ฒ˜๋Ÿผ ์„œ๋ฒ„์˜ ๋กœ์ปฌ ๋ฉ”๋ชจ๋ฆฌ(์ธ๋ฉ”๋ชจ๋ฆฌ ์„ธ์…˜)์— ์ƒํƒœ๋ฅผ ์ €์žฅํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ, ๊ฐ™์€ ์‚ฌ์šฉ์ž์˜ ์š”์ฒญ์ด ํ•ญ์ƒ ๊ฐ™์€ ์„œ๋ฒ„๋กœ ๊ฐ€์•ผ ํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. ๋‹ค๋งŒ ํŠน์ • ์„œ๋ฒ„์— ํŠน์ • ์‚ฌ์šฉ์ž๋“ค์ด ๋ชฐ๋ฆด ๊ฒฝ์šฐ ๋ถ€ํ•˜๊ฐ€ ๋ถˆ๊ท ๋“ฑํ•ด์งˆ ์ˆ˜ ์žˆ๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค.

3๏ธโƒฃ Weighted Round Robin

  • ๋™์ž‘ ๋ฐฉ์‹: ๊ฐ ์„œ๋ฒ„์— ๊ฐ€์ค‘์น˜(Weight)๋ฅผ ๋ถ€์—ฌํ•˜๊ณ , ๊ฐ€์ค‘์น˜๊ฐ€ ๋†’์€ ์„œ๋ฒ„์ผ์ˆ˜๋ก ๋” ๋งŽ์€ ์š”์ฒญ์„ ๋ฐ›๋„๋ก ๋ถ„๋ฐฐํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด A ์„œ๋ฒ„์˜ ๊ฐ€์ค‘์น˜๊ฐ€ 3, B ์„œ๋ฒ„๊ฐ€ 1์ด๋ผ๋ฉด A๋Š” B๋ณด๋‹ค 3๋ฐฐ ๋งŽ์€ ์š”์ฒญ์„ ๋ฐ›๋Š”๋‹ค.
  • ์ ์šฉ ์ƒํ™ฉ: ์„œ๋ฒ„ ์ŠคํŽ™์ด ์„œ๋กœ ๋‹ค๋ฅธ ๊ฒฝ์šฐ(์˜ˆ: ๊ณ ์„ฑ๋Šฅ ์„œ๋ฒ„์™€ ์ €์„ฑ๋Šฅ ์„œ๋ฒ„๊ฐ€ ํ˜ผ์žฌ๋œ ํ™˜๊ฒฝ)์— ์„ฑ๋Šฅ์— ๋น„๋ก€ํ•ด ํŠธ๋ž˜ํ”ฝ์„ ๋ฐฐ๋ถ„ํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. ์‹ ๊ทœ ์„œ๋ฒ„๋ฅผ ์ ์ง„์ ์œผ๋กœ ํŠธ๋ž˜ํ”ฝ์— ๋…ธ์ถœ์‹œํ‚ค๋Š” ์นด๋‚˜๋ฆฌ ๋ฐฐํฌ ์ƒํ™ฉ์—์„œ๋„ ํ™œ์šฉ๋œ๋‹ค.

4๏ธโƒฃ IP/URL Hash

  • ๋™์ž‘ ๋ฐฉ์‹: ํด๋ผ์ด์–ธํŠธ์˜ IP ์ฃผ์†Œ๋‚˜ ์š”์ฒญ URL์„ ํ•ด์‹œ ํ•จ์ˆ˜์— ์ž…๋ ฅํ•ด ๋‚˜์˜จ ๊ฐ’์„ ๊ธฐ์ค€์œผ๋กœ ํ•ญ์ƒ ๋™์ผํ•œ ์„œ๋ฒ„๋กœ ๋ผ์šฐํŒ…ํ•œ๋‹ค. ๊ฐ™์€ ์ž…๋ ฅ๊ฐ’์ด๋ฉด ํ•ญ์ƒ ๊ฐ™์€ ํ•ด์‹œ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ค๋ฏ€๋กœ ๋™์ผ ์„œ๋ฒ„๋กœ ๊ณ ์ •๋œ๋‹ค.
  • ์ ์šฉ ์ƒํ™ฉ: Sticky Round Robin๊ณผ ์œ ์‚ฌํ•˜๊ฒŒ ์„ธ์…˜ ์œ ์ง€๊ฐ€ ํ•„์š”ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋ฉฐ, ํŠนํžˆ ๋ณ„๋„์˜ ์ฟ ํ‚ค ์ €์žฅ ์—†์ด๋„ ํด๋ผ์ด์–ธํŠธ IP๋งŒ์œผ๋กœ ์„ธ์…˜ ์นœํ™”์„ฑ์„ ๋ณด์žฅํ•˜๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ์— ์ ํ•ฉํ•˜๋‹ค. ๋˜ํ•œ URL Hash๋Š” ์บ์‹ฑ ์„œ๋ฒ„ ์•ž๋‹จ์—์„œ ๋™์ผํ•œ ์ฝ˜ํ…์ธ  ์š”์ฒญ์„ ํ•ญ์ƒ ๊ฐ™์€ ์บ์‹œ ์„œ๋ฒ„๋กœ ๋ณด๋‚ด ์บ์‹œ ์ ์ค‘๋ฅ (Cache Hit Ratio)์„ ๋†’์ด๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.

5๏ธโƒฃ Least Connections

  • ๋™์ž‘ ๋ฐฉ์‹: ํ˜„์žฌ ํ™œ์„ฑ ์ปค๋„ฅ์…˜(์ง„ํ–‰ ์ค‘์ธ ์š”์ฒญ) ์ˆ˜๊ฐ€ ๊ฐ€์žฅ ์ ์€ ์„œ๋ฒ„๋กœ ์š”์ฒญ์„ ์šฐ์„  ์ „๋‹ฌํ•œ๋‹ค.
  • ์ ์šฉ ์ƒํ™ฉ: ์š”์ฒญ๋งˆ๋‹ค ์ฒ˜๋ฆฌ ์‹œ๊ฐ„์˜ ํŽธ์ฐจ๊ฐ€ ํฐ ๊ฒฝ์šฐ(์–ด๋–ค ์š”์ฒญ์€ ๊ธˆ๋ฐฉ ๋๋‚˜๊ณ  ์–ด๋–ค ์š”์ฒญ์€ ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๋Š” ๊ฒฝ์šฐ)์— ์ ํ•ฉํ•˜๋‹ค. Round Robin์€ ์ˆœ์„œ๋Œ€๋กœ๋งŒ ๋ฐฐ๋ถ„ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํŠน์ • ์„œ๋ฒ„์— ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๋Š” ์š”์ฒญ์ด ๋ชฐ๋ฆด ์ˆ˜ ์žˆ๋Š”๋ฐ, Least Connections๋Š” ์‹ค์‹œ๊ฐ„ ๋ถ€ํ•˜ ์ƒํƒœ๋ฅผ ๋ฐ˜์˜ํ•ด ๋” ๊ท ํ˜• ์žกํžŒ ๋ถ„๋ฐฐ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.

6๏ธโƒฃ Least Time (Least Response Time)

  • ๋™์ž‘ ๋ฐฉ์‹: ํ™œ์„ฑ ์ปค๋„ฅ์…˜ ์ˆ˜๋ฟ ์•„๋‹ˆ๋ผ ๊ฐ ์„œ๋ฒ„์˜ ํ‰๊ท  ์‘๋‹ต ์‹œ๊ฐ„(Latency)๊นŒ์ง€ ํ•จ๊ป˜ ๊ณ ๋ คํ•ด์„œ, ๊ฐ€์žฅ ๋น ๋ฅด๊ฒŒ ์‘๋‹ตํ•  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒ๋˜๋Š” ์„œ๋ฒ„๋กœ ์š”์ฒญ์„ ์ „๋‹ฌํ•œ๋‹ค.
  • ์ ์šฉ ์ƒํ™ฉ: ์„œ๋ฒ„ ๊ฐ„ ์„ฑ๋Šฅ ํŽธ์ฐจ๋‚˜ ๋„คํŠธ์›Œํฌ ์ง€์—ฐ ํŽธ์ฐจ๊ฐ€ ์žˆ์–ด ๋‹จ์ˆœํžˆ ์ปค๋„ฅ์…˜ ์ˆ˜๋งŒ์œผ๋กœ๋Š” ์ตœ์ ์˜ ์„œ๋ฒ„๋ฅผ ํŒ๋‹จํ•˜๊ธฐ ์–ด๋ ค์šด ๊ฒฝ์šฐ์— ์‚ฌ์šฉํ•œ๋‹ค. ์‹ค์‹œ๊ฐ„์œผ๋กœ ์‘๋‹ต ์†๋„๊ฐ€ ๊ฐ€์žฅ ์ข‹์€ ์„œ๋ฒ„๋ฅผ ์„ ํƒํ•˜๋ฏ€๋กœ ์‚ฌ์šฉ์ž ์ฒด๊ฐ ์„ฑ๋Šฅ(Latency)์„ ์ตœ์šฐ์„ ์œผ๋กœ ๊ณ ๋ คํ•ด์•ผ ํ•˜๋Š” ์„œ๋น„์Šค์— ์ ํ•ฉํ•˜๋‹ค.

๐Ÿ“Š Key Metrics

๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ๊ฐ€ ์ œ๋Œ€๋กœ ๋™์ž‘ํ•˜๊ณ  ์žˆ๋Š”์ง€, ๊ทธ๋ฆฌ๊ณ  ๊ทธ ๋’ค์— ์žˆ๋Š” ์„œ๋ฒ„๋“ค์ด ๊ฑด๊ฐ•ํ•œ ์ƒํƒœ์ธ์ง€๋ฅผ ํŒŒ์•…ํ•˜๋ ค๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ ์ง€ํ‘œ๋“ค์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•ด์•ผ ํ•œ๋‹ค.

๐Ÿš— 1. Traffic Metrics

  • Request Rate: ์ดˆ๋‹น ๋“ค์–ด์˜ค๋Š” ์š”์ฒญ ์ˆ˜(RPS/QPS). ํ˜„์žฌ ์‹œ์Šคํ…œ์— ์–ผ๋งˆ๋‚˜ ๋งŽ์€ ํŠธ๋ž˜ํ”ฝ์ด ๋ชฐ๋ฆฌ๊ณ  ์žˆ๋Š”์ง€, ํ‰์†Œ ๋Œ€๋น„ ๊ธ‰์ฆ(์ŠคํŒŒ์ดํฌ)์ด๋‚˜ ๊ธ‰๊ฐ์ด ์žˆ๋Š”์ง€๋ฅผ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ๋‹ค. ์Šค์ผ€์ผ ์•„์›ƒ/์ธ ์‹œ์ ์„ ํŒ๋‹จํ•˜๋Š” ํ•ต์‹ฌ ์ง€ํ‘œ๋‹ค.
  • Total Connections: ํ˜„์žฌ ์œ ์ง€๋˜๊ณ  ์žˆ๋Š” ์ „์ฒด ์ปค๋„ฅ์…˜ ์ˆ˜. ์ปค๋„ฅ์…˜์ด ๋น„์ •์ƒ์ ์œผ๋กœ ๊ณ„์† ์Œ“์ด๊ธฐ๋งŒ ํ•œ๋‹ค๋ฉด ์„œ๋ฒ„๊ฐ€ ์š”์ฒญ์„ ์ œ๋•Œ ์ฒ˜๋ฆฌํ•˜์ง€ ๋ชปํ•˜๊ณ  ์žˆ๋‹ค๋Š” ์‹ ํ˜ธ์ผ ์ˆ˜ ์žˆ๋‹ค.

โšก 2. Performance Metrics

  • Response Time: ์š”์ฒญ์ด ๋“ค์–ด์™€์„œ ์‘๋‹ต์ด ๋‚˜๊ฐˆ ๋•Œ๊นŒ์ง€ ๊ฑธ๋ฆฐ ์ „์ฒด ์‹œ๊ฐ„. ์‚ฌ์šฉ์ž๊ฐ€ ์ฒด๊ฐํ•˜๋Š” ์„œ๋น„์Šค ์†๋„๋ฅผ ์ง์ ‘์ ์œผ๋กœ ๋ณด์—ฌ์ค€๋‹ค.
  • Latency: ๋„คํŠธ์›Œํฌ ์™•๋ณต์ด๋‚˜ ์ฒ˜๋ฆฌ ๋Œ€๊ธฐ ๋“ฑ์œผ๋กœ ์ธํ•œ ์ง€์—ฐ ์‹œ๊ฐ„. Response Time ์ค‘ ์ˆœ์ˆ˜ ์ฒ˜๋ฆฌ ์‹œ๊ฐ„ ์™ธ์ ์ธ ์ง€์—ฐ ์š”์†Œ(๋„คํŠธ์›Œํฌ ๊ตฌ๊ฐ„, ํ์ž‰ ๋“ฑ)๋ฅผ ๋ถ„๋ฆฌํ•ด์„œ ๋ณ‘๋ชฉ ๊ตฌ๊ฐ„์„ ์ฐพ์•„๋‚ผ ์ˆ˜ ์žˆ๋‹ค.
  • Throughput: ๋‹จ์œ„ ์‹œ๊ฐ„๋‹น ์‹ค์ œ๋กœ ์ฒ˜๋ฆฌํ•ด๋‚ธ ๋ฐ์ดํ„ฐ๋Ÿ‰/์š”์ฒญ๋Ÿ‰. ์‹œ์Šคํ…œ์ด ์‹ค์งˆ์ ์œผ๋กœ ์–ผ๋งˆ๋‚˜ ๋งŽ์€ ์ผ์„ ์†Œํ™”ํ•˜๊ณ  ์žˆ๋Š”์ง€๋ฅผ ๋ณด์—ฌ์ฃผ๋ฉฐ, Request Rate์™€ ๋น„๊ตํ•˜๋ฉด ์‹œ์Šคํ…œ์ด ์œ ์ž… ํŠธ๋ž˜ํ”ฝ์„ ๊ฐ๋‹นํ•˜๊ณ  ์žˆ๋Š”์ง€(๋ฐ€๋ฆฌ๊ณ  ์žˆ์ง€ ์•Š์€์ง€) ํŒ๋‹จํ•  ์ˆ˜ ์žˆ๋‹ค.

๐Ÿ’“ 3. Health Metrics

  • Server Health Checks: ๊ฐ ๋ฐฑ์—”๋“œ ์„œ๋ฒ„๊ฐ€ ์ •์ƒ ์‘๋‹ต ์ค‘์ธ์ง€ ์ฃผ๊ธฐ์ ์œผ๋กœ ํ™•์ธํ•œ ๊ฒฐ๊ณผ. ์–ด๋–ค ์„œ๋ฒ„๊ฐ€ ํŠธ๋ž˜ํ”ฝ์„ ๋ฐ›์„ ์ค€๋น„๊ฐ€ ๋˜์–ด ์žˆ๋Š”์ง€ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์•Œ ์ˆ˜ ์žˆ๋‹ค.
  • Failed Health Checks: Health Check์— ์‹คํŒจํ•œ ํšŸ์ˆ˜. ํŠน์ • ์„œ๋ฒ„๊ฐ€ ๋ฐ˜๋ณต์ ์œผ๋กœ ์‹คํŒจํ•œ๋‹ค๋ฉด ํ•ด๋‹น ์„œ๋ฒ„์— ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ–ˆ๊ฑฐ๋‚˜ ๊ณง ์žฅ์• ๋กœ ์ด์–ด์งˆ ๊ฐ€๋Šฅ์„ฑ์ด ๋†’๋‹ค๋Š” ์กฐ๊ธฐ ๊ฒฝ๊ณ  ์‹ ํ˜ธ๋‹ค.

๐Ÿšจ 4. Error Metrics

  • HTTP Error Rates: 4xx, 5xx ๊ฐ™์€ ์—๋Ÿฌ ์‘๋‹ต์˜ ๋น„์œจ. ํด๋ผ์ด์–ธํŠธ ์š”์ฒญ ์ž์ฒด์˜ ๋ฌธ์ œ(4xx)์ธ์ง€ ์„œ๋ฒ„/๋ฐฑ์—”๋“œ ๋ฌธ์ œ(5xx)์ธ์ง€ ๊ตฌ๋ถ„ํ•ด์„œ ์žฅ์•  ์›์ธ์„ ์ขํ˜€๋‚˜๊ฐˆ ์ˆ˜ ์žˆ๋‹ค.
  • Dropped Connections: ์ •์ƒ์ ์œผ๋กœ ์™„๋ฃŒ๋˜์ง€ ๋ชปํ•˜๊ณ  ๋Š๊ธด ์ปค๋„ฅ์…˜ ์ˆ˜. ์„œ๋ฒ„ ๊ณผ๋ถ€ํ•˜, ํƒ€์ž„์•„์›ƒ, ๋„คํŠธ์›Œํฌ ๋ถˆ์•ˆ์ • ๋“ฑ์œผ๋กœ ์‚ฌ์šฉ์ž ์š”์ฒญ์ด ์œ ์‹ค๋˜๊ณ  ์žˆ๋Š”์ง€๋ฅผ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

๐Ÿ‹๏ธ 5. Load Metrics

  • CPU Utilization: ๋ฐฑ์—”๋“œ ์„œ๋ฒ„๋“ค์˜ CPU ์‚ฌ์šฉ๋ฅ . ํŠน์ • ์„œ๋ฒ„์— ํŠธ๋ž˜ํ”ฝ์ด ์ ๋ ค CPU๊ฐ€ ๊ณผ๋ถ€ํ•˜ ์ƒํƒœ์ธ์ง€, ์ „์ฒด์ ์œผ๋กœ ์Šค์ผ€์ผ ์•„์›ƒ์ด ํ•„์š”ํ•œ ์‹œ์ ์ธ์ง€๋ฅผ ํŒ๋‹จํ•˜๋Š” ๊ทผ๊ฑฐ๊ฐ€ ๋œ๋‹ค.
  • Memory Utilization: ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋ฅ . ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜(Leak)๋‚˜ ๊ณผ๋„ํ•œ ์บ์‹ฑ์œผ๋กœ ์ธํ•œ ๋ฆฌ์†Œ์Šค ๋ถ€์กฑ ์—ฌ๋ถ€๋ฅผ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • Load Distribution: ์„œ๋ฒ„๋ณ„๋กœ ํŠธ๋ž˜ํ”ฝ์ด ์–ผ๋งˆ๋‚˜ ๊ณ ๋ฅด๊ฒŒ ๋ถ„์‚ฐ๋˜๊ณ  ์žˆ๋Š”์ง€. ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์˜๋„ํ•œ ๋Œ€๋กœ ๊ท ๋“ฑํ•˜๊ฒŒ ๋™์ž‘ํ•˜๊ณ  ์žˆ๋Š”์ง€, ํŠน์ • ์„œ๋ฒ„์— ํŽธ์ค‘์ด ๋ฐœ์ƒํ•˜๊ณ  ์žˆ๋Š”์ง€๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

๐Ÿ”’ 6. Security Metrics

  • TLS Handshake Time: HTTPS ์—ฐ๊ฒฐ ์‹œ TLS ํ•ธ๋“œ์…ฐ์ดํฌ์— ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„. ์ด ๊ฐ’์ด ์ปค์ง€๋ฉด ์ดˆ๊ธฐ ์—ฐ๊ฒฐ ์ง€์—ฐ์˜ ์›์ธ์ด ๋  ์ˆ˜ ์žˆ๊ณ , ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ๋‚˜ ์„œ๋ฒ„์˜ ์•”ํ˜ธํ™” ์ฒ˜๋ฆฌ ๋ถ€ํ•˜๋ฅผ ํŒŒ์•…ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค.
  • TLS Error Rates: ์ธ์ฆ์„œ ๋งŒ๋ฃŒ, ํ”„๋กœํ† ์ฝœ ๋ถˆ์ผ์น˜ ๋“ฑ์œผ๋กœ ์ธํ•œ TLS ์—ฐ๊ฒฐ ์‹คํŒจ ๋น„์œจ. ๋ณด์•ˆ ์„ค์ • ์˜ค๋ฅ˜๋‚˜ ์ธ์ฆ์„œ ๊ด€๋ฆฌ ๋ฌธ์ œ๋ฅผ ์กฐ๊ธฐ์— ๋ฐœ๊ฒฌํ•  ์ˆ˜ ์žˆ๋‹ค.

โœ… 7. Availability Metrics

  • Uptime: ์„œ๋น„์Šค๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ๊ฐ€๋™๋œ ์‹œ๊ฐ„์˜ ๋น„์œจ. ์‹œ์Šคํ…œ์˜ ์ „๋ฐ˜์ ์ธ ์‹ ๋ขฐ์„ฑ๊ณผ SLA ์ถฉ์กฑ ์—ฌ๋ถ€๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ๋Œ€ํ‘œ ์ง€ํ‘œ๋‹ค.
  • Failover Events: ์žฅ์•  ๋ฐœ์ƒ ์‹œ ํŠธ๋ž˜ํ”ฝ์ด ๋‹ค๋ฅธ ์„œ๋ฒ„/๋ฆฌ์ „์œผ๋กœ ์ „ํ™˜๋œ ์ด๋ ฅ. ํŽ˜์ผ์˜ค๋ฒ„๊ฐ€ ์–ผ๋งˆ๋‚˜ ์ž์ฃผ, ์–ด๋–ค ์ƒํ™ฉ์—์„œ ๋ฐœ์ƒํ•˜๋Š”์ง€๋ฅผ ํ†ตํ•ด ์ธํ”„๋ผ์˜ ์ทจ์•ฝ ์ง€์ ์„ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ๋‹ค.
This post is licensed under CC BY 4.0 by the author.