๐ŸŒฑ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ(Load Balancer)!

sh_awtylol4ยท2022๋…„ 11์›” 2์ผ
0

๐ŸŒฑ Today I Learn

๋ชฉ๋ก ๋ณด๊ธฐ
16/16
post-thumbnail

๐Ÿค” ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ(Load Balancer)?

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

์œ ์ €์˜ ์ ‘์†๊ณผ ์‚ฌ์šฉ์„ ํ†ตํ•ด ๋ฐœ์ƒํ•˜๋Š” ํŠธ๋ž˜ํ”ฝ๋“ค(http request)๋“ค์„ ๋ชจ๋‘ 1์ฐจ์ ์œผ๋กœ ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ๊ฐ€ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ๊ฐ€ ๋จผ์ € ์š”์ฒญ๋“ค์„ ์ฒ˜๋ฆฌํ•œ ๋’ค ์„œ๋น„์Šค๋ฅผ ์šด์˜ํ•˜๊ณ  ์žˆ๋Š” ์„œ๋ฒ„๋“ค๋กœ ๋ถ„๋ฐฐํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์š”์ฒญ์„ ๊ณ ๋ฅด๊ฒŒ ๋ถ„๋ฐฐ, ๋งŽ์€ ์š”์ฒญ์„ ๋™์‹œ์— ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ์žฅ์  ์™ธ์—๋„ ๊ฒฐํ•จ ๊ฐ๋‚ด ์‹œ์Šคํ…œ(Fault Tolerant System) ํšจ๊ณผ๊นŒ์ง€ ๊ฒฝํ—˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

โœ… ๊ฒฐํ•จ ๊ฐ๋‚ด ์‹œ์Šคํ…œ(Fault Tolerant System)์ด๋ž€?

์šด์˜๋˜๊ณ  ์žˆ๋Š” ์„œ๋ฒ„ 3๊ฐœ์ค‘ 1๊ฐœ๊ฐ€ ์–ด๋– ํ•œ ๊ฒฐํ•จ์ด๋‚˜ ์—๋Ÿฌ๋กœ ์šด์˜ ์ค‘๋‹จ์ด ๋œ๋‹ค๋ฉด ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ๊ฐ€ ์ž๋™์œผ๋กœ ์ •์ƒ์ ์œผ๋กœ ์ž‘๋™ํ•˜๋Š” ๋‚˜๋จธ์ง€ 2๊ฐœ์˜ ์„œ๋ฒ„์—๋งŒ ์š”์ฒญ์„ ๋ถ„๋ฐฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‹ค์ œ ์š”์ฒญ์„ ๋ณด๋‚ด๋Š” ์œ ์ €๋Š” ์„œ๋ฒ„๋“ค ์ค‘ ํ•˜๋‚˜๊ฐ€ ์šด์˜ ์ค‘๋‹จ์ด ๋œ ์‚ฌ์‹ค์„ ์ธ์ง€ํ•˜์ง€ ๋ชปํ•˜๊ณ  ์„œ๋น„์Šค๋ฅผ ์ •์ƒ์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์œ ์ €๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๋‹ค๋Š” ์‚ฌ์‹ค์„ ์ธ์ง€ํ•˜์ง€ ๋ชปํ•˜๊ณ  ๊ฐœ๋ฐœ์ž๋“ค์€ ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ์˜ ์ด๋Ÿฌํ•œ ์žฅ์ ์„ ํ†ตํ•ด down time์ด ์—†๋Š” ์„œ๋น„์Šค๋ฅผ ์šด์˜ ๋ฐ ๋ฐฐํฌ๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

