API 트래픽 제어의 핵심, Rate Limiting vs Throttling

sarah·2025년 7월 16일
0

API를 운영하다 보면 트래픽이 갑자기 몰려 서버에 부하가 걸리는 상황을 종종 겪게 된다.
이럴 때 보통은 코드 레벨에서 캐시를 추가하거나, 비동기 처리로 대응하려고 하지만, 이런 방식만으로는 한계가 있다.

그래서 이번엔 코드가 아니라, 그보다 한 단계 더 높은 레벨(예: 인프라나 API 게이트웨이)에서
어떻게 트래픽을 제어하고 방어할 수 있을지 고민하던 중, API7.ai에서 잘 정리된 아티클을 발견하게 되었다.

Rate Limiting과 Throttling이라는 개념을 중심으로, API를 어떻게 안정적으로 보호하고 남용을 막을 수 있는지를 다루고 있어서, 그 내용을 번역하고 정리해봤다.


✅ 소개

API는 디지털 고속도로와 같으며, 트래픽 규칙 없이 운용되면 서버 과부하, 보안 취약점, 사용자 불만이 발생합니다.
Alibaba Cloud의 2023년 설문조사에 따르면 개발자 78%가 API 남용을 주요 보안 문제로 꼽았습니다.
이를 방지하기 위해 사용하는 기술이 바로 Rate LimitingThrottling입니다.


✅ 문제: 통제되지 않는 API 트래픽

문제점설명
서비스 중단 위험한 사용자가 수백만 요청을 보내면 서버가 마비될 수 있음
보안 위협무차별 대입 공격(Brute-force), DDoS 공격
사용자 경험 저하정당한 사용자도 지연이나 오류를 겪게 됨

✅ 용어 정리

📌 Rate Limiting (요청 수 제한)

  • 정해진 시간 안에 보낼 수 있는 요청 수 제한
  • 예: 분당 100건 요청 허용
  • 주요 용도:
    • DDoS 방어 (예: 트위터는 앱당 분당 150만 건 제한)
    • 프리미엄/프리 유저 차등 적용

📌 Throttling (요청 속도 제한)

  • 초과 요청을 차단하지 않고 느리게 처리
  • 예: 블랙프라이데이처럼 요청이 몰릴 때 점진적으로 응답
  • 주요 용도:
    • 트래픽 급증 완화
    • 우선순위 요청(예: 결제 API) 처리

✅ 주요 차이점

항목Rate LimitingThrottling
접근 방식제한 초과 시 차단제한 초과 시 지연
용도남용 방지일시적 부하 조절
사용자 경험429 오류 반환대기 후 처리됨

✅ 왜 중요한가?

✔ 남용 및 공격 방지

  • LinkedIn: 로그인 시도 시간당 5회 제한 → 무차별 대입 차단
  • Cloudflare: 2023년 3분기에 1,280만 DDoS 차단

✔ 공정한 사용 보장

  • Zoom: 일반 100만 건/월, 기업 1천만 건/월 API 요청 허용
  • AWS Lambda: 요청당 과금 → 무제한 사용 시 요금 폭탄 가능

✔ SLA 및 규정 준수

  • Shopify: 분당 100건으로 SLA 99.99% 보장

✅ Rate Limiting 전략

종류설명예시
Key 기반API Key로 제한Stripe: 초당 100건
IP 기반IP당 요청 제한GitHub: 인증 없는 IP는 시간당 60건 제한
사용자 기반유저 역할별 차등HubSpot: 무료 100건/시, 유료 10,000건/시
동시 연결 제한연결 수 제한AWS RDS: 동시 4만 커넥션 제한

✅ 알고리즘 예시

1. Token Bucket

  • 일정 수의 토큰을 소비하며 요청 처리
  • 토큰은 일정 속도로 리필됨
  • 예: Cloudflare → 트래픽 급증에도 일정 처리

2. Leaky Bucket

  • 고정 속도로 요청 처리, 넘치면 폐기
  • 예: RabbitMQ → 큐 폭주 방지

✅ 구현 시 모범 사례

항목권장 사항
현실적인 제한 설정Netflix: 트래픽 시뮬레이션으로 최적값 설정
명확한 커뮤니케이션X-RateLimit-Limit, Retry-After 헤더 반환
지속적인 모니터링Prometheus, Datadog 등으로 트래픽 추적
우아한 오류 메시지❌ 단순 에러 → ✅ 60초 후 재시도하세요 등 안내 제공

✅ 실제 사례

서비스제한 방식
Google Maps프로젝트당 하루 10만 건 지오코딩 제한
GitHub인증 없음: 시간당 60건, 인증됨: 5천 건
Outline.comPDF 변환 API: 분당 5건 제한 (GPU 부담 때문)
Walmart초당 2건 제한 → 가격 스크래핑 방지 목적

✅ 사용 가능한 도구

API Gateway

도구설명
AWS API Gateway토큰 버킷 방식, Lambda 인증자 연동
Azure API Management정책 기반 제한
Kong플러그인으로 IP 기반 제어

오픈소스 & 클라우드

종류설명
API7 Cloud모든 클라우드 통합 관리
Ambassador쿠버네이티브, JWT 기반 제어
Apache APISIXLua 플러그인 기반 제어 가능

✅ 미래 동향

  • AI 기반 Throttling: Azure는 ML로 이상 트래픽 탐지
  • 예측 기반 자동 조절: Google Cloud AutoML로 트래픽 예측
  • 표준화: OpenAPI 문서에 x-rate-limit 같은 확장 필드 사용 증가
  • 서버리스 연동: AWS Lambda는 동시 실행 제한을 통해 자동 Throttling 가능

✅ 결론

Rate Limiting과 Throttling은 API 안정성과 보안을 위한 핵심 전략입니다.
올바른 알고리즘 선택, 도구 활용, 정책 설계로 서비스 신뢰성 확보 및 비용 절감이 가능합니다.
API 중심 아키텍처가 증가하는 시대에선 필수적인 요소입니다.

0개의 댓글