[HAProxy] Health Check
HAProxy๋ ํฌ์ค์ฒดํฌ๋ฅผ ํตํด ์๋ฒ์ ์์กด์ฌ๋ถ๋ฅผ ํ์
ํ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค.
ํฌ์ค์ฒดํฌ์ ์คํจํ ์๋ฒ๋ ์ค์ ๋ผ์ฐํ
๋์์์ ์ ์ธ๋๊ณ , ํฌ์ค์ฒดํฌ๊ฐ ๋ค์ ์ฑ๊ณตํ๋ฉด ๋ผ์ฐํ
๋์์ผ๋ก ๋์์จ๋ค.
ํฌ์ค์ฒดํฌ๋ ๋ค์๊ณผ ๊ฐ์ ํํ๋ก ์ ์ํ ์ ์๋ค.
์ด ๊ฒฝ์ฐ์๋ "GET /" API๋ฅผ ํฌ์ค์ฒดํฌ๋ก ์ฌ์ฉํ๋ค.
frontend test-front
mode http
bind *:8000
default_backend test-back
backend test-back
balance roundrobin
option httpchk GET /
server server1 0.0.0.0:8081 check
server server2 0.0.0.0:8082 check
ํฌ์ค์ฒดํฌ๋ TCP๋ก๋ ๊ฐ๋ฅํ๋ฐ, ์ฌ๊ธฐ์๋ HTTP๋ง ์์๋ก ๋ค๋ฃฌ๋ค.
๋ง์ฝ ๊ฐ์๊ธฐ server2 ์๋ฒ๊ฐ ๋ค์ด๋๋ค๊ณ ํ๋ฉด, ์๊ฐ์ ์ผ๋ก server2์ ์ฐ๊ฒฐํ ์์ฒญ์ ๋ป์ ์ ์์ง๋ง

server2๊ฐ ํฌ์ค์ฒดํฌ์ ์คํจํด์ ๋ผ์ฐํ ๋์์์ ๋น ์ง๊ฒ ๋๋ฏ๋ก, server1์๋ง ๋ผ์ฐํ ์ด ๋๊ฒ ๋๋ค.
ํ์ง๋ง ์คํจํ๋ค๊ณ ๋์ ์๋๋ค. server2๊ฐ ๋ค์ ์คํ๋๊ณ , ํฌ์ค์ฒดํฌ์๋ ์ฑ๊ณตํ๋ฉด ๋ค์ ๋ผ์ฐํ
๋์์ด ๋๋ค.
๊ธฐํ ์ค์
disabled
ํน์ ์๋ฒ๋ฅผ ์์๋ก ๋ผ์ฐํ
๋์์์ ์ ์ธํ๊ณ ์ถ๋ค๋ฉด, disabled ํค์๋๋ฅผ ์ธ ์ ์๋ค. ์ด๊ฑธ ์ฐ๋ฉด ์ ํ ์์ฒด๊ฐ ๋น ์ง๋ ๊ฒ๊ณผ ๋์ผํ, comment์ ๋์ผํ ํจ๊ณผ๋ฅผ ์ค๋ค.
backend test-back
balance roundrobin
option httpchk GET /
server server1 0.0.0.0:8081 check
server server2 0.0.0.0:8082 check
http-check
http-check ์ ๊ณผ expect๋ฅผ ์ฌ์ฉํ๋ฉด ์๋ต ์ํ ์ฝ๋๋ฅผ ์ง์ ํ ์๋ ์๋ค.
์ด๋ฌ๋ฉด ์๋ต์ด 200์ผ๋ก ์์ ๋๋ง ํฌ์ค์ฒดํฌ๊ฐ ์ฑ๊ณตํ ๊ฒ์ผ๋ก ์น๋ค.
backend test-back
balance roundrobin
option httpchk GET /
http-check expect status 200
server server1 0.0.0.0:8081 check
server server2 0.0.0.0:8082 check

inter
inter ํค์๋๋ฅผ ์ฌ์ฉํ๋ฉด ํฌ์ค์ฒดํฌ์ ๋ํ ๊ฐ๊ฒฉ๋ ์กฐ์ ๊ฐ๋ฅํ๋ค. ๋ค์ ์ค์ ์ 4์ด๋ง๋ค ํฌ์ค์ฒดํฌ๋ฅผ ํ๊ฒ ํ๋ค.
backend test-back
balance roundrobin
option httpchk GET /
server server1 0.0.0.0:8081 check inter 4s
server server2 0.0.0.0:8082 check inter 4s
์ค์ ํ์ง ์์ ๊ฒฝ์ฐ ๊ธฐ๋ณธ๊ฐ์ 2์ด๋ค.
fall
fall ํค์๋๋ฅผ ์ฌ์ฉํ๋ฉด ์คํจ์ ๋ํ ๊ธฐ์ค๋ ์ ํ ์ ์๋ค.
๋ค์ ์ค์ ์ 5๋ฒ ์คํจํ์๋๋ถํฐ ์คํจ๋ก ๊ฐ์ ํ๋ค.
backend test-back
balance roundrobin
option httpchk GET /
server server1 0.0.0.0:8081 check fall 5
server server2 0.0.0.0:8082 check fall 5
fall์ ๊ธฐ๋ณธ๊ฐ์ 3์ด๋ค.
rise
rise ํค์๋๋ฅผ ์ฌ์ฉํ๋ฉด ์ฃฝ์ ์ํ์์ healthyํ ์ํ๋ก ๋ค์ ํ๋จํ๋ ์ฑ๊ณต ํ์๋ฅผ ์ง์ ํ ์ ์๋ค.
๋ค์๊ณผ ๊ฐ์ด ์ง์ ํ๋ค๋ฉด, 7๋ฒ ์คํจํ๋ฉด ์ฃฝ์๋ค๊ณ ํ๋จํด์ ๋ค๋ก ๋ฏธ๋ฃจ๊ณ , ๊ทธ ์ํ์์ ๋ค์ 8๋ฒ ์ฑ๊ณตํ๋ฉด ์ด์๋ค๊ณ ํ๋จํ๋ค.
backend test-back
balance roundrobin
option httpchk GET /
server server1 0.0.0.0:8081 check fall 7 rise 8
server server2 0.0.0.0:8082 check fall 7 rise 8
rise์ ๊ธฐ๋ณธ๊ฐ์ 2๋ค.
์ถ๊ฐ์ ์ธ ๋ด์ฉ์ ๋ณ๋ ๋ฌธ์๋ฅผ ์ฐธ์กฐํ๋ค.
https://www.haproxy.com/documentation/haproxy-configuration-tutorials/reliability/health-checks/
์ฐธ์กฐ
https://www.haproxy.com/documentation/haproxy-configuration-tutorials/reliability/health-checks/
https://cyuu.tistory.com/71