๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Computer Science

[Network] NAT์™€ ๋น„์Šทํ•ด! : LB(LoadBalancer) ์›๋ฆฌ๋ฅผ ์ดํ•ดํ•ด๋ณด์ž

๋ฐ˜์‘ํ˜•

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

 

์šฐ๋ฆฌ์˜ ๋…ธํŠธ๋ถ์œผ๋กœ ๊ตฌ๊ธ€ ์›น์„œ๋ฒ„์— ์ ‘์†ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์€ ๋„คํŠธ์›Œํฌ ๋•๋ถ„์ด๋‹ค


์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” L4 ๊ณ„์ธต์ธ Transport ๊ณ„์ธต์—์„œ์˜ ์Šค์œ„์น˜์ธ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ(Load Balancer, ์ดํ•˜ LB)๋ผ๊ณ  ๋ถˆ๋ฆฌ๋Š” ์‹œ์Šคํ…œ์˜ ๋™์ž‘ ์›๋ฆฌ์— ๋Œ€ํ•ด ์ดํ•ดํ•ด๋ณด๋„๋ก ํ•˜์ž. ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ๋Š” ํ•œ๊ตญ์–ด๋กœ ๋ฒˆ์—ญํ•˜๋ฉด ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ๋ฅผ ์˜๋ฏธํ•œ๋‹ค. ์—ฌ๊ธฐ์„œ '๋ถ€ํ•˜'๋ž€, ์„œ๋ฒ„์— ๋“ค์–ด์˜ค๋Š” ์š”์ฒญ์ด ๋งŽ์•„์ง์— ๋”ฐ๋ผ ๋ฐœ์ƒํ•˜๋Š” ๋ถ€ํ•˜๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

1. LB๋Š” NAT์™€ ๋น„์Šทํ•œ ์›๋ฆฌ๋กœ ๋™์ž‘ํ•œ๋‹ค!

์ €๋ฒˆ ์‹œ๊ฐ„์— ๊ณต์œ ๊ธฐ๊ฐ€ ๋™์ž‘ํ•˜๋Š” ์›๋ฆฌ์ธ NAT์— ๋Œ€ํ•ด ๋ฐฐ์› ์—ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ์ธ LB๊ฐ€ ๋™์ž‘ํ•˜๋Š” ์›๋ฆฌ๋Š” NAT ์›๋ฆฌ์™€ ๋งค์šฐ ์œ ์‚ฌํ•˜๊ฒŒ ๋™์ž‘ํ•˜๊ธฐ ๋•Œ๋ฌธ์— NAT ์›๋ฆฌ๋ฅผ ์ดํ•ดํ•˜๊ณ  ์žˆ๋‹ค๋ฉด LB๋ฅผ ์‰ฝ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๋จผ์ € LB๋Š” OSI 7 ๊ณ„์ธต ์ค‘ L4 ๊ณ„์ธต์—์„œ์˜ ์Šค์œ„์น˜๋ฅผ ์˜๋ฏธํ•œ๋‹ค. ์‹ค์ œ ๋ฌผ๋ฆฌ์ ์ธ L4 ์Šค์œ„์น˜๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด ์ƒ๊ฒผ๋‹ค. ์ฐธ๊ณ ๋กœ ์•ž์œผ๋กœ ๊ณ„์† LB๋ผ๊ณ  ์–ธ๊ธ‰ํ•˜๋Š” ๊ฒƒ๋“ค์€ '๋ฌผ๋ฆฌ์ ์ธ' ์Šค์œ„์น˜๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

 

๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ์ธ L4 ์Šค์œ„์น˜(์ถœ์ฒ˜: ํ•ด์‹œ๋„ท)

 

LB๋Š” L4 ๊ณ„์ธต์—์„œ์˜ ์Šค์œ„์น˜๋ผ๊ณ  ํ–ˆ๋Š”๋ฐ, L4 ๊ณ„์ธต์—์„œ์˜ ์‹๋ณ„์ž๋Š” ๋ฌด์—‡์ด์—ˆ์„๊นŒ? ๋ฐ”๋กœ Port ๋ฒˆํ˜ธ์ด๋‹ค. ์ด ๋ง์€ L4 ์Šค์œ„์น˜๊ฐ€ ํฌํŠธ ๋ฒˆํ˜ธ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์Šค์œ„์นญํ•œ๋‹ค๋Š” ๋œป์ด๋‹ค. ์ด๋Ÿฐ 'ํฌํŠธ ๋ฒˆํ˜ธ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์Šค์œ„์นญ' ํ•œ๋‹ค๋Š” ์ ์ด NAT์—์„œ์™€ ๋งค์šฐ ์œ ์‚ฌํ•˜๋‹ค. ์ด๋ ‡๊ฒŒ ํฌํŠธ ๋ฒˆํ˜ธ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์Šค์œ„์นญ ํ•˜๋Š” ๊ฒƒ์„ ํ™œ์šฉํ•ด์„œ ๋ถ€ํ•˜๋ฅผ ๋ถ„์‚ฐ์‹œํ‚ค๋Š” ๊ฒƒ์ด LB์˜ ๊ธฐ๋Šฅ์ด๋‹ค. LB๋ฅผ ์ข€ ๋” ๋ช…ํ™•ํžˆ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด์„œ ๊ทธ๋ฆผ์œผ๋กœ ์‚ดํŽด๋ณด๋„๋ก ํ•˜์ž.

 

