다음을 통해 공유


속도 제한을 처리하는 방법

속도 제한은 API 공급자가 특정 기간 동안 서비스에 대해 수행할 수 있는 요청 수를 관리하는 데 사용하는 일반적인 기술입니다. API 공급자는 속도 제한을 사용하여 서비스가 모든 사용자에게 사용 가능하고 응답성을 유지하도록 하고 서비스의 남용 또는 남용을 방지합니다.

애플리케이션에서 클라우드 API를 사용하는 경우 해당 속도 제한을 이해해야 합니다. 다음 기술은 애플리케이션에서 속도 제한을 처리하는 데 도움이 될 수 있습니다.

  • 속도 제한을 이해합니다. 해당 속도 제한을 이해하는 데 사용하는 API의 설명서를 확인합니다. 속도 제한은 사용하는 API 공급자 또는 서비스 계획에 따라 달라질 수 있습니다. 예를 들어 일부 API는 무료 및 유료 요금제에 대해 다른 속도 제한을 가질 수 있습니다.
  • 속도 제한 정보를 사용합니다. 속도 제한을 사용하는 API는 일반적으로 응답 헤더에서 현재 속도 제한을 전달합니다. 예를 들어 헤더는 RateLimit-Remaining 현재 창에 남아 있는 요청 수를 나타냅니다. 이 헤더가 0으로 설정된 응답을 받으면 속도 제한에 도달했으며 다른 요청을 보내기 전에 다음 창을 기다려야 합니다. RateLimit-Reset 헤더는 속도 제한이 다시 설정되는 시간을 나타냅니다. 일부 API는 임계값에 도달한 RateLimit-... 후에만 헤더를 보냅니다. 예를 들어 남은 요청의% 10개입니다.
  • API 사용량을 최적화합니다. 일부 서비스는 복잡성에 따라 다른 요청에 다른 비용을 할당합니다. 예를 들어 일부 API는 더 많은 데이터를 반환하는 요청에 대해 더 많은 요금을 부과할 수 있습니다. 애플리케이션 비용을 줄이려면 필요한 데이터만 가져와서 API 사용을 최적화합니다. API가 지원하는 경우 일괄 요청을 사용합니다. 응답을 처리하는 데 필요한 리소스 수를 줄이고 속도 제한 내에서 유지하는 데 도움이 됩니다.
  • 로컬 속도 제한기를 구현합니다. 애플리케이션 자체 내에서 속도 제한기를 구현하여 특정 기간 동안 API에 대해 수행할 수 있는 요청 수를 제한합니다. 토큰 버킷 또는 누수 버킷 알고리즘과 같은 기술을 사용하여 이를 수행할 수 있으며, 이를 통해 애플리케이션이 기간당 많은 요청을 수행할 수 있습니다. 추가 요청은 대기열에 들어가거나 삭제됩니다.
  • 속도 제한을 초과하지 않습니다. 속도 제한을 초과하면 API는 일반적으로 HTTP 상태 코드를 반환하는 모든 후속 요청을 429 Too Many Requests. 일반적으로 제한은 속도 제한보다 애플리케이션의 처리량에 더 많은 영향을 줍니다. 속도 제한 응답 헤더에 노출된 정보를 사용하여 속도 제한 내에서 유지하고 제한을 방지합니다.

이러한 기술을 사용하면 속도 제한에 탄력적이고 API의 부하가 높은 경우에도 계속 작동할 수 있는 애플리케이션을 빌드할 수 있습니다.

다음 단계