Share via


속도 제한이란?

속도 제한은 클라우드 API가 사용자가 지정된 시간 프레임에서 수행할 수 있는 요청 수를 조절하는 데 사용하는 제어 메커니즘입니다. 클라우드 API 생산자는 속도 제한을 사용하여 요청 흐름이 서비스에 부담을 주지 않도록 합니다. 속도 제한은 API 호출의 속도 및 볼륨에 대한 상한을 설정하며, 일반적으로 기간당 요청 측면에서 정의됩니다.

클라우드 API가 속도 제한을 사용하는 이유

  • 오버로드를 방지합니다. 속도 제한을 사용하면 단일 사용자 또는 서비스가 너무 많은 요청으로 인해 API 서버가 플러딩되지 않도록 하여 API 서버가 안정적이고 응답성을 유지할 수 있습니다.
  • 공정한 사용을 보장합니다. 속도 제한은 공정한 사용 정책을 적용하여 단일 사용자가 API 리소스를 독점하지 않도록 하여 모든 사용자에게 공평한 액세스를 허용합니다.
  • 보안. 잠재적으로 악의적인 원본의 요청 수를 제한하여 DDoS(분산 서비스 거부) 공격 및 기타 가학적인 행동을 완화하는 데 도움이 됩니다.
  • Cost Management. 클라우드 서비스 공급자의 경우 속도 제한은 예측할 수 없거나 과도한 리소스 사용을 방지하여 운영 비용을 관리하는 데 도움이 됩니다.
  • 서비스 품질. 트래픽 급증을 방지함으로써 속도 제한은 모든 사용자에게 일관된 서비스 품질을 보장합니다.

앱에서 속도 제한을 경험하는 방법

클라우드 API를 통합하는 앱을 빌드할 때 설명서를 검사 속도 제한을 지원하는지 확인합니다. 이 경우 속도 제한에 대한 정보가 포함된 헤더를 받 RateLimit-... 거나 X-RateLimit-... 응답합니다. 애플리케이션에서 이 정보를 사용하여 API의 속도 제한을 초과하지 않도록 할 수 있습니다. 예를 들어 헤더는 RateLimit-Remaining 현재 창에 남아 있는 요청 수를 나타냅니다. 이 헤더가 0으로 설정된 응답을 받으면 속도 제한에 도달했으며 다른 요청을 보내기 전에 다음 창을 기다려야 한다는 것을 알 수 있습니다. 헤더는 RateLimit-Reset 속도 제한이 다시 설정되는 시간을 나타냅니다. 일부 API는 임계값에 RateLimit-... 도달한 후에만 헤더를 보냅니다(예: 요청의 10%가 남아 있는 경우).

속도 제한을 초과하면 API는 HTTP 429(너무 많은 요청) 상태 코드를 반환하는 요청을 제한합니다. 일부 API는 다른 요청을 보내기 전에 기다려야 하는 시간을 나타내는 헤더를 보낼 Retry-After 수도 있습니다.

제한을 방지하고 애플리케이션의 응답성을 유지하려면 애플리케이션에서 속도 제한을 구현해야 합니다. 기술 스택에 따라 애플리케이션에서 속도 제한을 처리하는 데 도움이 되는 다양한 라이브러리가 있습니다. 애플리케이션에서 속도 제한을 구현한 후 속도 제한을 제대로 처리하는지 테스트합니다.

다음 단계