LB๋ฅผ ์‚ฌ์šฉํ•œ ๋ถ€ํ•˜ ๋ถ„์‚ฐ

 

์œ„ ๊ทธ๋ฆผ์—์„œ Server A,B,C,D๋Š” ๋ชจ๋‘ ๋™์ผํ•œ ๊ธฐ๋Šฅ์„ ํ•˜๋Š” ๋˜‘๊ฐ™์€ ์„œ๋ฒ„๋“ค์ด๋‹ค. ์ฆ‰, ๋‹จ์ˆœํžˆ clone ํ•ด๋†“์€ ์„œ๋ฒ„๋“ค์ด๋‹ค. ์ด 4๊ฐœ์˜ ์„œ๋ฒ„๋ฅผ LB๋กœ ์—ฐ๊ฒฐํ•ด๋†“์€ ์ƒํƒœ์—์„œ PC 1,2,3์˜ ์š”์ฒญ์„ ๋ฐ›๋Š” ์ƒํ™ฉ์ด๋‹ค.

(์ฐธ๊ณ ๋กœ PC 1,2,3 ์ž…์žฅ์—์„œ๋Š” Server A,B,C,D๋ฅผ ๊ตฌ๋ถ„ํ•˜์ง€ ๋ชปํ•˜๊ณ  ๋‹จ์ˆœํžˆ LB ์„œ๋ฒ„์™€ ํ†ต์‹ ํ•œ๋‹ค๋Š” ์ฐฉ๊ฐ์„ ํ•œ๋‹ค๋Š” ์ ๋„ ์•Œ์•„๋‘์ž. ์ด๋Ÿฌํ•œ ์ ์€ NAT ํฌ์ŠคํŒ…์—์„œ ๋ฐฐ์› ์œผ๋ฏ€๋กœ ๊ถ๊ธˆํ•˜๋‹ค๋ฉด ํ•ด๋‹น ํฌ์ŠคํŒ…์„ ์ฐธ๊ณ ํ•˜์ž)

 

LB๋Š” ๊ฐ€์žฅ ๋‹จ์ˆœํ•˜๊ฒŒ ๋ถ€ํ•˜๋ฅผ ๋ถ„์‚ฐํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ๋ผ์šด๋“œ ๋กœ๋นˆ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋‹ค. ์‰ฝ๊ฒŒ ๋งํ•ด, ์š”์ฒญ์„ ๋ฐ›์€ ์ˆœ์„œ๋Œ€๋กœ ์„œ๋ฒ„์— ๋Œ์•„๊ฐ€๋ฉด์„œ ๋ถ€ํ•˜๋ฅผ ๋ถ„์‚ฐํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๊ฐ€์žฅ ๋จผ์ € PC 1์ด ์š”์ฒญ์„ ์ˆ˜ํ–‰ํ–ˆ๋‹ค. ์ด ๋•Œ, LB๋Š” ๋จผ์ € Server A๋กœ ์š”์ฒญ์„ ๋ณด๋‚ธ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ PC 2๊ฐ€ ์š”์ฒญ์„ ํ•˜๋Š” ๊ฒฝ์šฐ, LB๋Š” ๋‹ค์Œ ์ˆœ์„œ๋กœ Server B๋กœ ์š”์ฒญ์„ ๋ณด๋‚ธ๋‹ค. ์ด๋Ÿฐ ์‹์œผ๋กœ ๊ณ„์† ๋ฐ˜๋ณต๋˜๋Š” ์š”์ฒญ์— ๋Œ€ํ•ด์„œ LB๋Š” Server์˜ ์ˆœ์„œ๋Œ€๋กœ ํ•˜๋‚˜์”ฉ ์š”์ฒญ์„ ๋ณด๋‚ด๊ฒŒ ๋œ๋‹ค. ํ•˜์ง€๋งŒ ์ด๋Ÿฌํ•œ ๋ฐฉ์‹์€ ๋งค์šฐ ๋‹จ์ˆœํ•˜๋ฉฐ, ํ˜น์‹œ๋ผ๋„ Server ์ค‘ ํ•œ ๋Œ€์— ์žฅ์• ๊ฐ€ ์ƒ๊ธฐ๊ฑฐ๋‚˜ ํ•˜๋Š” ๋“ฑ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ๋Œ€์‘ํ•˜์ง€ ๋ชปํ•œ๋‹ค.

 

๊ทธ๋ž˜์„œ ๊ณ ๋„ํ™”๋œ ๋ฐฉ๋ฒ•์œผ๋กœ Manager ์„œ๋ฒ„๋ฅผ ํ•˜๋‚˜ ๋‘์–ด์„œ LB์™€ Server A,B,C,D๋“ค์„ ๋ชจ๋‹ˆํ„ฐ๋ง ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค. ์•„๋ž˜ ๊ทธ๋ฆผ์„ ๋ณด์ž.

 

Manager Server๊ฐ€ LB์™€ ๋‹ค๋ฅธ Server๋“ค์„ ๊ด€์žฅํ•œ๋‹ค

 

