Keepalived๋ฅผ ์ฌ์ฉํ์ฌ ๊ณ ๊ฐ์ฉ์ฑ ๋ฐ ์ถ๊ฐ Passive ๋ ธ๋ ๊ตฌ์ฑํ๊ธฐ
On-Premises ๋ฐฐํฌ์์ Active-Active ์ ๋ฐ ์ฌ๋ฌ Passive ์ธ์คํด์ค๋ฅผ ์ฌ์ฉํ์ฌ NGINX Plus ์ธ์คํด์ค์ ๊ณ ๊ฐ์ฉ์ฑ ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๋ชฉ์ฐจ
1. ์๊ฐ
2. Passive ๋ ธ๋๋ฅผ ์ถ๊ฐํ๋ ์ด์
3. Active-Active HA๋ฅผ ๊ตฌ์ฑํด์ผ ํ๋ ์ด์
4. ์ถ๊ฐ Passive ๋ ธ๋์ ๋ํ Keepalived ๊ตฌ์ฑํ๊ธฐ
5. Active-Active HA๋ฅผ ์ํ keepalived ๊ตฌ์ฑํ๊ธฐ
6. Active-Active HA๋ฅผ ์ํ NGINX Plus ๊ตฌ์ฑ
6-1. ๊ฐ ๋ ธ๋์์ ๋ค์ํ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๊ฒ NGINX Plus ๊ตฌ์ฑํ๊ธฐ
6-2. ๋ชจ๋ ๋ ธ๋์์ ๋ชจ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํ NGINX Plus ๊ตฌ์ฑํ๊ธฐ
7. ๋ฉ์๋ ๊ฒฐํฉ ๋ฐ ํ์ฅ
7-1. 3๊ฐ ์ด์์ ๋ ธ๋์์ All-Active HA ๊ตฌ์ฑํ๊ธฐ
7-2. Active-Active-Passive HA ๊ตฌ์ฑํ๊ธฐ
1. ์๊ฐ
NGINX Plus๋ keepalived๋ฅผ ํ์ฉํ์ฌ ํ์ค Active-Passive ๋ฐฉ์์ผ๋ก ๊ณ ๊ฐ์ฉ์ฑ(HA)์ ์ ๊ณตํฉ๋๋ค. ์ด๋ ๊ธฐ๋ณธ NGINX Plus ๋
ธ๋์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ ์ฅ์ ์กฐ์น ์ด์คํ๋ฅผ ์ ๊ณตํฉ๋๋ค. ์ถ๊ฐ ๋
ธ๋ ๋ฐ keepalived ๊ตฌ์ฑ ๋ณ๊ฒฝ์ ํตํด ์ด ๊ธฐ๋ฅ์ ํ์ฅํ์ฌ ์ถ๊ฐ์ ์ธ ์ค๋ณต์ฑ ๋ฐ ํ์ฅ์ฑ ์ต์
์ ์ ๊ณตํ ์ ์์ต๋๋ค. ์ด ๊ฐ์ด๋์์๋ ์ด๋ฏธ NGINX HA ์๋ฃจ์
๊ณผ ํจ๊ป Active-Passive ๊ตฌํ์ผ๋ก NGINX Plus๋ฅผ ๊ตฌ์ฑํ๋ค๊ณ ๊ฐ์ ํฉ๋๋ค.
Note: ํผ๋ธ๋ฆญ ํด๋ผ์ฐ๋ ๋ฐฐํฌ์์๋ ํด๋ผ์ฐ๋ ์ ๊ณต์ ์ฒด์์ ์ ๊ณตํ๋ Layer 4 ๋๋ TCP Load Balancing ์๋น์ค๋ฅผ ์ฌ์ฉํ์ฌ Active-Active ๊ธฐ๋ฅ์ ์ํด NGINX Plus์ ํธ๋ํฝ์ ๋ถ์ฐํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
2. ๊ณ ๊ฐ์ฉ์ฑ Passive ๋ ธ๋๋ฅผ ์ถ๊ฐํ๋ ์ด์
๋ง์ ์กฐ์ง์ ์ค๋ณต์ฑ Level์ ๋ํ ์๊ฒฉํ ์๊ตฌ ์ฌํญ์ ๊ฐ์ง๊ณ ์์ผ๋ฉฐ, 2๋ ธ๋ Active-Passive ์์คํ ์ ์ด๋ฌํ ์๊ตฌ ์ฌํญ์ ์ถฉ์กฑํ์ง ๋ชปํ ์ ์์ต๋๋ค. ๋ค๋ฅธ ๋ ๋ ธ๋๊ฐ ๋ชจ๋ ๋ค์ด๋ ๊ฒฝ์ฐ ์ด๋ฅผ ๋์ ํ๋๋ก ๊ตฌ์ฑ๋ ์ธ ๋ฒ์งธ ๋ ธ๋๋ฅผ ์ถ๊ฐํ๋ฉด ๊ตฌ์ฑ์ ๋จ์ํ๊ฒ ์ ์งํ๋ฉด์ ์ถ๊ฐ์ ์ธ ์ค๋ณต์ฑ์ ์ ๊ณตํ ์ ์์ต๋๋ค. ๋ํ ์ค๋ณต์ฑ์ ์์ง ์๊ณ ๋ ธ๋์์ ์ ์ง๋ณด์๋ฅผ ์ํํ ์ ์์ต๋๋ค.
3. Active-Active ๊ณ ๊ฐ์ฉ์ฑ ๊ตฌ์ฑ์ ํ๋ ์ด์
๋ ๊ฐ ์ด์์ ๋ ธ๋๊ฐ ๋์์ ํธ๋ํฝ์ ์ฒ๋ฆฌํ๋ ” Active-Active” ๋ฐฉ์์ผ๋ก NGINX Plus๋ฅผ ์คํํ ์ ์์ต๋๋ค. ์ด๋ ์ฌ๋ฌ ๊ฐ์ ํ์ฑ IP ์ฃผ์๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ฃจ์ด์ง๋๋ค. ๊ฐ IP ์ฃผ์๋ ๋จ์ผ NGINX ์ธ์คํด์ค์์ ํธ์คํ ๋๋ฉฐ, Keepalived ๊ตฌ์ฑ์ ์ด๋ฌํ IP ์ฃผ์๊ฐ ๋ ๊ฐ ์ด์์ ํ์ฑ ๋ ธ๋์ ๋ถ์ฐ๋๋๋ก ํฉ๋๋ค.
- ์ฌ๋ฌ ์๋น์ค๋ฅผ ํธ์คํ ํ๋ ๊ฒฝ์ฐ ๊ฐ ์๋น์ค์ DNS ์ด๋ฆ์ IP ์ฃผ์ ์ค ํ๋๋ก ํ์ธ๋์ด์ผ ํฉ๋๋ค. ์๋น์ค ๊ฐ์ IP ์ฃผ์๋ฅผ ๊ณต์ ํ์ธ์.
- Round-Robin DNS๋ฅผ ์ฌ์ฉํ์ฌ ๋จ์ผ DNS ์ด๋ฆ์ ์ฌ๋ฌ IP ์ฃผ์์ ๋งคํํ ์ ์์ต๋๋ค.
- ๋ฐ์ดํฐ์ผํฐ Edge Load Balancer์ ๊ฐ์ L3 Load Balancing ์ฅ์น๋ฅผ ์ฌ์ฉํ์ฌ IP ์ฃผ์ ๊ฐ์ L3 ํธ๋ํฝ์ ๋ถ์ฐํฉ๋๋ค.
Active-Active๋ฅผ ์ฌ์ฉํ์ฌ Load Balancing ํด๋ฌ์คํฐ์ ์ฉ๋์ ๋๋ฆด ์ ์์ง๋ง Active-Active ์์ ๋จ์ผ ๋ ธ๋์ ์ฅ์ ๊ฐ ๋ฐ์ํ๋ฉด ์ฉ๋์ด ์ ๋ฐ์ผ๋ก ์ค์ด๋ ๋ค๋ ์ ์ ์ ์ํ์ธ์. ๋ ๋ ธ๋๊ฐ ๋ชจ๋ Active ์ํ์ผ ๋ ์๊ธฐ์น ์์ ํธ๋ํฝ ๊ธ์ฆ์ ํก์ํ ์ ์๋ ์ถฉ๋ถํ ๋ฆฌ์์ค๋ฅผ ์ ๊ณตํ๊ธฐ ์ํ ์์ ์๋จ์ผ๋ก Active-Active๋ฅผ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ, ๋ ํฐ ๊ท๋ชจ์ ํด๋ฌ์คํฐ์์ Active-Active๋ฅผ ์ฌ์ฉํ์ฌ ๋ ๋ง์ ์ด์คํ๋ฅผ ์ ๊ณตํ ์ ์์ต๋๋ค.
Note: Load Balancing ํด๋ฌ์คํฐ์ NGINX ์ธ์คํด์ค๊ฐ ๊ตฌ์ฑ์ด๋ ์ํ๋ฅผ ๊ณต์ ํ์ง ์๋๋ก ํฉ๋๋ค. Active-Active ์๋๋ฆฌ์ค์์ ์ต์์ ์ฑ๋ฅ์ ์ป์ผ๋ ค๋ฉด ๋์ผํ ํด๋ผ์ด์ธํธ์ ์ฐ๊ฒฐ์ด ๋์ผํ Active IP ์ฃผ์๋ก ๋ผ์ฐํ
๋๋๋ก ํ๊ณ , ์๋ฒ ์ธก ์ํ์ ์์กดํ์ง ์๋ sticky cookie์ ๊ฐ์ ์ธ์
์ง์์ฑ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ์ธ์.
4. ๊ณ ๊ฐ์ฉ์ฑ ์ถ๊ฐ Passive ๋ ธ๋์ ๋ํ Keepalived ๊ตฌ์ฑํ๊ธฐ
๊ธฐ์กด NGINX Plus Active-Passive HA ์์ ๋ํ ์ถ๊ฐ Passive ๋ ธ๋๋ฅผ ๊ตฌ์ฑํ๋ ค๋ฉด ๋ค์ ๋จ๊ณ๋ฅผ ์ํํฉ๋๋ค.
1. ์ ๋ ธ๋์ nginx-plus ๋ฐ nginx-ha-keepalived ํจํค์ง๋ฅผ ์ค์นํฉ๋๋ค.
2. ๋ณด์กฐ ๋ ธ๋์ /etc/keepalived/keepalived.conf๋ฅผ ์ ๋ ธ๋์ ๋์ผํ ์์น๋ก ๋ณต์ฌํฉ๋๋ค.
3. ์ ๋ ธ๋์์ keepalived.conf๋ฅผ ํธ์งํฉ๋๋ค.
- ๋ค๋ฅธ ๋
ธ๋๋ณด๋ค ๋ฎ์
priority๋ฅผ ๊ฐ๋๋กvrrp_instance๋ธ๋ก์ priority๋ฅผ ๋ฎ์ถฅ๋๋ค. - ์ ๋
ธ๋์ ํธ์คํธ IP ์ฃผ์์ ์ผ์นํ๋๋ก
unicast_src_ip๋ฅผ ๋ณ๊ฒฝํฉ๋๋ค. - ๋ค๋ฅธ ๋ชจ๋ ๋
ธ๋๊ฐ ๋์ด๋๋๋ก ๋ณด์กฐ ๋
ธ๋์ IP ์ฃผ์๋ฅผ
unicast_peer์น์ ์ ์ถ๊ฐํฉ๋๋ค.
์๋๋ IP ์ฃผ์๊ฐ 192.168.10.12์ธ ์ถ๊ฐ Passive ๋ ธ๋์ ์๋ keepalived.conf ์ํ์ ๋๋ค. ๋ค๋ฅธ ๋ ๋ ธ๋์ IP ์ฃผ์๋ 192.168.10.10๊ณผ 192.168.10.11์ ๋๋ค. ๊ฐ์ IP ์ฃผ์(VIP)๋ 192.168.10.100์ ๋๋ค.
vrrp_script chk_nginx_service {
script "/usr/lib/keepalived/nginx-ha-check"
interval 3
weight 50
}
vrrp_instance VI_1 {
interface eth0
state BACKUP
priority 99
virtual_router_id 51
advert_int 1
accept
unicast_src_ip 192.168.10.12
unicast_peer {
192.168.10.10
192.168.10.11
}
virtual_ipaddress {
192.168.10.100
}
track_script {
chk_nginx_service
}
notify "/usr/lib/keepalived/nginx-ha-notify"
}
4. ๋ค๋ฅธ ๋
ธ๋์์ keepalived.conf๋ฅผ ํธ์งํ์ฌ ์ Passive ๋
ธ๋์ IP ์ฃผ์๋ฅผ unicast_peer ์น์
์ ์ถ๊ฐํ์ฌ ๋ค๋ฅธ ๋ชจ๋ ๋
ธ๋๊ฐ ๋์ด๋๋๋ก ํฉ๋๋ค.
unicast_peer {
192.168.10.11
192.168.10.12
}
5. ๋ชจ๋ ๋
ธ๋์์ keepalived๋ฅผ ๋ค์ ์์ํฉ๋๋ค.
6. ์ฒ์ ๋ ๋ ธ๋์์ NGINX Plus๋ฅผ ์ค์งํ์ฌ ํ ์คํธํฉ๋๋ค.
๋ชจ๋ NGINX Plus ๋ ธ๋์๋ ๋์ผํ ๊ตฌ์ฑ ๋ฐ SSL ์ธ์ฆ์๊ฐ ์์ด์ผ ํฉ๋๋ค.
5. Active-Active HA๋ฅผ ์ํ keepalived ๊ตฌ์ฑํ๊ธฐ
๋ ๋ ธ๋์ ๋์์ ํธ๋ํฝ์ ์ ์กํ๋ ค๋ฉด ์ถ๊ฐ VIP๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค. ์ด ์ VIP๋ ์ด์ Passive ๋ ธ๋์์ ํ์ฑํ๋๋ฏ๋ก ๊ฐ ๋ ธ๋๋ ์์ฒด VIP๋ก ํ์ฑํ๋ฉ๋๋ค. ๊ธฐ์กด NGINX Plus HA ์์ Active- Active๋ก ๊ตฌ์ฑํ๋ ค๋ฉด ๋ค์ ๋จ๊ณ๋ฅผ ์ํํ์ธ์.
1. ๋ณด์กฐ ๋ ธ๋์์ keepalived.conf๋ฅผ ํธ์งํฉ๋๋ค.
- ์ ์ฒด
vrrp_instance block VI_1์น์ ์ ๋ณต์ฌํ์ฌ ๊ธฐ์กด ๋ธ๋ก ์๋์ ๋ถ์ฌ๋ฃ์ต๋๋ค. - ๋ณต์ฌํ
vrrp_instance์น์ ์์:- ์
vrrp_instance์ ์ด๋ฆ์VI_2๋๋ ๋ค๋ฅธ ๊ณ ์ ์ด๋ฆ์ผ๋ก ๋ณ๊ฒฝํฉ๋๋ค. virtual_router_id๋ฅผ61๋๋ ๋ค๋ฅธ ๊ณ ์ ๊ฐ์ผ๋ก ๋ณ๊ฒฝํฉ๋๋ค.virtual_ipaddress๋ฅผ ๋์ผํ ์๋ธ๋ท์์ ์ฌ์ฉ ๊ฐ๋ฅํ IP ์ฃผ์๋ก ๋ณ๊ฒฝํฉ๋๋ค(์ด ์์ ์์๋ 192.168.10.101).priority๊ฐ์100์ผ๋ก ๋ณ๊ฒฝ
- ์
vrrp_script chk_nginx_service {
script "/usr/lib/keepalived/nginx-ha-check"
interval 3
weight 50
}
vrrp_instance VI_1 {
interface eth0
state BACKUP
priority 101
virtual_router_id 51
advert_int 1
accept
unicast_src_ip 192.168.10.10
unicast_peer {
192.168.10.11
}
virtual_ipaddress {
192.168.10.100
}
track_script {
chk_nginx_service
}
notify "/usr/lib/keepalived/nginx-ha-notify"
}
vrrp_instance VI_2 {
interface eth0
state BACKUP
priority 100
virtual_router_id 61
advert_int 1
accept
unicast_src_ip 192.168.10.10
unicast_peer {
192.168.10.11
}
virtual_ipaddress {
192.168.10.101
}
track_script {
chk_nginx_service
}
notify "/usr/lib/keepalived/nginx-ha-notify"
}
2. ๊ธฐ๋ณธ ๋ ธ๋์์ keepalived.conf๋ฅผ ํธ์งํฉ๋๋ค.
- ๋ณด์กฐ ๋ ธ๋์์ ์ํํ ํธ์ง์ ๋ฐ๋ณตํฉ๋๋ค.
- ์
vrrp_instance๋ด์priority๋ฅผ99๋๋ ๋ณด์กฐ ๋ ธ๋๋ณด๋ค ๋ฎ์ ๊ฐ์ผ๋ก ์ค์ ํฉ๋๋ค.
3. ๋ชจ๋ ๋
ธ๋์์ keepalived๋ฅผ ๋ค์ ์์ํฉ๋๋ค.
๊ตฌ์ฑ ํ์ผ ๋ฐ SSL ์ธ์ฆ์ ํ์ผ ๋๊ธฐํ๋ ์ด ๋ฌธ์์์ ๋ค๋ฃจ์ง ์์ง๋ง ๋ชจ๋ ๋ ธ๋๊ฐ ๋์ผํ NGINX Plus ๊ตฌ์ฑ์ ๊ฐ์ง๊ณ ์๋์ง ํ์ธํ์ธ์.
6. Active-Active ๊ณ ๊ฐ์ฉ์ฑ ๊ตฌ์ฑ์ ์ํ NGINX Plus
์ด์ ๋ ๊ฐ์ NGINX Plus ๋ ธ๋๊ฐ ์์ฒด VIP๋ก ํ์ฑํ๋์์ผ๋ฏ๋ก NGINX Plus ์์ฒด๋ฅผ ๊ตฌ์ฑํด์ผ ํฉ๋๋ค. ํ์ฑ ๋ ธ๋์ ํธ๋ํฝ์ ๋ถ์ฐํ๋ ๋ฐ๋ ๋ ๊ฐ์ง ์ต์ ์ด ์์ต๋๋ค. ์ต์ 1์ ๋ชจ๋ ๋ ธ๋๋ฅผ ํ์ฑํํ๊ณ ๊ฐ ๋ ธ๋๊ฐ ํ๋ ์ด์์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฒ๋ฆฌํฉ๋๋ค. ์ต์ 2๋ ๋ชจ๋ ๋ ธ๋์์ ๋ชจ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ํ์ฑํํฉ๋๋ค.
Note: Load Balancing ์ค์ธ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ธ์ ์ง์์ฑ์ด ํ์ํ ๊ฒฝ์ฐ ์ฌ๋ฌ ํ์ฑ ๋ ธ๋์์ ์ฌ๋ฐ๋ฅด๊ฒ ์๋ํ๋ Sticky Cookie, Sticky Route ๋๋ IP ํด์ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค. Sticky Learn์ ํ์ฑ ๋ ธ๋ ๊ฐ์ ๊ณต์ ๋์ง ์๋ ์ธ์ ํ ์ด๋ธ์ ๋ฉ๋ชจ๋ฆฌ์ ์์ฑํฉ๋๋ค.
6-1. ๊ฐ ๋ ธ๋์์ ๋ค์ํ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๊ฒ NGINX Plus ๊ตฌ์ฑํ๊ธฐ
์ด ๊ตฌ์ฑ์์ ๊ฐ NGINX Plus ๋
ธ๋๋ Active VIP๊ฐ ์๋ server ๋ธ๋ก์ ๋ํ ์์ฒญ๋ง ์ฒ๋ฆฌํฉ๋๋ค. ์ฅ์ ๊ฐ ๋ฐ์ํ๋ฉด Active ๋
ธ๋๊ฐ ์ถ๊ฐ VIP์ ๋ํ ๊ธฐ๋ณธ ๋
ธ๋๊ฐ ๋์ด ์ฐ๊ฒฐ๋ server ๋ธ๋ก์ ๋ํ ์์ฒญ์ ์ฒ๋ฆฌํฉ๋๋ค.
๊ฐ server ๋ธ๋ก์๋ ์์ ์ค์ธ VIP๋ฅผ ์ง์ ํ๋ listen ์ง์๋ฌธ์ด ํฌํจ๋์ด ์์ต๋๋ค.
์ด์ ์น์
์ Active-Active keepalived ๊ตฌ์ฑ์ ๊ธฐ๋ฐ์ผ๋ก ์ฌ๊ธฐ์๋ ๋์ผํ ๋ ๊ฐ์ VIP๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ด ์์ ์์ ์ ํ๋ฆฌ์ผ์ด์
1์ NGINX Plus ๋
ธ๋ 1์์ ํ์ฑํ๋๊ณ ์ ํ๋ฆฌ์ผ์ด์
2๋ NGINX ๋
ธ๋ 2์์ ํ์ฑํ๋ฉ๋๋ค.
server {
listen 192.168.10.100:80;
location / {
root /application1;
}
}
server {
listen 192.168.10.101:80;
location / {
root /application2;
}
}
6-2. ๋ชจ๋ ๋ ธ๋์์ ๋ชจ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํ NGINX Plus ๊ตฌ์ฑํ๊ธฐ
์ด ๊ตฌ์ฑ์์ NGINX Plus๋ ๋ชจ๋ VIP์์ ๋ชจ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ํธ๋ํฝ์ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค. ๋ ธ๋์ ์ฅ์ ๊ฐ ๋ฐ์ํ๋ฉด ํด๋น ๋ ธ๋์ VIP๋ ์ฐ์ ์์๊ฐ ๋ค์์ผ๋ก ๋์ ๋ ธ๋๋ก ์ด๋ํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด DNS Load Balancing ๊ตฌ์ฑ์ ๋ณ๊ฒฝํ ํ์๊ฐ ์์ต๋๋ค.
๊ฐ NGINX Plus ๋ ธ๋๋ ๋ชจ๋ ์์ฒญ์ ์์ ๋๊ธฐํฉ๋๋ค. DNS Load Balancing์ ์์ฒญ์ NGINX Plus ๋ ธ๋์ ๋ถ์ฐํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ๊ฐ๋จํ Round-Robin DNS๋ก ์ถฉ๋ถํ๋ฉฐ DNS ์๋ฒ ์ค๋ช ์์ ๋ฐ๋ผ ๊ตฌ์ฑํ ์ ์์ต๋๋ค. ๊ฐ VIP์ ๋ํด ๋์ผํ FQDN(์ ๊ทํ๋ ๋๋ฉ์ธ ์ด๋ฆ)์ ๊ฐ์ง A๊ฐ ์๋์ง ํ์ธํ์ธ์. ์ด๋ฆ์ด ํ์ธ๋ ๋๋ง๋ค DNS ์๋ฒ์ ์๋ต์๋ ๋ชจ๋ VIP๊ฐ ํฌํจ๋์ง๋ง ๋ค๋ฅธ ์์๋ก ํฌํจ๋ฉ๋๋ค.
server {
listen *:80;
location /app1 {
root /application1;
}
location /app2 {
root /application2;
}
}
7. ๋ฉ์๋ ๊ฒฐํฉ ๋ฐ ํ์ฅ
Active-Active HA๋ฅผ ์ํ NGINX Plus ๊ตฌ์ฑ์ ๋ ๊ฐ์ง ๋ฐฉ๋ฒ์ ๋ชจ๋ ๊ฒฐํฉํ์ฌ Active-Active-Passive ๊ตฌ์ฑ์ ๊ตฌ์ฑํ๊ฑฐ๋ Active ๋ ธ๋ ์์ ๊ด๊ณ์์ด ๊ตฌ์ฑ์ผ๋ก ํ์ฅํ ์๋ ์์ต๋๋ค.
7-1. 3๊ฐ ์ด์์ ๋ ธ๋์์ All-Active HA ๊ตฌ์ฑํ๊ธฐ
๋ค์ keepalived ๊ตฌ์ฑ์ Active-Active-Active ๊ตฌ์ฑ์ ์ํ ๊ฒ์
๋๋ค. ์ฌ๊ธฐ์๋ Active ๋
ธ๋๋ฅผ ์ถ๊ฐํ๋ ๋จ๊ณ๊ฐ ์ธ ๋ฒ์งธ ๋
ธ๋์ ๋ํด ๋ฐ๋ณต๋ฉ๋๋ค. ์ด ๋
ธ๋๋ ํ ๋ช
์ VIP์ ๋ํด Active, ๋ ๋ฒ์งธ ๋
ธ๋๋ ํ ๋ช
์ VIP์ ๋ํด Active, ์ธ ๋ฒ์งธ ๋
ธ๋๋ ํ ๋ช
์ VIP์ ๋ํด Active์์ ์ ์ ์์ต๋๋ค.
vrrp_script chk_nginx_service {
script "/usr/lib/keepalived/nginx-ha-check"
interval 3
weight 50
}
vrrp_instance VI_1 {
interface eth0
state BACKUP
priority 101
virtual_router_id 51
advert_int 1
accept
unicast_src_ip 192.168.10.10
unicast_peer {
192.168.10.11
192.168.10.12
192.168.10.13
}
virtual_ipaddress {
192.168.10.100
}
track_script {
chk_nginx_service
}
notify "/usr/lib/keepalived/nginx-ha-notify"
}
vrrp_instance VI_2 {
interface eth0
state BACKUP
priority 100
virtual_router_id 61
advert_int 1
accept
unicast_src_ip 192.168.10.10
unicast_peer {
192.168.10.11
192.168.10.12
192.168.10.13
}
virtual_ipaddress {
192.168.10.101
}
track_script {
chk_nginx_service
}
notify "/usr/lib/keepalived/nginx-ha-notify"
}
vrrp_instance VI_3 {
interface eth0
state BACKUP
priority 99
virtual_router_id 71
advert_int 1
accept
unicast_src_ip 192.168.10.10
unicast_peer {
192.168.10.11
192.168.10.12
192.168.10.13
}
virtual_ipaddress {
192.168.10.102
}
track_script {
chk_nginx_service
}
notify "/usr/lib/keepalived/nginx-ha-notify"
}
7-2. Active-Active-Passive HA ๊ตฌ์ฑํ๊ธฐ
์ด ์์ keepalived ๊ตฌ์ฑ์ Active-Active-Passive ๊ตฌ์ฑ์ Passive ๋
ธ๋์ ๋ํ ๊ฒ์
๋๋ค. ์ถ๊ฐ Passive ๋
ธ๋์ ๋ํ keepalived ๊ตฌ์ฑ ๋ฐ Active-Active HA์ ๋ํ keepalived ๊ตฌ์ฑ์ ๋จ๊ณ๋ฅผ ๊ฒฐํฉํฉ๋๋ค.
vrrp_script chk_nginx_service {
script "/usr/lib/keepalived/nginx-ha-check"
interval 3
weight 50
}
vrrp_instance VI_1 {
interface eth0
state BACKUP
priority 99
virtual_router_id 51
advert_int 1
accept
unicast_src_ip 192.168.10.12
unicast_peer {
192.168.10.10
192.168.10.11
}
virtual_ipaddress {
192.168.10.100
}
track_script {
chk_nginx_service
}
notify "/usr/lib/keepalived/nginx-ha-notify"
}
vrrp_instance VI_2 {
interface eth0
state BACKUP
priority 99
virtual_router_id 61
advert_int 1
accept
unicast_src_ip 192.168.10.12
unicast_peer {
192.168.10.10
192.168.10.11
}
virtual_ipaddress {
192.168.10.101
}
track_script {
chk_nginx_service
}
notify "/usr/lib/keepalived/nginx-ha-notify"
}