[Docker] HAProxy๋ฅผ ์ด์ฉํ ๋ก๋ ๋ฐธ๋ฐ์ฑ
์ด๋ฒ ํฌ์คํธ๋ ์ง๋ ํฌ์คํธ์ ์ด์ด HAProxy๋ฅผ ์ด์ฉํ ๋ก๋ ๋ฐธ๋ฐ์ฑ์ ๋ค๋ค๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
What is HAProxy ?
์ด๋ฆ๋ง ๋๊ณ ๋ณด๋ฉด ํ๋ก์์ ์ญํ ์ ํ๋ ์ํํธ์จ์ด์ธ ๋ฏ ๋ณด์ ๋๋ค. ๋ง์ต๋๋ค. HAProxy์ ๋ณธ๋ ๊ธฐ๋ฅ์ Reverse Proxy ์ญํ ์ ์ํํ๋ ์ํํธ์จ์ด์ด๊ณ , ๋ณธ๋๋ High Availbility Proxy์ ์ฝ์์ ๋๋ค. ๊ทธ๋ฌ๋ ์ด ์ํํธ์จ์ด๋ฅผ ๊ฐ์ง๊ณ TCP / HTTP Load Balancer๋ก ์ฌ์ฉํ ์๋ ์์ต๋๋ค.
nginx๋ ๋ค๋ฅธ ์ ์ ๋ฌด์์ผ๊น์? nginx์์๋ ๋ฌผ๋ก Reverse Proxy, Load Balancer ๊ธฐ๋ฅ์ ์ ๊ณตํ์ง๋ง HAProxy๋ ์ฌ๊ธฐ์ Active Health Check ๊ธฐ๋ฅ์ ๋ฌด๋ฃ๋ก ์ ๊ณตํฉ๋๋ค. (nginx์์๋ Active Health Check ๊ธฐ๋ฅ์ ์์ง๋ง nginx plus์ธ ์ ๋ฃ ๋ฒ์ ์์๋ง ์ ๊ณตํ๋ค๋ ์ ์ด ์์ฌ์ ์ฃ .)
HAProxy์ ๋์ ๋ฐฉ์
HAProxy๋๊ธฐ๋ณธ์ ์ผ๋ก Reverse Proxy ํํ๋ก ๋์ํฉ๋๋ค. ์ฐ๋ฆฌ๊ฐ ๋ณดํต ํ๋ฒํ๊ฒ ๋ถ๋ฅด๋ ํ๋ก์๋ผ๋ ๋จ์ด๋ Forward Proxy๋ผ๊ณ ํ๋๋ฐ, Forward Proxy๋ ์ถ๋ฐ์ง(Source)์์ ๋ชฉ์ ์ง(Destination) ์ฌ์ด์ ์กด์ฌํ๊ณ , ํด๋ผ์ด์ธํธ ์์ ์กด์ฌํ๋ ๋ ์์ ๋๋ค.
Reverse Proxy๋ ๊ทธ์ ๋ฐ๋๋ผ๊ณ ๋ณด์๋ฉด ๋ฉ๋๋ค. ์ค์ ์๋ฒ ์์ฒญ์ ๋ํด ์๋ฒ ์ ๋จ์ ์กด์ฌํ์ฌ ์๋ฒ๋ก ๋ค์ด์ค๋ ์์ฒญ์ ๋์ ๋ฐ์ ์ค์ ์๋ฒ์ ์ ๋ฌํ๊ณ , ์์ฒญํ ๊ณณ์ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋ค์ ์ ๋ฌํ๋ ๊ธฐ์ ์ ๋๋ค. ์ค์ ๋ก nginx๋ฅผ ์ด์ฉํด ๋ก๋ ๋ฐธ๋ฐ์ฑ์ ๊ตฌ์ฑํ ๋๋ ์ด์ ๊ฐ์ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ์์ฃ . HAProxy ๋ํ ์ด์ ๋์ผํฉ๋๋ค.
HAProxy์ ํ๋ฆ์ ์์ ๊ฐ์ด ์ด๋ฃจ์ด์ง๋๋ค. ์ต์ด ์ ๊ทผ์์๋ ์ผ๋ฐ์ ์ธ HTTP ์์ฒญ์ผ๋ก ์ ๋ฌํ๋ค๊ฐ, HAProxy๊ฐ ์๋ก์ด ์ฌ์ฉ์์์ ์ธ์ํ๊ณ , ์ด ์ฌ์ฉ์๊ฐ ์ฐ๊ฒฐํ ์ ์ฉ ์ธ์คํด์ค๋ฅผ ์ฟ ํค ์ด๋ฆ์ผ๋ก ์ ๋ฌํด์ฃผ๊ณ , ์ฌ์์ฒญ์ ํด๋ผ์ด์ธํธ๊ฐ ์ฃผ์ด์ฃผ๋ ์ฟ ํค๋ฅผ ๊ฐ์ง๊ณ ์ฒ์ ์ฐ๊ฒฐํ๋ ์ธ์คํด์ค๋ก ์ฐ๊ฒฐํด์ฃผ๋ ๋ฐฉ์์ ๋๋ค.
์์๋๋ก ๋์ดํ๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ์ต์ด ์ ์์์๋ ์ฟ ํค ์์ด ์ผ๋ฐ ์์ฒญ(Request) ์ ๋ฌ
- ์๋ต(Response)์ ์ฟ ํค์ ์๋ฒ ์ ๋ณด๋ฅผ ์ถ๊ฐํ ํ ๋ฐํ
- ์ฌ์์ฒญ์์๋ HAProxy์์ ์ฟ ํค ์ ๋ณด ํ์ธ ํ, ์ต์ด ์์ฒญ ์๋ฒ๋ก ์ ๋ฌ
- ๋ค์ ์ ๊ทผ์์๋ ์ฟ ํค ์ถ๊ฐ ์์ด ์ ๋ฌ (ํด๋ผ์ด์ํธ๊ฐ ๊ฐ์ง๊ณ ์๋ ์ฟ ํค๋ก ๋์ฒด)
์ด ์ธ์๋ ๋ค์ํ ์ต์ ๋ค์ด ๋ง์ด ์กด์ฌํ์ง๋ง ์ด๋ฒ ํฌ์คํธ์์๋ ๊ธฐ๋ณธ์ ์ธ ๋ก๋ ๋ฐธ๋ฐ์ฑ ๊ธฐ๋ฅ๋ง ๋ค๋ฃจ๊ณ , ๊ทธ ์ธ์ ๊ธฐ๋ฅ๋ค์ ๋ํด์๋ ๋ค๋ฅธ ํฌ์คํธ์์ ๋ค๋ค๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
How to install
HAProxy๋ Linux, OS X์์ ์ฌ์ฉํ ์ ์๊ณ , ์์ฝ๊ฒ๋ Windows์์๋ ์ฌ์ฉํ ์ ์๋ค๋ ๊ฒ์ด ๋จ์ ์ ๋๋ค. RHEL์์ ์ฌ์ฉํ๋ YUM ํจํค์ง ๋งค๋์ , Ubuntu/Debian์์ ์ฌ์ฉํ๋ APT ํจํค์ง ๋งค๋์ ๋ฅผ ์ด์ฉํด HAProxy๋ฅผ ์ค์นํ ์ ์๊ณ , ํจํค์ง ๋งค๋์ ๋ฅผ ์ด์ฉํ ์ ์๋ ํ๊ฒฝ์์๋ Source ์ค์น๋ฅผ ์ด์ฉํ ์ ์์ต๋๋ค.
์ฌ๊ธฐ์์๋ APT ํจํค์ง ๋งค๋์ ๋ฅผ ์ด์ฉํ์ฌ HAProxy๋ฅผ ์ค์นํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
$ sudo apt install haproxy
์ ๋ช ๋ น์ด๋ก ์ค์น๊ฐ ๋๋๋ฉด ์๋์ ๊ฐ์ด Active ์ํ๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
APT ํจํค์ง ๋งค๋์ ๋ก ์ค์นํ์ ๋, ์ค์ ๊ฐ์ /etc/haproxy/haproxy.cfg ํ์ผ์ธ ๊ฒ์ ์ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ์ฐ๋ฆฌ๋ ์ธ๋ถ ์ค์ ์ ์ํด ์ cfg ํ์ผ์ ๊ฑด๋๋ ค์ผ ํฉ๋๋ค.
Configuration
HAProxy์ Configuration์ ๋ณต์กํ๊ณ , ์ ๊ตํฉ๋๋ค. ๊ทธ๋งํผ ์ค์ ํ ์ ์๋ ๋ถ๋ถ์ด๋ ์ง์ํ๋ ๋ถ๋ถ์ด ๋ง๊ธฐ ๋๋ฌธ์ ๊ผญ ํ์ํ๋ฉด์ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
์ด ํฌ์คํธ์์๋ ๊ฐ๋จํ ๋ก๋ ๋ฐธ๋ฐ์ฑ์ ๋ํด์๋ง ๋ค๋ฃฐ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๋ชจ๋ ๊ฒ์ ๋ค๋ฃจ์ง ์๊ณ , ์ผ๋ถ๋ง ๋ค๋ฃจ๋๋ก ํ๊ฒ ์ต๋๋ค.
์ฒ์ ์ค์นํ ๋ค์๋ ๊ธฐ๋ณธ์ ์ผ๋ก defaults ๋ถ๋ถ๊ณผ global ๋ถ๋ถ์ผ๋ก ์ค์ ์ด ๋์ด ์์ต๋๋ค. global ๋ถ๋ถ์ HAProxy์ ๋ํ ๊ธฐ๋ณธ์ ์ธ ์ ํ๋ฆฌ์ผ์ด์ ์ค์ ์ ์ํํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค๋ฉด, SSL ์ค์ , ์ปค๋ฅ์ ์ ๋ฑ์ ์ง์ ํ ์ ์์ฃ .
defaults์์๋ HAProxy์ ์ ํ๋ฆฌ์ผ์ด์ ์ค์ ์ด ์๋ ๋ถ๊ฐ์ ์ธ ์ค์ ์ ํ๋ ๋ฐ ์ฌ์ฉํ๋ ๊ณณ์ ๋๋ค. ๊ทธ๋ฃน๋ณ๋ก ๋๋ ์ ์ค์ ํ ์ ์์ง๋ง defaults์์๋ ๋ชจ๋ ๊ทธ๋ฃน์ด ์ ์ฉ๋๋ ๊ตฌ๊ฐ์ผ๋ก ๋ก๊ทธ์ ํฌ๋งท์ด๋, ์ปค๋ฅ์ ์ ์ง ์ต์ ๋ฑ์ ์ค์ ํ ์ ์์ต๋๋ค.
์ง๋ ํฌ์คํธ์ ์ด์ด์ ์ฐ๋ฆฌ๋ Spring boot Application์ด ๋ง๋ค์ด์ง Docker ์ปจํ ์ด๋๋ฅผ ๋ก๋ ๋ฐธ๋ฐ์ฑ ์์ผ๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
๊ฐ์ ์๋น์ค๋ฅผ ํ๋ ์ปจํ ์ด๋๋ฅผ 3๊ฐ ๋ง๋ค์๊ณ , ์ด์ ๋ํ ๋ก๋ ๋ฐธ๋ฐ์ฑ์ ์ํํ๋ฉด ๋ฉ๋๋ค. ๊ทธ๋ฐ๋ฐ, HAProxy์์๋ Health check ๊ธฐ๋ฅ๋ ์ง์ํ๊ธฐ ๋๋ฌธ์, ์ฐ๋ฆฌ๋ ์ด ๊ธฐ๋ฅ์ ํฌํจํ์ฌ ํ ๋ฒ ์ค์ ์ ์งํํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
HAProxy์์๋ ๋ก๋ ๋ฐธ๋ฐ์ฑํ ์๋น์ค ์ธ์คํด์ค๋ค์ ์ํ๋ฅผ ์น์ผ๋ก ๋ณผ ์ ์๋ stats ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค. listen stats๋ฅผ ์ค์ ํ๋ฉด ์ํ๋ ํฌํธ ์ฃผ์์ ์ ์ํ์ฌ ์๋น์ค์ ์ํ๋ฅผ ๋ชจ๋ํฐ๋ง ํ ์ ์์ต๋๋ค.
๋ง์ง๋ง์ผ๋ก ์ฐ๋ฆฌ๊ฐ Docker์ ์ฌ๋ฆฐ ์ธ์คํด์ค๋ฅผ ๋ก๋ ๋ฐธ๋ฐ์ฑ ํ ์ ์๋๋ก 80๋ฒ ํฌํธ ์ฃผ์๋ฅผ ๋ฐ์ธ๋ฉํ๊ณ , ๋ผ์ด๋ ๋ก๋น ์๊ณ ๋ฆฌ์ฆ์ ์ด์ฉํ์ฌ ๋ก๋ ๋ฐธ๋ฐ์ฑ ํด์ค๋๋ค. (๊ฐ ํฌํธ ์ฃผ์๋ก ์ ํํ ํต์ ํ๋์ง ํ์ธํ๊ธฐ ์ํด ์ฌ์ฉํฉ๋๋ค.) ๊ทธ๋ฆฌ๊ณ option์ httpchk๋ฅผ ์ด์ฉํ๋ฉด ๊ฐ ์ธ์คํด์ค์ ๋ํด Health Check๋ฅผ ์งํํ๊ฒ ๋ฉ๋๋ค. ๋ฐ๋์ ์ ํจํ URI๋ฅผ ์ ๋ ฅํด์ค์ผ ํ๋ฉฐ, ์ ํจํ์ง ์์ URI๋ฅผ ์ ๋ ฅํ ๊ฒฝ์ฐ, ์ธ์คํด์ค๊ฐ ์ ์ ๋์ํ๊ณ ์์์๋ ๋ถ๊ตฌํ๊ณ HAProxy์์ ์ฃฝ์ ์ธ์คํด์ค๋ก ํ์ธํ๊ฒ ๋๋ฉฐ ์ ์์ ์ฅ์ ๊ฐ ๋ฐ์ํ๊ฒ ๋ฉ๋๋ค.
$ haproxy -f /etc/haproxy/haproxy.cfg -c
์ค์ ์ ์๋ฃํ ๋ค์๋ ์ค์ ๊ฒ์ฌ ํ๋ก์ธ์ค๋ฅผ ํตํด ๋ด๊ฐ ๋ง๋ ์ค์ ํ์ผ์ ๋ฌธ๋ฒ ์ค๋ฅ ๋ฑ์ด ์๋์ง๋ฅผ ๊ฒ์ฌํฉ๋๋ค. nginx์์๋ nginx -t ๋ช ๋ น์ด๋ฅผ ์ด์ฉํ๋๋ฐ, HAProxy์์๋ ๋์ผํ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋๊ตฐ์.
# systemctl reload haproxy.service
๋ฌธ๋ฒ ๊ฒ์ฌ ํ ๋ฌธ์ ๊ฐ ์๋ค๋ฉด, haproxy ์๋น์ค ๋ฐ๋ชฌ์ reload ์์ผ์ค๋๋ค. ๊ทธ๋ฌ๋ฉด HAProxy Master ํ๋ก์ธ์ค๊ฐ ์ฌ์์๋ฉ๋๋ค.
๊ทธ๋ฐ ๋ค์ http://localhost:9000/haproxy_stats ํ์ด์ง๋ก ์ ์ํ๋ฉด, ์์ ๊ฐ์ด ์ฐ๋ฆฌ๊ฐ ์ค์ ํ ์ปจํ ์ด๋๋ค์ ์ํ๊ฐ UP ์ํ์ธ์ง, DOWN ์ํ์ธ์ง๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
Using Docker Swarm
์ฐ๋ฆฌ๋ ์ปจํ ์ด๋๋ฅผ ๋ง๋ค๊ณ , ๋ก๋ ๋ฐธ๋ฐ์ฑํ๋ ๊ณผ์ ์ ๋ชจ๋ ์๋์ผ๋ก ์งํํ์์ต๋๋ค. ์ง๊ธ๊น์ง๋ 3๊ฐ์ ์ปจํ ์ด๋๋ง์ ์์ฑํ์ฌ ์งํํ์๊ณ , ๊ทธ๋ฌ๊ธฐ ๋๋ฌธ์ ๊ทธ ๊ณผ์ ์ด ๊ทธ๋ค์ง ๋ง์ ์์ด ๊ฐ์ง ์์๊ณ , ์ ์งํํ ์ ์์์ต๋๋ค.
ํ์ง๋ง ์ฐ๋ฆฌ๋ ๊ฐ์ ์๋น์ค ์ธ์คํด์ค๋ฅผ ์ปจํ ์ด๋๋ก ์์ญ๊ฐ๋ฅผ ์์ฑํด์ผ ํ๋ค๋ฉด, ์ด๋ป๊ฒ ํ๋ฉด ์ข์๊น์? ๊ฐ์ฅ ๊ฐ๋จํ ๋ฐฉ๋ฒ์ docker ๋ช ๋ น์ด๋ฅผ ์ ์คํฌ๋ฆฝํ ํ์ฌ ๋ฐ๋ณต ์์ ์ ํ๋ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค. ๊ทธ๋ฐ๋ฐ ๋ง์ฝ HAProxy๋ ๋ฆฌ์ผ ์ธ์คํด์ค์์ ๋๋ฆฌ์ง ์๊ณ ์ปจํ ์ด๋๋ฅผ ํด์ผ ํ๋ค๋ฉด, ๊ทธ ์ค์ ๊น์ง ๋ชจ๋ ํด์ค์ผ ํ ํ ๋ฐ, ์ด๋ ์ ์คํฌ๋ฆฝํ ๋ง์ผ๋ก๋ ์ฝ์ง ์๊ฒ ์ฃ ?
์ด๋ด ๋๋ Docker compose๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ ์ปจํ ์ด๋์ ๋ํ ์ค์ ์ ์ง์ ํ๊ณ , ์ํ๋ ์ปจํ ์ด๋ ๊ฐฏ์๋ฅผ ์ค์ ํ๋ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค. ์ฐ๋ฆฌ๊ฐ ์์์ ๋ค๋ค๋ ๊ฒ๋ณด๋ค ๋ ์ฝ๊ฒ HAProxy๋ฅผ ์ด์ฉํด ๋ก๋ ๋ฐธ๋ฐ์ฑ์ ์ฝ๊ฒ ํ ์ ์์ผ๋ ํ ๋ฒ ์ฐธ๊ณ ํด๋ณด์๋ ๊ฒ๋ ๋์์ง ์์ ๊ฒ ๊ฐ๋ค์. (ํ์ง๋ง ์ด๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ์์ฒญ๋ ๋ฌ๋ ์ปค๋ธ๊ฐ ๋ค๋ฐ๋ฆ ๋๋ค.)
docker-compose.yml ํ์ผ์ ์์ฑํ ํ, ์์ ๊ฐ์ด ์์ฑํฉ๋๋ค. ์ค์ ํ์ผ๋ง ๋ด์๋ ๋ฌด์จ ๋ด์ฉ์ธ์ง ์ ๋ชจ๋ฅผ ๊ฒ์ ๋๋ค. ํ๋์ฉ ์ดํด๋ณด๋๋ก ํ์ฃ .
services ๋ฐ์ผ๋ก๋ ์ฐ๋ฆฌ๊ฐ ์ด์ํ ์๋น์ค์ ๋ํ ์ปจํ ์ด๋๋ฅผ ์ค์ ํ๊ฒ ๋ฉ๋๋ค. ์ด๋ฆ์ ์์ ๋กญ๊ฒ ์ค์ ํ ์ ์๊ณ , ์ฐ๋ฆฌ๋ dockerexample์ด๋ผ๋ ์๋น์ค์ proxy ์ด๋ ๊ฒ ๋ ๊ฐ์ง๋ฅผ ์์ฑํ ๊ฒ์ ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด, ํ ์๋น์ค ์๋๋ก ๋คํธ์ํฌ ์์ญ์ด ์์ฑ๋๋ฉฐ, ์ด ์๋น์ค์ ๋ํ ๊ณต๊ฐ์ด ํ๋ ๋ง๋ค์ด์ง๋ ์๋ฆฌ์ ๋น์ทํฉ๋๋ค.
๋ฐ๋ก ์ด๋ฐ ํํ๊ฐ ๋๋ ๊ฒ์ด์ฃ . ์ฌ๊ธฐ์์ Proxy๊ฐ ์ ๊ตฌ๊ฐ ๋๊ณ , ๊ทธ ์ ๊ตฌ์ ์ํด ์ปจํ ์ด๋ ์๋น์ค๋ค์ด ๋ถํ ๋ถ์ฐ ํํ๋ก ์๋น์คํ๊ฒ ๋๋ ๊ฒ์ ๋๋ค.
์ด๋ฌํ ๋ก๋ ๋ฐธ๋ฐ์ฑ์ Ingress Load Balancing์ด๋ผ๊ณ ํฉ๋๋ค. ์ฆ, ์ธ๋ถ์์ ๋ด๋ถ ๋คํธ์ํฌ๋ก ์ ์ํ ๋์ ๋ฐฉ์นจ์ ๋งํ๋ ๊ฒ์ด์ฃ
# docker swarm init
# docker stack deploy --compose-file=docker-compose.yml tutorial
Docker์์ ๋คํธ์ํฌ, ์๋น์ค ๋ฑ์ ๋ชจ๋ ์ปจํ ์ด๋๋ฅผ Stack์ด๋ผ๊ณ ๋ถ๋ฅด๋๋ฐ, ์คํ์ ์์ฑํ ๋ ์ฌ์ฉํ๋ ๋ช ๋ น์ด๊ฐ ๋ฐ๋ก docker stack ๋ช ๋ น์ด์ ๋๋ค. ๋ณดํต์ ๋ช ๋ น์ด ์์ ๋ชจ๋ ์ปจํ ์ด๋๋ฅผ ๋ค ๋ฃ์ด์ผ ํ์ง๋ง, docker-compose.yml ํ์ผ ๋ฑ์ผ๋ก ๋์ฒดํ ์ ์์ต๋๋ค. ๋ง์ง๋ง์ผ๋ก ์ด tutorial์ ์ด ๊ทธ๋ฃน์ ์ด๋ฆ์ ๋๋ค.
์ ๋ Replica์ ๊ฐฏ์๋ฅผ 5๊ฐ๋ก ์ค์ ํ์์ต๋๋ค. ์์ ์ ์ธ์คํด์ค ์ฑ๋ฅ์ ๋ฐ๋ผ ๊ฐฏ์๋ฅผ ์ค์ ํด์ผํ๋ฏ๋ก ๊ฐ๋ฅํ ๋ฆฌ์์ค๊ฐ ๋ง๋ค๋ฉด 20๊ฐ๋ก ์ค์ ํด๋ ๋๊ฒ ์ง๋ง ๊ทธ๋ ์ง ์๋ค๋ฉด, Docker์์ Out of Memory ์ค๋ฅ๊ฐ ๋ฐ์ํ ์ ์์ผ๋ฏ๋ก ์ด์ ๋ง์ถฐ ์ง์ ํด์ฃผ์ ์ผ ํฉ๋๋ค.
docker ps ๋ช ๋ น์ด๋ฅผ ํตํด 5๊ฐ์ ์๋น์ค ์ธ์คํด์ค์ ํ๋ก์ ์ธ์คํด์ค 1๊ฐ๊ฐ ์์ฑ๋์์์ ์ ์ ์์ต๋๋ค.
๋ง์น๋ฉฐ...
HAProxy๋ฅผ ์ด์ฉํ ๋ก๋ ๋ฐธ๋ฐ์ฑ์ Health Check๋ฅผ ํตํด์ ์ธ์คํด์ค์ ์ํ๋ฅผ ํ์ธํ๋ ์ถ๊ฐ ๊ธฐ๋ฅ์ ํตํด ์๋น์ค์ ๋ชจ๋ํฐ๋ง์ ์ง์์ ์ผ๋ก ์งํํ ์ ์๋ค๋ ์ฅ์ ์ ์ป์์ต๋๋ค.
๋ํ Docker Swarm์ ์ถ๊ฐ๋ก ์ด์ฉํ์ฌ DockerCloud์์ ์ ๊ณตํ๋ HAProxy ์ปจํ ์ด๋๋ฅผ ์ด์ฉํ๋ค๋ ์ ์ ๋ณต์กํ HAProxy ์ค์ ์์ด๋ ์ฝ๊ฒ ๋ก๋ ๋ฐธ๋ฐ์ฑ ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์๋ค๋ ์ฅ์ ์ด ์์์ต๋๋ค.
๊ทธ๋ฌ๋ ์ฌ์ ํ ๊น๋ค๋ก์ด ์ ์ HAProxy์ ๋ณต์กํ ์ค์ ์ ํผํ์ฌ Docker Swarm์ ํตํด ์ปจํ ์ด๋ ๋ฟ ์๋๋ผ ๋คํธ์ํฌ ๊ทธ๋ฃน์ ์์ฑํด ์์ฒด์ ์ธ ์๋น์ค ๊ทธ๋ฃน์ ์์ฑํจ์ผ๋ก์จ ๋ฆฌ์ผ ์ธ์คํด์ค์์ ๋์ํ๋ ์ ๋ง์ ์๋น์ค๋ฅผ ๋ถ๋ฆฌ/๊ด๋ฆฌํ๋ ํธ๋ฆฌํจ์ ์ฃผ์์ง๋ง ์ด์ ๋ฐ๋ฅธ ๋ณต์กํ ์ค์ ์ ํผํ ์ ์์์ต๋๋ค.
๊ทธ๋๋ ์ค์ผ์คํธ๋ ์ด์ ํด์ ์ฌ์ฉํ ๋ฐฉ๋ฒ ํตํด ์๋์ผ๋ก Docker ๋คํธ์ํฌ ์ค์ ๋ฑ์ ์ผ์ผ์ด ํ์ง ์์๋ YAML ํ์ผ์ ํตํด์ ํ ๋ฒ์ ์ผ๊ด ์ฒ๋ฆฌํ ์ ์์๋ ๋ถ๋ถ์ ๊ต์ฅํ ํธํ๋ ๋ถ๋ถ์ธ ๊ฒ ๊ฐ๋ค์ ^^;
'Infrastructure > Docker' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Docker] nginx web server๋ฅผ ์ด์ฉํ ๋ก๋ ๋ฐธ๋ฐ์ฑ (0) | 2020.06.10 |
---|---|
Docker ์ฌ์ฉ์ ์ ์ ๋คํธ์ํฌ ๊ตฌ์ฑ (0) | 2016.07.24 |
Docker ๋คํธ์ํฌ ๊ตฌ์ฑ๊ณผ ์ค์ (0) | 2016.07.20 |
Docker, ๊ทธ๊ฒ์ ๋ฌด์์ด๊ณ , ์ค์น๋ ์ด๋ป๊ฒํ ๊น? (0) | 2016.07.06 |