Manager ์„œ๋ฒ„๋Š” ํฌ๊ฒŒ 2๊ฐ€์ง€ ๊ธฐ๋Šฅ์„ ํ•œ๋‹ค. ์ฒซ ๋ฒˆ์งธ ๊ธฐ๋Šฅ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. ํด๋ผ์ด์–ธํŠธ์—์„œ ๋“ค์–ด์˜จ ์š”์ฒญ์„ ์‹ค์งˆ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ๋“ค ๋‹ด๋‹นํ•˜๋Š” Server๋“ค์ด ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€๋Š” ์•Š์•˜๋Š”์ง€ ๋˜๋Š” ๊ฐ Server์˜ CPU, ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰, ๋””์Šคํฌ ์šฉ๋Ÿ‰ ๋“ฑ์„ ๊ณ„์†์ ์œผ๋กœ ์ฒดํฌํ•˜๋Š” Server๋“ค์— ๋Œ€ํ•œ ํ—ฌ์Šค ์ฒดํฌ ๊ธฐ๋Šฅ์„ ํ•œ๋‹ค.

 

๋‘ ๋ฒˆ์งธ๋กœ๋Š” ํด๋ผ์ด์–ธํŠธ(๊ทธ๋ฆผ ์† PC 1,2,3)๋กœ๋ถ€ํ„ฐ ์˜จ ์š”์ฒญ์— ๋Œ€ํ•ด์„œ ์–ด๋–ค Server๋กœ ๋ณด๋‚ผ์ง€ ๋ฏธ๋ฆฌ ๊ฒฐ์ •ํ•ด์„œ LB์—๊ฒŒ ์•Œ๋ ค์ฃผ๋Š” ๊ธฐ๋Šฅ์„ ํ•œ๋‹ค. ์ฒซ ๋ฒˆ์งธ ๊ธฐ๋Šฅ๊ณผ ๊ฒฐ๋ถ€ํ•ด์„œ ์ƒ๊ฐํ•ด๋ณด๋ฉด Manager ์„œ๋ฒ„๋Š” ์ƒ์‹œ์ ์œผ๋กœ ๊ด€์žฅํ•˜๊ณ  ์žˆ๋Š” Server๋“ค ์ค‘์— ํด๋ผ์ด์–ธํŠธ ์ธก์œผ๋กœ๋ถ€ํ„ฐ ๋“ค์–ด์˜ค๋Š” ์š”์ฒญ์„ ์—ฌ์œ ๋กญ๊ฒŒ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” Server๋ฅผ ๋ฏธ๋ฆฌ ์„ ์ •ํ•ด๋†“๊ณ  ์ด๋ฅผ LB์— ์•Œ๋ ค์ฃผ๋Š” ๊ฒƒ์ด๋‹ค.

 

๊ทธ๋Ÿฐ๋ฐ ๋งŒ์•ฝ์— ๊ด€์žฅํ•˜๊ณ  ์žˆ๋Š” Server๋“ค ์ค‘์—์„œ ํŠน์ • ์„œ๋ฒ„์— ์žฅ์• ๊ฐ€ ์ƒ๊ฒจ์„œ ๊ทธ ์„œ๋ฒ„๋ฅผ A/S ์„ผํ„ฐ์— ๋งก๊ฒจ์•ผ ํ•œ๋‹ค๋ฉด ์–ด๋–ป๊ฒŒ ๋ ๊นŒ? ๋‹น์—ฐํžˆ ๊ทธ๋Ÿฐ ๊ฒฝ์šฐ, ์žฅ์• ๊ฐ€ ์ƒ๊ธด Server๋ฅผ ๋นผ๊ณ  ์ƒˆ๋กœ์šด Server๋ฅผ ์ง‘์–ด๋„ฃ์œผ๋ฉด ๋œ๋‹ค. ์•„๋ž˜์ฒ˜๋Ÿผ ๋ง์ด๋‹ค.

 

๋งŒ์•ฝ Server D์— ์žฅ์• ๊ฐ€ ์ƒ๊ฒจ A/S ์„ผํ„ฐ์— ๋งก๊ฒจ์•ผ ํ•œ๋‹ค๋ฉด?

 

๊ทธ๋ž˜์„œ LB๋ฅผ ํ™œ์šฉํ•˜๋Š” ๊ฒฝ์šฐ, ์œ„์™€ ๊ฐ™์ด ํŠน์ • Server์— ์žฅ์• ๊ฐ€ ์ƒ๊ธฐ๋Š” ๊ฒฝ์šฐ๋ผ๋„ ์„œ๋น„์Šค๋ฅผ ์ค‘์ง€ํ•˜์ง€ ์•Š๊ณ  ์šด์˜์„ ์ด์–ด๋‚˜๊ฐˆ ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ค€๋‹ค. ์ด๋Ÿฌํ•œ ํ˜„์ƒ์„ LB๊ฐ€ ๋ฌด์ •์ง€ ์ฆ‰, Fault-tolerant ์‹œ์Šคํ…œ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•œ๋‹ค๊ณ ๋„ ํ•œ๋‹ค. 

 

