속도 제한이란?
속도 제한은 클라우드 API가 지정된 시간 프레임에서 사용자가 수행할 수 있는 요청 수를 조절하는 데 사용하는 제어 메커니즘입니다. 클라우드 API 생산자는 속도 제한을 사용하여 요청 흐름이 서비스에 과부하가 발생하지 않도록 합니다. 속도 제한은 API 호출의 속도 및 볼륨에 대한 한도를 설정하며, 일반적으로 기간당 요청 측면에서 정의됩니다.
클라우드 API가 속도 제한을 사용하는 이유
- 오버로드를 방지합니다. 속도 제한을 사용하면 단일 사용자 또는 서비스가 너무 많은 요청으로 인해 API 서버가 초과되지 않도록 방지하여 안정적이고 응답성이 유지됩니다.
- 공정한 사용을 보장합니다. 속도 제한은 공정한 사용 정책을 적용하여 단일 사용자가 API 리소스를 독점하지 않도록 하여 모든 사용자에게 공평한 액세스를 허용합니다.
- 보안. 잠재적으로 악의적인 원본의 요청 수를 제한하여 DDoS(분산 서비스 거부) 공격 및 기타 악의적인 동작을 완화하는 데 도움이 됩니다.
- 비용 관리 . 클라우드 서비스 공급자의 경우 속도 제한은 예측할 수 없거나 과도한 리소스 사용을 방지하여 운영 비용을 관리하는 데 도움이 됩니다.
- 서비스 품질. 트래픽 급증을 방지함으로써 속도 제한은 모든 사용자에게 일관된 서비스 품질을 보장합니다.
앱에서 속도 제한을 경험하는 방법
클라우드 API를 통합하는 앱을 빌드할 때 해당 설명서를 확인하여 속도 제한을 지원하는지 확인합니다. 이 경우 속도 제한에 대한 정보가 포함된 헤더를 받 RateLimit-...
거나 X-RateLimit-...
응답합니다. 애플리케이션에서 이 정보를 사용하여 API의 속도 제한을 초과하지 않도록 할 수 있습니다. 예를 들어 헤더는 RateLimit-Remaining
현재 창에 남아 있는 요청 수를 나타냅니다. 이 헤더가 0으로 설정된 응답을 받으면 속도 제한에 도달했으며 다른 요청을 보내기 전에 다음 창을 기다려야 합니다. 헤더는 RateLimit-Reset
속도 제한이 다시 설정되는 시간을 나타냅니다. 일부 API는 임계값에 RateLimit-...
도달한 후에만 헤더를 보냅니다(예: 요청의 10%가 남아 있는 경우).
속도 제한을 초과하면 API는 HTTP 429(너무 많은 요청) 상태 코드를 반환하는 요청을 제한합니다. 일부 API는 다른 요청을 보내기 전에 대기해야 하는 시간을 나타내는 헤더를 보낼 Retry-After
수도 있습니다.
제한을 방지하고 애플리케이션이 응답성을 유지하도록 하려면 애플리케이션에서 속도 제한을 구현해야 합니다. 기술 스택에 따라 애플리케이션에서 속도 제한을 처리하는 데 도움이 되는 다양한 라이브러리가 있습니다. 애플리케이션에서 속도 제한을 구현한 후 속도 제한을 올바르게 처리하는지 테스트합니다.
다음 단계
Dev Proxy