VIP(Virtual IP)

VIP(Virtual IP)

VIP๋Š” ํ•˜๋‚˜์˜ ํ˜ธ์ŠคํŠธ์— ์—ฌ๋Ÿฌ๊ฐœ์˜ IP ์ฃผ์†Œ๋ฅผ ํ• ๋‹นํ•˜๋Š” ๊ธฐ์ˆ ์ด๋‹ค.

๋‚ด๋ถ€์—์„œ๋Š” ํ•˜๋‚˜์˜ ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค์— ์—ฌ๋Ÿฌ ๊ฐœ์˜ IP ์ฃผ์†Œ๋ฅผ ์ค„ ์ˆ˜ ์žˆ์ง€๋งŒ, ๋ฐ”๊นฅ์—์„œ๋Š” ๋งˆ์น˜ ํ•˜๋‚˜ ์ด์ƒ์˜ ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ์žˆ๋Š” ๊ฒƒ์œผ๋กœ ๋ณด์ผ ๊ฒƒ์ด๋‹ค.

VIP๋Š” ๋ณดํ†ต HA๋‚˜ ๋กœ๋“œ๋ฐธ๋Ÿฐ์‹ฑ์„ ์œ„ํ•ด์„œ ๋„๋ฆฌ ์‚ฌ์šฉ๋œ๋‹ค.


VIP ์‚ฌ์šฉ ์˜ˆ์‹œ

RDB ์„œ๋น„์Šค๋ฅผ ์˜ˆ๋กœ ๋“ค์–ด๋ณด์ž. ์ค‘์š” ์„œ๋น„์Šค์˜ ๊ฒฝ์šฐ์—๋Š” ํ•˜๋‚˜์˜ DB ์„œ๋ฒ„์— ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธฐ๋”๋ผ๋„ ์„œ๋น„์Šค์—๋Š” ๋ฌธ์ œ๊ฐ€ ์—†์–ด์•ผ ํ•œ๋‹ค. ๊ทธ๋ž˜์„œ ๋ณดํ†ต์€ ๋‘๋Œ€์˜ ํ˜ธ์ŠคํŠธ๋ฅผ Active - Standby ํ˜•ํƒœ์˜ HA๋ฅผ ๊ตฌํ˜„ํ•œ๋‹ค.

์ด๋•Œ VIP๋Š” ๋‘ ๊ฐ€์ง€ ์žฅ์ ์„ ๊ฐ€์ง„๋‹ค.

  1. ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ HA๋œ ๋‹ค์ˆ˜ ํ˜ธ์ŠคํŠธ์— ๋Œ€ํ•ด ๋™์ผํ•œ IP๋ฅผ ์ œ๊ณตํ•˜์—ฌ ์›ํ™œํ•œ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋‹ค.
  2. ์‹ค์ œ ์„œ๋ฒ„๊ฐ€ ๊ตฌ๋™๋˜๊ณ  ์žˆ๋Š” IP๋ฅผ ์™ธ๋ถ€์—์„œ ์‰ฝ๊ฒŒ ์•Œ ์ˆ˜ ์—†๋„๋ก ํ•  ์ˆ˜ ์žˆ๋‹ค.

VIP ๊ตฌ์„ฑ ์˜ˆ์‹œ๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

  • VIP : 192.168.100.50
  • 1๋ฒˆ ์„œ๋ฒ„ : 192.168.100.126 (Active)
  • 2๋ฒˆ ์„œ๋ฒ„ : 192.168.100.127 (Standby)

vip-structure

Active(Master) ์„œ๋ฒ„์—์„œ VIP๊ฐ€ ํ™œ์„ฑํ™” ๋˜์–ด์žˆ๋‹ค. Application์€ ํ•ด๋‹น VIP๋ฅผ ํ†ตํ•˜์—ฌ Active ์„œ๋ฒ„์˜ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณต๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค.

๋งŒ์ผ Active ์„œ๋ฒ„์— ๋ฌธ์ œ๊ฐ€ ์ƒ๊ฒจ Failover๊ฐ€ ์ด๋ฃจ์–ด์ ธ 2๋ฒˆ ์„œ๋ฒ„๊ฐ€ Active ์ƒํƒœ๊ฐ€ ๋˜๋ฉด, 1๋ฒˆ ์„œ๋ฒ„์˜ VIP๋Š” ๋‚ด๋ ค๊ฐ€๊ณ , Active ์ƒํƒœ๊ฐ€ ๋œ 2๋ฒˆ ์„œ๋ฒ„์— VIP๊ฐ€ ํ™œ์„ฑํ™” ๋œ๋‹ค.

Application์—์„œ๋Š” ๊ฐ™์€ VIP์ธ 192.168.100.50์„ ๋ฐ”๋ผ๋ณด์ง€๋งŒ ์‹ค์ œ๋กœ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜๋Š” ์„œ๋ฒ„๋Š” 2๋ฒˆ ์„œ๋ฒ„๊ฐ€ ๋˜๋Š” ๊ฒƒ์ด๋‹ค.


ifconfig up, down

ifconfig ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•˜์—ฌ VIP๋ฅผ ํ™œ์„ฑํ™”, ๋น„ํ™œ์„ฑํ™” ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.

๋ช…๋ น์–ด๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

$ ifconfig
eno1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.100.126  netmask 255.255.255.0  broadcast 192.168.100.255
        ...

$ ifconfig eno1:0 192.168.100.50 up
$ ifconfig
eno1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.100.126  netmask 255.255.255.0  broadcast 192.168.100.255
        ...

eno1:0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.100.50  netmask 255.255.255.0  broadcast 192.168.100.255
        ...

$ ifconfig eno1:0 192.168.100.50 down
$ ifconfig
eno1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.100.126  netmask 255.255.255.0  broadcast 192.168.100.255
        ...

์œ„ ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•˜์—ฌ ๊ฐ ์„œ๋น„์Šค์˜ ์ƒํ™ฉ์— ๋งž๋Š” shell script๋ฅผ ๊ฐœ๋ฐœํ•˜์—ฌ VIP๋ฅผ ์ด์šฉํ•œ HA, ๋กœ๋“œ๋ฐธ๋Ÿฐ์‹ฑ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค.

Leave a comment