๋ฌผ๋ก  Server๊ฐ€ ์•„๋‹Œ LB ์„œ๋ฒ„๊ฐ€ ์žฅ์• ๊ฐ€ ๋‚  ๊ฒฝ์šฐ๋ฅผ ๋Œ€๋น„ํ•ด์„œ๋„ ์ถ”๊ฐ€์ ์ธ LB ์„œ๋ฒ„๋ฅผ ๋‘๊ณ  LB ๊ฐ„์— ์—ฐ๊ฒฐ์„ ํ•ด๋†“์•„ ์ด์ค‘ํ™”๋ฅผ ์‹œ์ผœ ๋ฌด์ •์ง€ ์‹œ์Šคํ…œ์ด ๊ฐ€๋Šฅํ•˜๋„๋ก ํ•ด๋‘๊ธฐ๋„ ํ•œ๋‹ค. ๋˜ํ•œ Manager Server๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์ถ”๊ฐ€๋กœ ์„œ๋ฒ„๋ฅผ ๋‘์–ด ์ด์ค‘ํ™”ํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

2. LB, Manager, Server๋“ค์„ ๋ชจ๋‘ Virtualization ์‹œํ‚ค์ž!

์ง์ „ ๋ชฉ์ฐจ์—์„œ ์„ค๋ช…ํ•˜๋ฉด์„œ ์–ธ๊ธ‰ํ•œ LB, Manager Server, ์š”์ฒญ์„ ์‹ค์งˆ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” Server๋“ค ๋ชจ๋‘ ๋ฌผ๋ฆฌ์ ์ธ(Physical) ์„œ๋ฒ„๋ฅผ ์˜๋ฏธํ–ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์ด๋ ‡๊ฒŒ ๋ฌผ๋ฆฌ์ ์ธ ์„œ๋ฒ„๋ฅผ ๊ด€๋ฆฌํ•˜๋‹ค ๋ณด๋ฉด ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๋ถˆํŽธํ•œ ๋ฌธ์ œ๋“ค์ด ์ƒ๊ธด๋‹ค. ์ผ๋ก€๋กœ, ํŠน์ • ์„œ๋ฒ„ ํ•˜๋‚˜์— ์žฅ์• ๊ฐ€ ์ƒ๊ธฐ๋ฉด ์ •๋ง ๊ทธ ๋ฌผ๋ฆฌ์ ์ธ ์„œ๋ฒ„๋ฅผ ๊ณ ์น˜๊ธฐ ์œ„ํ•ด A/S ์„ผํ„ฐ์— ๋งก๊ฒจ์•ผ ํ•˜๋Š” ์ƒํ™ฉ์ด ๋ฐœ์ƒํ•œ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ A/S ์„ผํ„ฐ์—์„œ ๋ฐ”๋กœ ๋ช‡ ์ดˆ๋งŒ์— ์„œ๋ฒ„๋ฅผ ๊ณ ์ณ์ฃผ๋Š” ๊ฒƒ๋„ ์•„๋‹ˆ๊ณ  ๊ธธ๊ฒŒ๋Š” ๋ช‡ ์ผ์”ฉ ๊ฑธ๋ฆด ์ˆ˜๋„ ์žˆ๋‹ค. ๋˜, A/S ์„ผํ„ฐ์— ์„œ๋ฒ„๋ฅผ ์˜ฎ๊ธฐ๊ณ  ๋‹ค๋‹ˆ๋Š” ์‹œ๊ฐ„๋„ ์†Œ์š”๋  ๊ฒƒ์ด๋‹ค. 

 

๊ทธ๋Ÿฐ๋ฐ ์ƒ๊ฐํ•ด๋ณด์ž. ๋ฌผ๋ฆฌ์ ์ธ ์„œ๋ฒ„์˜ ์›๋ณธ ์ด๋ฏธ์ง€์— ๋Œ€ํ•œ ์Šค๋ƒ…์ƒท์„ ๋”ฐ๋กœ ๋งŒ๋“ค์–ด๋‘๊ณ , ํŠน์ • ์„œ๋ฒ„๊ฐ€ ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ํ•ด๋‹น ์„œ๋ฒ„์˜ ์›๋ณธ ์ด๋ฏธ์ง€๋กœ๋ถ€ํ„ฐ ๋‹ค์‹œ ์ƒ์„ฑํ•  ์ˆ˜๋Š” ์—†์„๊นŒ? ์ฆ‰, ๋ฌผ๋ฆฌ์ ์ธ ์„œ๋ฒ„๋“ค์„ ์†Œํ”„ํŠธ์›จ์–ดํ™”(Virtualization) ์‹œํ‚ฌ ์ˆ˜๋Š” ์—†์„๊นŒ? ๋‹น์—ฐํžˆ ๊ฐ€๋Šฅํ•˜๋‹ค. ๊ทธ๋ž˜์„œ ๋ฐฐํฌ ์‹œ์Šคํ…œ ์„ค๊ณ„์—์„œ ์š”์ฆ˜ ๋Œ€๋ถ€๋ถ„์˜ ํšŒ์‚ฌ์—์„œ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” Docker, Kubernetes ๋ผ๋Š” ๊ธฐ์ˆ ์ด ๋งŽ์ด ์‚ฌ์šฉ๋˜๊ณ , ์ด ๊ธฐ์ˆ ๋“ค์ด ๋ฐฉ๊ธˆ ์–ธ๊ธ‰ํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ํ˜น์‹œ Docker, Kubernetes๋ฅผ ํ™œ์šฉํ•ด์„œ ์—ฌ๋Ÿฌ ํ˜ธ์ŠคํŠธ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ๊ถ๊ธˆํ•˜๋‹ค๋ฉด ํ•„์ž์˜ ์˜ˆ์ „ Docker Swarm, Kubernetes ํฌ์ŠคํŒ…์„ ์ฐธ์กฐํ•ด๋ณด๋„๋ก ํ•˜์ž.

 