โš™๏ธ ๋‹ค์–‘ํ•œ ๋กœ๋“œ๋ฐธ๋Ÿฐ์‹ฑ ์•Œ๊ณ ๋ฆฌ์ฆ˜

  • ๋ผ์šด๋“œ๋กœ๋นˆ ๋ฐฉ์‹(Round Robin Method)
    ์„œ๋ฒ„์— ๋“ค์–ด์˜จ ์š”์ฒญ์„ ์ˆœ์„œ๋Œ€๋กœ ๋Œ์•„๊ฐ€๋ฉฐ ๋ฐฐ์ •ํ•˜๋Š” ๋ฐฉ์‹.
    ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์„ ์ˆœ์„œ๋Œ€๋กœ ๋ถ„๋ฐฐํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์—ฌ๋Ÿฌ ๋Œ€์˜ ์„œ๋ฒ„๊ฐ€ ๋™์ผ ์ŠคํŽ™์„ ๊ฐ–๊ณ  ์žˆ๊ณ , ์„œ๋ฒ„์™€์˜ ์—ฐ๊ฒฐ(์„ธ์…˜)์ด ์˜ค๋ž˜ ์ง€์†๋˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ์— ํ™œ์šฉํ•˜๊ธฐ ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.

  • ๊ฐ€์ค‘ ๋ผ์šด๋“œ๋กœ๋นˆ ๋ฐฉ์‹(Weighted Round Robin Method)
    ๊ฐ๊ฐ์˜ ์„œ๋ฒ„๋งˆ๋‹ค ๊ฐ€์ค‘์น˜๋ฅผ ๋งค๊ธฐ๊ณ  ๊ฐ€์ค‘์น˜๊ฐ€ ๋†’์€ ์„œ๋ฒ„์— ํด๋ผ์ด์–ธํŠธ ์š”์ฒญ์„ ์šฐ์„ ์ ์œผ๋กœ ๋ฐฐ๋ถ„ํ•ฉ๋‹ˆ๋‹ค. ์ฃผ๋กœ ์„œ๋ฒ„์˜ ํŠธ๋ž˜ํ”ฝ ์ฒ˜๋ฆฌ ๋Šฅ๋ ฅ์ด ์ƒ์ดํ•œ ๊ฒฝ์šฐ ์‚ฌ์šฉ๋˜๋Š” ๋ถ€ํ•˜ ๋ถ„์‚ฐ ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด A๋ผ๋Š” ์„œ๋ฒ„๊ฐ€ 5๋ผ๋Š” ๊ฐ€์ค‘์น˜๋ฅผ ๊ฐ–๊ณ  B๋ผ๋Š” ์„œ๋ฒ„๊ฐ€ 2๋ผ๋Š” ๊ฐ€์ค‘์น˜๋ฅผ ๊ฐ–๋Š”๋‹ค๋ฉด, ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ๋Š” ๋ผ์šด๋“œ๋กœ๋นˆ ๋ฐฉ์‹์œผ๋กœ A์„œ๋ฒ„์— 5๊ฐœ B ์„œ๋ฒ„์— 2๊ฐœ์˜ ์š”์ฒญ์„ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.

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

  • ์ตœ์†Œ ์—ฐ๊ฒฐ ๋ฐฉ์‹(least Connection Method)
    ์š”์ฒญ์ด ๋“ค์–ด์˜จ ์‹œ์ ์— ๊ฐ€์žฅ ์ ์€ ์—ฐ๊ฒฐ์ƒํƒœ๋ฅผ ๋ณด์ด๋Š” ์„œ๋ฒ„์— ์šฐ์„ ์ ์œผ๋กœ ํŠธ๋ž˜ํ”ฝ์„ ๋ฐฐ๋ถ„ํ•ฉ๋‹ˆ๋‹ค. ์ž์ฃผ ์„ธ์„ ์ด ๊ธธ์–ด์ง€๊ฑฐ๋‚˜, ์„œ๋ฒ„์— ๋ถ„๋ฐฐ๋œ ํŠธ๋ž˜ํ”ฝ๋“ค์ด ์ผ์ •ํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ์— ์ ํ•ฉํ•œ ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.

  • ์ตœ์†Œ ๋ฆฌ์Šคํฐํƒ€์ž„ ๋ฐฉ์‹(Least Response Time Method)
    ์„œ๋ฒ„์˜ ํ˜„์žฌ ์—ฐ๊ฒฐ ์ƒํƒœ์™€ ์‘๋‹ต์‹œ๊ฐ„(Response Time, ์„œ๋ฒ„์— ์š”์ฒญ์„ ๋ณด๋‚ด๊ณ  ์ตœ์ดˆ ์‘๋‹ต์„ ๋ฐ›์„ ๋•Œ๊นŒ์ง€ ์†Œ์š”๋˜๋Š” ์‹œ๊ฐ„)์„ ๋ชจ๋‘ ๊ณ ๋ คํ•˜์—ฌ ํŠธ๋ž˜ํ”ฝ์„ ๋ฐฐ๋ถ„ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€์žฅ ์ ์€ ์—ฐ๊ฒฐ ์ƒํƒœ์™€ ๊ฐ€์žฅ ์งง์€ ์‘๋‹ต์‹œ๊ฐ„์„ ๋ณด์ด๋Š” ์„œ๋ฒ„์— ์šฐ์„ ์ ์œผ๋กœ ๋กœ๋“œ๋ฅผ ๋ฐฐ๋ถ„ํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.

๐ŸŒณ ์ฐธ๊ณ ํ•œ ๋ธ”๋กœ๊ทธ

profile
ํฌ๊ธฐํ•˜๋Š” ๊ทธ ์ˆœ๊ฐ„์ด ๋ฐ”๋กœ ์‹œํ•ฉ์ข…๋ฃŒ์˜ˆ์š”...

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