Kong: API Gateway
Kong์ API Gateway์ ์ฃผ์ ๊ตฌํ์ฒด ์ค ํ๋๋ค.
ํน์ดํ๊ฒ๋ Lua ๊ธฐ๋ฐ์ผ๋ก ๋ง๋ค์ด์ ธ์๋ค.
์์
์ฉ ์คํ์์ค๋ผ์ GUI๋ ํธ์์ฑ ์์ค์ ๊ฝค ์ข์ง๋ง ๋ผ์ด์ผ์ค์ ๋ฌธ์ ๊ฐ ์ข ์๋ค.
์ฝ์ด ๋ชจ๋์ ์คํ์์ค์ธ๋ฐ, ์ค์ ์ด์์ ํ์ํ ๋ชจ๋ํฐ๋ง ๋ฑ์ ๋ณด์กฐ๋๊ตฌ๋ ์ํฐํ๋ผ์ด์ฆ ๋ฒ์ ์ผ๋ก๋ง ์ฌ์ฉํ ์ ์๋ค. ์ฌ์ค์ Cloud-Only๋ผ๊ณ ๋ด๋ ๋๋ค.
๊ทธ๋์ ๋ฌด๋ฃ๋ก ์์ ๋กญ๊ฒ ์ฌ์ฉํ๊ธธ ์ํ๋ค๋ฉด ํฐ ๊ฒฐ๊ฒฉ์ฌํญ์ด ์๋ค. ์์ฆ์ ๋์ฒด์ฌ๋ก envoy๊ฐ ๋ง์ด ์ฃผ๋ชฉ๋ฐ๋๋ผ.
๋น์ฉ
์ธ์ง ์๋ค. ๋น์ฉ ๋๋ฌธ์ istio๋ envoy๋ก ์ง๋จ ์ด์ฃผํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ด ๋ณด์ธ๋ค.
ํฌ๊ฒ ํ๋ก๋น์ ๋ ๋ชจ๋, ์๋ฒ๋ฆฌ์ค ๋ชจ๋, Self-Host๊ฐ ์๋ค.
ํ๋ก๋น์ ๋ ๋ชจ๋๋ ์๋นํ ๋น์ธ๋ค.
Control Plane ํ๋๋น ์๋ณ 200๋ฌ๋ฌ๋ฅผ ๋ฏ๋๋ค.
๊ทธ๋ฆฌ๊ณ ํธ๋ํฝ์ ๋ํด์ ํฐ ์๊ธ์ ๋ถ๊ณผํ๋๋ฐ, GB๋น 0.15๋ฌ๋ฌ๋ค.
ํ๋ฌ์ 1TB๋ง ๋ฐ์ํด๋ 150๋ฌ๋ฌ๊ฐ ๋ถ๊ณผ๋๋ ๊ฒ์ด๋ค.
AWS์์ ๋น์ผ ํธ์ ์ํ๋ NAT ํต์ ๋น์ฉ์ด GB๋น 0.059๋ฌ๋ฌ, IGW ์ธ๋ถ์ ์ก์ด GB๋น 0.12๋ฌ๋ฌ ์ ๋์ธ๊ฑธ ์๊ฐํ๋ฉด ํ์คํ ๋น์ธ๋ค.
์๋ฒ๋ฆฌ์ค ๋ชจ๋๋ Control Plane ํ๋๋น ์๋ณ 25๋ฌ๋ฌ๋ฅผ ๋ฏ๋๋ค.
Self-Host ๋ชจ๋๋ ์ ํด์ง ๋น์ฉ์ด ์๋ค. ์ ํ์ฌ๋ ์์ํด์ ์ ํด์ผ ํ๋จ๋ค.
Cloud๋ก ์์ํด๋ณด๊ธฐ
Konnect๋ผ๋ Cloud๋ฅผ ํตํด์ ์๋น์ค๋ฅผ ์ ๊ณตํ๋๋ฐ, ์๊ธฐํ ์ด์ ๋ค ๋๋ฌธ์ ๊ฑฐ์ ๋ฐ๊ฐ์ ๋ก Cloud๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค. ์ ๋นํ ๊ฐ์ ํ๋ฉด ๋ฐ๋ก ๋ค์๊ณผ ๊ฐ์ ๋์๋ณด๋์ ์ง์ ํ๊ฒ ๋๋ค.
๊ฒ์ดํธ์จ์ด๊ฐ ํ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ง๋ค์ด์ ธ์๋๋ฐ