LB, Manager, Server๋“ค์„ ๋ชจ๋‘ ์†Œํ”„ํŠธ์›จ์–ดํ™” ์‹œํ‚ค์ž

3. ์—ฌ๋Ÿฌ ๋Œ€์˜ LB ์žฅ์น˜๊ฐ€ ํ•„์š”ํ•˜๋‹ค๋ฉด? GSLB(Global Server Load Balancing)

1,2๋ฒˆ ๋ชฉ์ฐจ๊นŒ์ง€ ํ•ด์„œ ์šฐ๋ฆฌ๋Š” ์ •๋ง ๋‹จ์ˆœํ•˜๊ฒŒ ํ•˜๋‚˜์˜ LB๋กœ ์—ฌ๋Ÿฌ ๋Œ€์˜ ์„œ๋ฒ„์— ๋ถ€ํ•˜ ๋ถ„์‚ฐ์„ ํ•˜๋Š” ๊ฒƒ์„ ์‚ดํŽด๋ณด์•˜๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ๋งŒ์•ฝ ์šด์˜ํ•˜๋Š” ์„œ๋น„์Šค๊ฐ€ ๊ธ€๋กœ๋ฒŒ ์„œ๋น„์Šค๋กœ ํ™•์žฅํ•œ๋‹ค๋ฉด ์–ด๋–ป๊ฒŒ ๋ ๊นŒ? ๊ทธ ๋•Œ๋„ ํ•˜๋‚˜์˜ LB๋กœ ๋ถ€ํ•˜ ๋ถ„์‚ฐ์„ ํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ• ๊นŒ? ๊ทธ๋ ‡๊ฒŒ ๋˜๋ฉด ํ•˜๋‚˜์˜ LB์— ๋ถ€ํ•˜๊ฐ€ ๋งค์šฐ ๋งŽ์ด ์ง‘์ค‘๋˜๊ณ  ๊ฒฐ๊ตญ ๋„คํŠธ์›Œํฌ ํ†ต์‹  ์†๋„ ์ €ํ•˜์˜ ์›์ธ์ด ๋  ๊ฒƒ์ด๋‹ค.

 

์„œ๋น„์Šค๊ฐ€ ์ปค์ง€๋ฉด LB๋ฅผ ๊ธ€๋กœ๋ฒŒํ•˜๊ฒŒ ์šด์˜ํ•  ์ˆ˜ ์žˆ๋Š” GSLB๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค. GSLB๋Š” DNS ์ฒด๊ณ„๋ฅผ ํ™œ์šฉํ•œ๋‹ค. DNS๋ฅผ ํ™œ์šฉํ•˜๋Š” ์ด์œ ๋Š” ์šฐ๋ฆฌ๊ฐ€ ๋ณดํ†ต ์šด์˜ํ•˜๋Š” ์„œ๋น„์Šค๋“ค์€ ๋ชจ๋‘ ์›น์„œ๋ฒ„์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์›น์„œ๋ฒ„์™€ ๋‹น์—ฐํžˆ ๋ถ™์–ด๋‹ค๋‹ˆ๋Š” ๊ฐœ๋…์€ DNS์ด๋‹ค. ๊ทธ๋ž˜์„œ ์—„๋ฐ€ํžˆ ๋งํ•˜๋ฉด GSLB์— 'LB' ๋ผ๋Š” ๋‹จ์–ด๊ฐ€ ์žˆ์–ด์„œ ๋งˆ์น˜ LB์˜ ๋˜ ๋‹ค๋ฅธ ์ข…๋ฅ˜์ธ๊ฐ€ ์ƒ๊ฐํ•˜๊ฒ ์ง€๋งŒ, ์˜คํžˆ๋ ค GSLB์€ DNS์— ๊ฐ€๊นŒ์šฐ๋ฉฐ ๊ตณ์ด ์ •์˜๋ฅผ ํ•˜์ž๋ฉด GSLB = DNS + LB ๋„๊ตฌ๋กœ ์ •์˜ํ•  ์ˆ˜ ์žˆ๋‹ค. ์–ด๋–ป๊ฒŒ DNS๋ฅผ ํ™œ์šฉํ•˜๋Š”์ง€๋Š” ์ข€ ๋” ๋ฐ‘์—์„œ ์‚ดํŽด๋ณด์ž.

 

GSLB์˜ ๋‹ค๋ฅธ ํŠน์ง•์œผ๋กœ, ๋งŒ์•ฝ ์šด์˜์ค‘์ธ ์„œ๋ฒ„๋“ค์ด ๋„ทํ”Œ๋ฆญ์Šค๋‚˜ ์™“์ฑ ์™€ ๊ฐ™์€ ์ปจํ…์ธ ๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ŠคํŠธ๋ฆฌ๋ฐํ•˜๋Š” ์„œ๋น„์Šค๋ผ๋ฉด ๊ฐ ์„œ๋ฒ„๋“ค์˜ ์ปจํ…์ธ ๋ฅผ ๋™๊ธฐํ™”ํ•˜๊ธฐ ์œ„ํ•ด CDN(Content Delivery Network)์„ ์ด์šฉํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ถ€ํ•˜ ์ƒํƒœ, ํ—ฌ์Šค ์ฒดํฌ, ํด๋ผ์ด์–ธํŠธ์˜ ์ง€๋ฆฌ์  ์œ„์น˜ ๋“ฑ์„ ๊ณ ๋ คํ•˜๊ธฐ ์œ„ํ•ด GSLB๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

 

