Rate Limiter

๊ฐœ์š”

๋„คํŠธ์›Œํฌ ์‹œ์„ธํ‹ˆ์—์„œ ์ฒ˜๋ฆฌ์œจ ์ œํ•œ ์žฅ์น˜(rate limiter)๋Š” ํด๋ผ์ด์–ธํŠธ ๋˜๋Š” ์„œ๋น„์Šค๊ฐ€ ๋ณด๋‚ด๋Š” ํŠธ๋ž˜ํ”ฝ์˜ ์ฒ˜๋ฆฌ์œจ์„ ์ œ์–ดํ•˜๊ธฐ ์œ„ํ•œ ์žฅ์น˜์ด๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, ํŠน์ • API์˜ ์š”์ฒญ ํšŸ์ˆ˜๊ฐ€ ์ œํ•œ ์žฅ์น˜์— ์ •์˜๋œ ์ž„๊ณ„์น˜(threshold)๋ฅผ ๋„˜์–ด์„œ๋ฉด ์ถ”๊ฐ€๋กœ ๋“ค์–ด์˜จ ๋ชจ๋“  ์š”์ฒญ์€ ์ฒ˜๋ฆฌ๊ฐ€ ์ค‘๋‹จ(block) ๋œ๋‹ค.

์žฅ์ :

  • Dos ๊ณต๊ฒฉ์— ์˜ํ•œ ์ž์› ๊ณ ๊ฐˆ์„ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ๋‹ค.

  • ๋น„์šฉ ์ ˆ๊ฐ ๊ฐ€๋Šฅ

    • ์š”์ฒญ์— ๋Œ€ํ•œ ์ฒ˜๋ฆฌ๋ฅผ ์ œํ•œํ•˜๋ฉด ์„œ๋ฒ„๋ฅผ ๋งŽ์ด ํ™•์žฅํ•˜์ง€ ์•Š์•„๋„ ๋œ๋‹ค.

    • 3์ž(third-party) ์„œ๋น„์Šค API ํ˜ธ์ถœ์— ๋Œ€ํ•œ ๋น„์šฉ์ด ์ค„์–ด๋“ค ์ˆ˜ ์žˆ๋‹ค.

  • ์„œ๋ฒ„ ๊ณผ๋ถ€ํ•˜๋ฅผ ๋ง‰๋Š”๋‹ค.

    • ๋ด‡์—์„œ ์˜ค๋Š” ํŠธ๋ž˜ํ”ฝ์ด๋‚˜, ์•…์˜์ ์ธ ํŒจํ„ด์œผ๋กœ ์œ ๋ฐœ๋œ ํŠธ๋ž˜ํ”ฝ์„ ๊ฑธ๋Ÿฌ๋‚ผ ์ˆ˜ ์žˆ๋‹ค.

์ฒ˜๋ฆฌ์œจ ์ œํ•œ ์žฅ์น˜๋Š” ์–ด๋””์— ์„ค์ •ํ•  ๊ฒƒ์ธ๊ฐ€?

  1. ํด๋ผ์ด์–ธํŠธ

  • ์ผ๋ฐ˜์ ์œผ๋กœ ์•ˆ์ •์ ์ด์ง€ ๋ชปํ•˜๋‹ค.

  • ํด๋ผ์ด์–ธํŠธ ์š”์ฒญ์€ ์‰ฝ๊ฒŒ ์œ„๋ณ€์กฐ๊ฐ€ ๊ฐ€๋Šฅํ•˜๊ณ , ๋ชจ๋“  ๊ตฌํ˜„์„ ํ†ต์ œํ•˜๋Š” ๊ฒƒ์€ ์–ด๋ ค์šธ ์ˆ˜ ์žˆ๋‹ค.

  1. ์„œ๋ฒ„

  1. ๋ฏธ๋“ค์›จ์–ด

  • ๋ฏธ๋“ค์›จ์–ด์— ์žฅ์น˜๋ฅผ ๋‘๊ณ  ์„œ๋ฒ„๋กœ ๊ฐ€๋Š” ์š”์ฒญ์„ ํ†ต์ œํ•  ์ˆ˜ ์žˆ๋‹ค.

MSA์˜ ๊ฒฝ์šฐ ๋ณดํ†ต API Gateway๋ผ๊ณ  ๋ถˆ๋ฆฌ๋Š” ์ปดํฌ๋„ŒํŠธ์— ๊ตฌํ˜„ํ•˜๊ณค ํ•œ๋‹ค.

