์ผ๋ฐ์ ์ผ๋ก ์ ํ๋ฆฌ์ผ์ด์
์๋ฒ์ ๋ํ HTTP ํ๋ก์๋ ์์ง์์ค(Nginx)๋ฅผ ๋ง์ด ์ฌ์ฉํ๊ณ ์์ง๋ง L4 ๋ ๋ฒจ์ TCP ํ๋ก์
๊ฐ ํ์ํ ๊ฒฝ์ฐ stream ๋ชจ๋์ ๋ณ๋๋ก ์ค์นํด์ผํ๋ ๊ณผ์ ์ด ํ์ํ๋ฏ๋ก HAProxy
๊ฐ ๋ ์ข์ ์ ํ์ผ ์ ์๋ค. ์ฌ๋ด ๊ฐ๋ฐ ํ๊ฒฝ์์ ์ฐ๊ฒฐํ ์ ์๋ ๋ฐฐ์ค์ฒ ํธ์คํธ์ HAProxy๋ฅผ ๊ตฌ์ฑํ๊ณ ํ๋ผ์ด๋น ๋คํธ์ํฌ ํ๊ฒฝ์ผ๋ก ๊ตฌ์ฑ๋์ด์๋ ํ
์คํธ ํ๊ฒฝ์ TCP ํต์ ์ด ํ์ํ ์ธ์คํด์ค์ ์ฐ๊ฒฐํ ์ ์๋๋ก ํฌํธ ํฌ์๋ฉ
์ ๊ตฌ์ฑํด๋ณด๋๋ก ํ์.
TCP ํ๋ก์ โ
TCP ํ๋ก์๋ TCP ์ฐ๊ฒฐ์ ๋ํ ๋ฆฌ๋ฒ์ค ํ๋ก์์ ํด๋น๋๋ค. ์ผ๋ฐ์ ์ผ๋ก TCP ์ฐ๊ฒฐ์ ์ํํด์ผํ๋ ์ธ์คํด์ค์๋ Redis ๋๋ PostgreSQL์ด ์๋๋ฐ ํ์ฌ ์กฐ์ง์์ ํ์ฉํ๊ณ ์๋ ์๊ณ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ธ KDB+์ ๋ํด ํ๋ก์๋ฅผ ๊ตฌ์ฑํด๋ณด๋ ค๊ณ ํ๋ค. ๋ค์์ KDB์์ ์ฌ์ฉํด์ผํ๋ ํฌํธ ๋ฒ์๋ฅผ ์์ ํ๋๋ก ์ค์ ํ ์์์ด๋ค.
listen kdb_proxy_for_dev
mode tcp
bind *:5010-5013
server kdb_dev 192.168.149.88
HAProxy ๊ตฌ์ฑ ํ ์คํธ โ
ํ์ฌ ์ค์ ํ์ผ์ ๋ฌธ๋ฒ์ ์ธ ๋ฌธ์ ๊ฐ ์๋์ง check mode(-c)
์ต์
์ ์ฌ์ฉํด์ ํ์ฌ ์ค์ ์ ๋ํด ๊ฒ์ฆ์ ์ํํด๋ณผ ์ ์๋ค.
[ec2-user@ip-192-169-14-62 ~]$ haproxy -c -f /etc/haproxy/haproxy.cfg
Configuration file is valid
TCP ํ๋ก์ ํ ์คํธ โ
NetCat(nc) ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํด์ HAProxy์์ ์์ ํ๊ณ ์๋ ํฌํธ๋ฅผ ํตํด ํ ์คํธ ํ๊ฒฝ์ ์คํ๋ ์ธ์คํด์ค์ ์ฐ๊ฒฐํ ์ ์๋์ง ํ ์คํธ๋ฅผ ํด๋ณด์.
[ec2-user@ip-192-169-14-62 ~]$ nc -znv 127.0.0.1 5013
Ncat: Version 7.50 ( https://nmap.org/ncat )
Ncat: Connected to 127.0.0.1:5013.
Ncat: 0 bytes sent, 0 bytes received in 0.01 seconds.
๋ฐฐ์ค์ฒ ํธ์คํธ์ TCP ํ๋ก์๋ฅผ ๊ตฌ์ฑํ๊ธฐ ์ ๊น์ง๋ ๋ฐฐ์ค์ฒ ํธ์คํธ์ ๋ํ SSH ํฐ๋๋ง์ ํ์ํ ๋๋ง๋ค ์ํํด์ผ ํ์ต๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก SSH ํฐ๋๋ง์ ๊ตฌ์ฑํ๋๊ฒ ์ผ๋ฐ์ ์ด์ง๋ง ๋ณด์ ์์ค์ ๊ฒํ ํ๊ณ TCP ํ๋ก์๋ฅผ ๊ตฌ์ฑํด๋ณด๋๋ก ํ์ธ์.