GSLB๋ฅผ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด, ์šฐ๋ฆฌ๋Š” www.zedd.com  ์ด๋ผ๋Š” ๋„๋ฉ”์ธ์„ ๊ฐ–๋Š” ์›น์„œ๋น„์Šค๋ฅผ ์šด์˜์ค‘์ด๋ผ๊ณ  ๊ฐ€์ •ํ•˜๊ณ , ์ด ์„œ๋น„์Šค๋ฅผ ๋Œ€ํ•œ๋ฏผ๊ตญ ๊ตญ๋‚ด์˜ ์ „๊ตญ ์ง€์—ญ์— ์šด์˜ํ•˜๊ณ  ์žˆ๋‹ค๊ณ  ํ•ด๋ณด์ž. 

 

๊ตญ๋‚ด์— ์„œ๋น„์Šคํ•œ๋‹ค๋Š” ๊ฐ€์ •ํ•˜๊ฒŒ GSLB์˜ ์‚ฌ์šฉ ์˜ˆ์‹œ

 

์˜ˆ์‹œ๋กœ ์„œ์šธ, ๋Œ€์ „, ๋ถ€์‚ฐ์œผ๋กœ 3๊ฐ€์ง€ ์ง€์—ญ์„ ๋‚˜๋ˆ„์—ˆ๊ณ , ๊ฐ ์ง€์—ญ๋งˆ๋‹ค ์„œ๋กœ ๋‹ค๋ฅธ ISP ์—…์ฒด๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ณด์•˜๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ฐ ISP๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” DNS ์„œ๋ฒ„๊ฐ€ ์žˆ์„ ๊ฒƒ์ด๋‹ค. LB 1,2,3์— ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š” ๋ชจ๋“  ์„œ๋ฒ„๋“ค์€ ๋™์ผํ•˜๊ฒŒ www.zedd.com์„ ์šด์˜ํ•˜๋Š” ๋™์ผํ•œ ์„œ๋ฒ„๋“ค์ด๋‹ค.

 

์ด์ œ PC 1์ด www.zedd.com  ์ด๋ผ๋Š” ์›น์„œ๋น„์Šค์— ์ ‘๊ทผํ•œ๋‹ค๊ณ  ํ•ด๋ณด์ž. ์›น๋ธŒ๋ผ์šฐ์ €์— www.zedd.com  ์ด๋ผ๊ณ  ์ž…๋ ฅํ•˜๊ณ  ์—”ํ„ฐ๋ฅผ ์ž…๋ ฅํ–ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ๊ฐ€์žฅ ๋จผ์ € PC 1์€ ISP๋กœ ์š”์ฒญํ•œ ํ›„, ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š” DNS๋กœ๋ถ€ํ„ฐ www.zedd.com  ์˜ IP ์ฃผ์†Œ๊ฐ€ ๋ฌด์—‡์ธ์ง€ ๋ฐ›์•„๋‚ด๋ ค๊ณ  ํ•  ๊ฒƒ์ด๋‹ค. ํ•˜์ง€๋งŒ GSLB๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ตฌ์กฐ์—์„œ DNS๋Š” ๋จผ์ € ๊ฐ ๊ตฌ์—ญ์— ์†ํ•˜๋Š” LB์˜ CNAME Record ๋„๋ฉ”์ธ ์ฃผ์†Œ๋ฅผ PC 1์— ๋ฐ˜ํ™˜ํ•ด์ค€๋‹ค.

 

์—ฌ๊ธฐ์„œ CNAME Record ๋„๋ฉ”์ธ ์ฃผ์†Œ๋ผ๋Š” ๊ฒƒ์ด ๋“ฑ์žฅํ•˜๋Š”๋ฐ, ์ด๋Š” ์›๋ž˜ ๋„๋ฉ”์ธ ์ฃผ์†Œ์˜ ๋ณ„์นญ(alias) ๋„๋ฉ”์ธ ์ฃผ์†Œ๋ฅผ ์˜๋ฏธํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์›๋ž˜ ๋„๋ฉ”์ธ ์ฃผ์†Œ๋Š” www.zedd.com  ์ธ๋ฐ, ์œ„ ๊ทธ๋ฆผ ์† CNAME Record ๋„๋ฉ”์ธ ์ฃผ์†Œ๋“ค์„ ๋ณด๋ฉด a.www.zedd.com, b.www.zedd.com, c.www.zedd.com ์ด๋Ÿฐ ์‹์œผ๋กœ ์•ž์— a,b,c ๋ผ๋Š” ๋ฌธ์ž์—ด์ด ์ถ”๊ฐ€๋กœ ๋ถ™์–ด์žˆ๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.(๋ฌผ๋ก  ์•ž์— a,b,c๋ฅผ ๋ถ™ํžŒ๊ฑด ์˜ˆ์‹œ์ผ ๋ฟ์ด๋‹ค) ์•ž์— ๋ฌธ์ž์—ด์ด ๋ถ™์–ด์žˆ์–ด ์„œ๋กœ ๋‹ค๋ฅธ ๋„๋ฉ”์ธ ์ฃผ์†Œ์ด๊ธฐ ๋•Œ๋ฌธ์— ์„œ๋กœ ๋‹ค๋ฅธ ๊ธฐ๋Šฅ์„ ํ•˜๋Š” ์„œ๋ฒ„๋ผ๊ณ  ์˜คํ•ดํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๋ชจ๋‘ ๋™์ผํ•œ ๊ธฐ๋Šฅ์„ ํ•˜๋Š” ์„œ๋ฒ„๋ฅผ ์˜๋ฏธํ•œ๋‹ค. CNAME Record์— ๋Œ€ํ•œ ๊ตฌ์ฒด์ ์ธ ์„ค๋ช…์€ ๋‹ค๋ฅธ ๋ธ”๋กœ๊ทธ ๊ธ€์„ ์ฐธ์กฐํ•ด๋ณด๋„๋ก ํ•˜์ž.

 