๊ฒŒ์ดํŠธ์›จ์ด๋Š” ์ฒ˜๋ฆฌ์œจ ์ œํ•œ, SSL ์ข…๋‹จ, ์‚ฌ์šฉ์ž ์ธ์ฆ, IP ํ—ˆ์šฉ ๋ชฉ๋ก(whitelist) ๊ด€๋ฆฌ ๋“ฑ์„ ์ง€์›ํ•œ๋‹ค.

  • ์ผ๋‹จ API ๊ฒŒ์ดํŠธ์›จ์ด๋Š” ์ฒ˜๋ฆฌ์œจ ์ œํ•œ์„ ์ง€์›ํ•˜๋Š” ๋ฏธ๋“ค์›จ์–ด๋ผ๋Š” ๊ฒƒ์„ ์•Œ์•„๋‘์ž.

๊ทธ๋Ÿผ ์–ด๋””์— ๋‘์–ด์•ผ ํ•˜๋Š”๊ฒŒ?

์ œํ•œ์€ ์—†๋‹ค. ์‹œ์Šคํ…œ์˜ ์•„ํ‚คํ…์ฒ˜, ์šฐ์„ ์ˆœ์œ„, ๋ชฉํ‘œ์— ๋”ฐ๋ผ์„œ ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋Ÿผ์—๋„ ์ผ๋ฐ˜์ ์œผ๋กœ ์ ์šฉ๋  ์ˆ˜ ์žˆ๋Š” ๋ช‡ ๊ฐ€์ง€ ์ง€์นจ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

  • ๋ฐฑ์—”๋“œ ์„œ๋ฒ„:

    • ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด, ์บ์‹œ ์„œ๋น„์Šค ๋“ฑ ํ˜„์žฌ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ์ˆ  ์Šคํƒ์„ ์ ๊ฒ€ํ•˜๊ณ , ์„œ๋ฒ„ ์ธก ๊ตฌํ˜„์„ ์ง€์›ํ•˜๊ธฐ ์ถฉ๋ถ„ํ•  ์ •๋„๋กœ ํšจ์œจ์ด ๋†’์€์ง€ ํ™•์ธํ•ด์•ผ ํ•œ๋‹ค.

    • ์„œ๋ฒ„ ์ธก์—์„œ ๋ชจ๋“  ๊ฒƒ์„ ๊ตฌํ˜„ํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค๋ฉด, ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์ž์œ ๋กญ๊ฒŒ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋‹ค.

  • ๋ฏธ๋“ค์›จ์–ด:

    • ์‹œ์Šคํ…œ ์„ค๊ณ„๊ฐ€ ์ด๋ฏธ MSA๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๊ณ , ์‚ฌ์šฉ์ž ์ธ์ฆ์ด๋‚˜ IP ํ—ˆ์šฉ๋ชฉ๋ก ๊ด€๋ฆฌ ๋“ฑ์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์ด๋ฏธ ๊ฒŒ์ดํŠธ์›จ์ด๊ฐ€ ์กด์žฌํ•œ๋‹ค๋ฉด ์ฒ˜๋ฆฌ์œจ ์ œํ•œ ๊ธฐ๋Šฅ ๋˜ํ•œ ์—ฌ๊ธฐ์— ํฌํ•จ์‹œ์ผœ์•ผ ํ•  ์ˆ˜ ์žˆ๋‹ค.

  • ์ƒ์šฉ API ๊ฒŒ์ดํŠธ์›จ์ด:

    • ์ฒ˜๋ฆฌ์œจ ์ œํ•œ ์„œ๋น„์Šค๋ฅผ ์ง์ ‘ ๋งŒ๋“œ๋Š” ๊ฒƒ๋„ ์‹œ๊ฐ„์ด ๋“ ๋‹ค.

    • ๊ตฌํ˜„ํ•˜๊ธฐ์— ์ถฉ๋ถ„ํ•œ ๋ฆฌ์†Œ์Šค๊ฐ€ ๋ถ€์กฑํ•˜๋‹ค๋ฉด ์ƒ์šฉ API ๊ฒŒ์ดํŠธ์›จ์ด๋ฅผ ์“ฐ๋Š” ๊ฒƒ๋„ ๋ฐ”๋žŒ์งํ•˜๋‹ค.

Last updated