์๋ํฌ์ธํธ๋ ์ด๋ ค์์ผ๋, ๋ผ์ฐํ
๋ ์๋ฒ๊ฐ ์๊ธฐ ๋๋ฌธ์ ๋์ํ์ง๋ ์๋๋ค.
์ ๊ฑธ ๋์ํ๊ฒ ๋ง๋ค๋ ค๋ฉด Route๋ฅผ ์ถ๊ฐํด์ผ ํ๋ค.
UI์์ ๋ฐ๋ก ์ถ๊ฐํด์ ์ฌ์ฉํ ์ ์๋ค.
์ค์ ๋ก ๋ผ์ฐํ
๋ HTTP ์๋ฒ์, ์ต์ข
์๋ํฌ์ธํธ์ ๋ผ์ฐํ
๊ฒฝ๋ก๋ฅผ ์ง์ ํ ์ ์๋ค.
์ฐธ๊ณ ๋ก Route Path๋ ๊ทธ๋ฅ ๋๊ธฐ๊ธฐ๋ง ํ๋๊ฒ ์๋๋ผ Path Rewriting๊น์ง ์๋์ผ๋ก ํด์ค๋ค.
๋ค์๊ณผ ๊ฐ์ ๊ฐ๋จํ API ์๋ฒ๋ฅผ ํ๋ ๋ถ์ฌ๋ณด๊ฒ ๋ค.


์ ์ฒด API ์๋ํฌ์ธํธ๋ฅผ ๊ทธ๋๋ก ๋ฃ๊ณ , /a ํ์ ๊ฒฝ๋ก๋ก ๋งคํ๋๋๋ก ํ๋ค.
์ ๋ ๊ฒ ํด์ ๋ฐฐํฌํ๊ณ ๋๋ฉด
/a ๊ฒฝ๋ก๋ก ์ง์ ํ์ ๋ / ๊ฒฝ๋ก๋ก ๋ผ์ฐํ ์ ํด์ค ๊ฒ์ด๊ณ

/a/a๋ก ์ง์ ํ์ ๋๋ /a ๊ฒฝ๋ก๋ก ๋ผ์ฐํ ์ ํด์ค ๊ฒ์ด๋ค.

๊ทธ๋ฆฌ๊ณ ๋์๋ณด๋

์ธ์ฆํค ๊ตฌ์ฑ
API Gateway๋ฅผ ์ฐ๋ ๋ชฉ์ ์ค ํ๋๋ ์ฌ๋ฌ๊ฐ์ ๋ง์ดํฌ๋ก์๋น์ค์ ๋ํด์ ๋จ์ผ ์ธ์ฆ ๊ตฌ๊ฐ์ ๊ด๋ฆฌํ๋ ๊ฒ์ด๋ค.
Kong๋ ์ด๋ฅผ ์ํ ๊ธฐ๋ฅ์ ์์ฝ๊ฒ ์ ๊ณตํ๋ค.
์์ ๊ฐ์ด ํค๋ฅผ ์ถ๊ฐํ๋ฉด, ์ฆ์ ํค ๊ธฐ๋ฐ์ ์ธ์ฆ ๊ฐ๋๊ฐ ๊ฑธ๋ฆฐ๋ค.
์ฐธ๊ณ ๋ก Username์ ๋
ผ๋ฆฌ์ ์ธ ์ด๋ฆ์ผ ๋ฟ์ด๊ณ , Key Name๊ณผ Key๊ฐ ํ ์์ HTTP ํค๋๋ก ๋ค์ด๊ฐ๋ ๊ฒ์ด๋ค.
๊ทธ๋ฌ๋ฉด ์ด์ ๋ ๋จ์ ์ ๊ทผ์ด ๋งํ ๊ฒ์ด๊ณ
์ด๋ ๊ฒ ํค๋๋ก ํค๋ฅผ ๋๊ฒจ์ผ๋ง ํต๊ณผ๊ฐ ๋๋ค.
ํ๋ฌ๊ทธ์ธ
Kong์ ํ๋ฌ๊ทธ์ธ์ ํตํด์ ๋ง์ ํต์ฌ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค.
CORS ์ฒ๋ฆฌ, Rate Limit, JWT ์ธ์ฆ, ์ธ์
๊ด๋ฆฌ ๋ฑ.

ํ๋ฌ๊ทธ์ธ์ ํ์ฑํํ๋ฉด Rate Limit๋ ๊ฐ๋จํ๊ฒ ์๋์ํฌ ์ ์๋ค.
์ด๊ฑด ํ๋ฃจ 100๊ฑด, ์๊ฐ๋น 5๊ฑด์ ์ด๊ณผํ ๊ฒฝ์ฐ Limit์ ๊ฑฐ๋ ์ต์
์ด๋ค.
์ ๋ ๊ฒ ํด๋๊ณ ์ฐ๋ฅด๋ค๋ณด๋ฉด
์ค์ ๋ก ์ฐจ๋จ์ ๋นํ๋ค.
https://developer.konghq.com/gateway/
https://github.com/Kong/kong