๋‹ค์‹œ ์„ค๋ช…์œผ๋กœ ๋Œ์•„๊ฐ€๋ณด์ž. ์•„๊นŒ PC 1์ด ์ฒ˜์Œ์— ISP๋กœ www.zedd.com์˜ IP ์ฃผ์†Œ๋ฅผ ๋ฐ›์•„๋‚ด๊ธฐ ์œ„ํ•ด ์š”์ฒญํ–ˆ์ง€๋งŒ CNAME Record ๋„๋ฉ”์ธ ์ฃผ์†Œ๋ฅผ ๋ฐ˜ํ™˜๋ฐ›์•˜๋‹ค๊ณ  ํ–ˆ๋‹ค. ์•„๋ž˜ ๊ทธ๋ฆผ์€ ์„œ์šธํŠน๋ณ„์‹œ ์ง€์—ญ ๋ถ€๋ถ„๋งŒ ๋ถ€๋ถ„ ํ™•๋Œ€๋ฅผ ํ–ˆ๋‹ค.

 

 

CNAME Record ๋„๋ฉ”์ธ ์ฃผ์†Œ(a.www.zedd.com)๋ฅผ ๋ฐ˜ํ™˜ ๋ฐ›์€ PC 1์€ ๋‹ค์‹œ ISP์— ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š” DNS๋กœ ํ•ด๋‹น ๋„๋ฉ”์ธ์˜ IP ์ฃผ์†Œ๋ฅผ ์š”์ฒญํ•œ๋‹ค. ๊ทธ์ œ์„œ์•ผ ISP๋Š” LB 1์˜ IP ์ฃผ์†Œ์ธ 3.3.3.3์„ ๋ฐ˜ํ™˜ํ•˜๊ฒŒ ๋˜๊ณ , PC 1์€ 3.3.3.3 IP ์ฃผ์†Œ๋กœ ๋˜ ์š”์ฒญ์„ ๋ณด๋‚ด๊ฒŒ ๋œ๋‹ค. ๊ทธ๋ ‡๊ฒŒ ๋˜๋ฉด LB 1๋กœ ์‹ค์งˆ์ ์ธ ์š”์ฒญ์ด ๋“ค์–ด๊ฐ€๊ณ , LB 1์€ ๋ถ€ํ•˜ ๋ถ„์‚ฐ ๊ทœ์น™์— ๊ธฐ๋ฐ˜ํ•ด์„œ ํŠน์ • Server๋กœ ์š”์ฒญ์„ ๋ณด๋‚ธ๋‹ค. ์ด์ฒ˜๋Ÿผ ๋Œ€์ „, ๋ถ€์‚ฐ์—์„œ๋„ ํด๋ผ์ด์–ธํŠธ ์ธก์—์„œ ์š”์ฒญ์ด ๋ฐœ์ƒํ•˜๋ฉด ๋˜‘๊ฐ™์€ ๊ณผ์ •์ด ์ˆ˜ํ–‰๋œ๋‹ค. ์ฐธ๊ณ ๋กœ ์—ฌ๋Ÿฌ LB๋“ค์„ ๊ด€์žฅํ•˜๊ณ  ์žˆ๋Š” Manager Server๋Š” ๋‹น์—ฐํžˆ GSLB ๊ตฌ์กฐ์—์„œ๋„ ์กด์žฌํ•œ๋‹ค. 

 

์ฐธ๊ณ ๋กœ PC1์ด DNS ์„œ๋ฒ„๋กœ CNAME Record ๋„๋ฉ”์ธ ์ฃผ์†Œ, ์›๋ณธ ๋„๋ฉ”์ธ ์ฃผ์†Œ, IP ์ฃผ์†Œ๋ฅผ ์„œ๋กœ ์ฃผ๊ณ  ๋ฐ›์„ ๋•Œ, ๋งค๋ฒˆ PC1์ด ์ง์ ‘ ์š”์ฒญํ•œ๋‹ค๊ณ  ํ–ˆ์ง€๋งŒ, ์‹ค์ œ๋กœ๋Š” PC1๊ณผ DNS ์‚ฌ์ด์— Recursive Resolver ๋ผ๋Š” ๊ฒƒ์ด ์žˆ๊ณ  ์ด Resolver ๋ผ๋Š” ๊ฒƒ์ด DNS์™€ ๋ฐ˜๋ณตํ•ด์„œ ์„œ๋กœ ์š”์ฒญ/์‘๋‹ต์„ ์ฃผ๊ณ  ๋ฐ›๋Š” ์—ญํ• ์„ ํ•œ๋‹ค. ํฌ์ŠคํŒ…์—์„œ๋Š” ์ง๊ด€์ ์ธ ์ดํ•ด๋ฅผ ์œ„ํ•ด PC1์ด ์ง์ ‘ ์š”์ฒญํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๊ทธ๋ฆผ์„ ๊ทธ๋ ธ๋‹ค

 

