Kong: API Gateway

[์›๋ณธ ๋งํฌ]

Kong์€ API Gateway์˜ ์ฃผ์š” ๊ตฌํ˜„์ฒด ์ค‘ ํ•˜๋‚˜๋‹ค.
ํŠน์ดํ•˜๊ฒŒ๋„ Lua ๊ธฐ๋ฐ˜์œผ๋กœ ๋งŒ๋“ค์–ด์ ธ์žˆ๋‹ค.

์ƒ์—…์šฉ ์˜คํ”ˆ์†Œ์Šค๋ผ์„œ GUI๋‚˜ ํŽธ์˜์„ฑ ์ˆ˜์ค€์€ ๊ฝค ์ข‹์ง€๋งŒ ๋ผ์ด์„ผ์Šค์— ๋ฌธ์ œ๊ฐ€ ์ข€ ์žˆ๋‹ค.
์ฝ”์–ด ๋ชจ๋“ˆ์€ ์˜คํ”ˆ์†Œ์Šค์ธ๋ฐ, ์‹ค์ œ ์šด์˜์— ํ•„์š”ํ•œ ๋ชจ๋‹ˆํ„ฐ๋ง ๋“ฑ์˜ ๋ณด์กฐ๋„๊ตฌ๋Š” ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ๋ฒ„์ „์œผ๋กœ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์‚ฌ์‹ค์ƒ Cloud-Only๋ผ๊ณ  ๋ด๋„ ๋œ๋‹ค.

๊ทธ๋ž˜์„œ ๋ฌด๋ฃŒ๋กœ ์ž์œ ๋กญ๊ฒŒ ์‚ฌ์šฉํ•˜๊ธธ ์›ํ•œ๋‹ค๋ฉด ํฐ ๊ฒฐ๊ฒฉ์‚ฌํ•ญ์ด ์žˆ๋‹ค. ์š”์ฆ˜์€ ๋Œ€์ฒด์žฌ๋กœ envoy๊ฐ€ ๋งŽ์ด ์ฃผ๋ชฉ๋ฐ›๋”๋ผ.




๋น„์šฉ

https://konghq.com/pricing

์‹ธ์ง„ ์•Š๋‹ค. ๋น„์šฉ ๋•Œ๋ฌธ์— 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