API Gateway의 유용성 - Rate limiting

Jun Hwang

백신 접종 사전예약 불능 사태

정부에서 제공하는 백신 접종 사전예약시스템이 트래픽을 감당하지 못하여 서비스가 원활하지 못하다는 보도를 접하면서, 잠시 이 사태를 API Gateway 관점에서 생각하게 됩니다. 대체 어떤 API 게이트웨이를 사용했을까 무척 궁금해집니다.

모든 API Gateway는 기본적으로 네트워크에서 호출되는 트래픽을 감당할 수 있도록 설계되어 있고, 어떻게 고가용성 (HA, High Availability)를 보장하는가에 따라서 제품의 성능이 결정될 만큼 중요한 요소입니다. 따라서, API Gateway의 사용주체는 자신들의 서비스에 대한 가상 시나리오에 적절히 대응할 수 있는 제품을 구매하는 것이 필수입니다. 이 부분은 엔지니어의 판단이라기 보다는 사용자측, 즉 서비스 도메인 전문가의 판단이 더 중요합니다.

Tyk API Gateway는 이러한 상황에 대처하기에 아주 편리한 접근제어체계를 제공합니다.

1. Rate Limiting - 하나의 key 값에 대하여 x 만큼의 요청을 y 시간 내에만 가능하도록 제어하며 (예: 초당 100개의 요청), 아래의 세 가지 유형으로 설정 가능합니다.

  • Hard-synchronized: 해당 key에 대하여 모든 게이트웨이 인스턴스에 동일한 rate limit를 적용합니다.
  • Distributed Rate Limiter (DRL): 해당 key에 대하여 게이트웨이 개별 인스턴스 마다 rate limit를 적용합니다.
  • Global Rate Limiter: 모든 사용자에 대하여 통합적으로 rate limit를 적용합니다. 커뮤니티 에디션 (CE)는 이 유형만 가능합니다.

2. Quotas - 정의된 시간동안 어느 만큼의 요청을 허용할 지 설정합니다. Rate limiting으로 제어하는 것 보다 더 긴 시간을 효과적으로 제어합니다 (예: 월당 10,000 개의 요청).

  • Tyk는 해당 사용자에 대하여 설정된 시간이 만료되면 자동으로 쿼터를 리셋 해줍니다.

3. Key Expiry - 키의 유효기간 설정은 해당 토큰이 만기가 되면 더 이상 요청이 작동되지 않습니다.

따라하기