์œ„ ์˜ˆ์‹œ๋Š” ๊ตญ๋‚ด๋ฅผ ๋ฒ”์œ„๋กœ ํ•ด์„œ ISP ๋‹จ์œ„๋กœ LB๋ฅผ ๋ถ„๋ฆฌํ–ˆ์ง€๋งŒ, ์ „์„ธ๊ณ„์—์„œ ์šด์˜ํ•˜๋Š” ์„œ๋น„์Šค๋กœ ํ™•์žฅ๋˜๋ฉด ๋‹น์—ฐํžˆ ๊ตญ๊ฐ€ ๋‹จ์œ„๋กœ GSLB๋ฅผ ๊ตฌ์„ฑํ•˜๊ธฐ๋„ ํ•œ๋‹ค. ๋งŒ์•ฝ ์ „์„ธ๊ณ„ ๊ตญ๊ฐ€๋กœ ํ™•๋Œ€ํ–ˆ์„ ๊ฒฝ์šฐ, ํŠน์ • ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์–ด๋–ค ๊ตญ๊ฐ€์—์„œ ์š”์ฒญ์„ ๋ณด๋ƒˆ๋Š”์ง€ ์ง€๋ฆฌ์  ์œ„์น˜๋ฅผ ํŒ๋‹จํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์„๊นŒ? ๊ฐ€๋Šฅํ•˜๋‹ค. ๋ฐ”๋กœ IP ์ฃผ์†Œ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํŒ๋‹จํ•œ๋‹ค. ๋ฌผ๋ก  IP ์ฃผ์†Œ๋งŒ์„ ๊ฐ€์ง€๊ณ  ์ž์ฒด์ ์œผ๋กœ ํŒ๋‹จํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๊ณ  IP ์ฃผ์†Œ๊ฐ€ ์–ด๋–ค ๊ตญ๊ฐ€, ์–ด๋–ค ISP ์—…์ฒด, ์–ด๋–ค ๋„์‹œ์— ์žˆ๋Š”์ง€ ๋งคํ•‘๋˜์–ด ์žˆ๋Š” ์ผ์ข…์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ํ™œ์šฉํ•ด์„œ ํ•ด๋‹น IP ์ฃผ์†Œ์˜ ์ •๋ณด๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ตฌ์ถ•ํ•˜๊ณ  B2B ์„œ๋น„์Šค๋กœ ํŒ๋งคํ•˜๋Š” ํšŒ์‚ฌ๊ฐ€ ์žˆ๋Š”๋ฐ ๋Œ€ํ‘œ์ ์œผ๋กœ๋Š” MaxMind๋ผ๋Š” ๊ณณ์ด ์žˆ๋‹ค.


์ด๋ ‡๊ฒŒ ํ•ด์„œ NAT์˜ ์›๋ฆฌ๋ž‘ ๋™์ผํ•˜๊ฒŒ Port ๋ฒˆํ˜ธ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์Šค์œ„์นญํ•˜๋Š” ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ์ธ LB์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์•˜๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ฌผ๋ฆฌ์ ์ธ LB์˜ ํ•œ๊ณ„์ ์„ ์„ค๋ช…ํ•˜๋ฉด์„œ ์ด LB์™€ ์„œ๋ฒ„๋“ค์„ ์†Œํ”„ํŠธ์›จ์–ดํ™”(Virtualization)์‹œ์ผœ ์š”์ฆ˜ ๋Œ€๋ถ€๋ถ„์˜ ํšŒ์‚ฌ์—์„œ ์ฑ„ํƒํ•˜๊ณ  ์žˆ๋Š” Docker, Kubernetes์™€ ๊ฐ™์€ ๊ธฐ์ˆ ์ด ๋“ฑ์žฅํ•œ ์ด์œ ๋„ ์•Œ์•„๋ณด์•˜๋‹ค. ๋งˆ์ง€๋ง‰์œผ๋กœ๋Š” LB๋ฅผ ์—ฌ๋Ÿฌ๊ฐœ ๋‘๋Š” GSLB์— ๋Œ€ํ•ด์„œ๋„ ๊ฐ„๋‹จํžˆ ์•Œ์•„๋ณด์•˜๋‹ค.

 

๋‹ค์Œ ํฌ์ŠคํŒ…์—์„œ๋Š” ๋„คํŠธ์›Œํฌ ํฌ์ŠคํŒ…์˜ ๋งˆ์ง€๋ง‰์ธ VPN(Virtual Private Network)์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๋„๋ก ํ•˜์ž.

๋ฐ˜์‘ํ˜•