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