속도 제한을 사용하면 사용자 또는 서비스가 특정 기간에 수행할 수 있는 API 호출 수를 제한할 수 있습니다. 속도 제한을 사용하면 공정한 사용을 보장하고 단일 사용자 또는 서비스가 API 리소스를 독점하지 못하도록 방지할 수 있습니다. Azure API Management는 API에 대한 속도 제한을 구현하는 편리한 방법을 제공합니다.
Azure API Management를 사용하는 이유
Azure API Management 는 조직이 외부, 파트너 및 내부 개발자에게 API를 게시하는 데 도움이 되는 강력하고 다양한 클라우드 서비스입니다. API 호출을 보안, 관리 및 크기 조정하기 위한 도구를 제공합니다. 해당 기능 중 하나는 API의 상태 및 안정성을 유지하는 데 유용한 속도 제한을 제어하는 것입니다.
Azure API Management에서 속도 제한 구성
Azure API Management는 정책을 사용하여 속도 제한을 적용합니다. 전역, 제품 또는 API별 다양한 범위에서 이러한 정책을 정의할 수 있습니다. 이러한 유연성을 통해 API의 요구 사항 및 사용 패턴에 따라 속도 제한을 조정할 수 있습니다.
속도 제한을 구현하기 전에 속도 제한을 결정합니다. 설정한 제한은 API의 용량 및 예상 트래픽에 따라 달라집니다. 일반적인 제한은 초당 호출 수, 분 또는 시간 단위로 설정됩니다. 예를 들어 사용자당 분당 1,000건의 호출을 허용할 수 있습니다.
Azure API Management에서 API에 대한 속도 제한을 정의하려면 rate-limit
또는 rate-limit-by-key
정책 중 하나를 사용합니다. 정책은 rate-limit
모든 사용자에 대한 제한을 설정합니다. 이 rate-limit-by-key
정책은 식별된 키당 제한(예: 구독 또는 사용자 ID)을 허용합니다.
다음은 호출을 분당 1,000으로 제한하는 정책의 예입니다.
<policies>
<inbound>
<base />
<rate-limit calls="1000" renewal-period="60" />
</inbound>
<backend>
<base />
</backend>
<outbound>
<base />
</outbound>
<on-error>
<base />
</on-error>
</policies>
지정된 호출 수를 초과하면 Azure API Management는 429 Too Many Requests
상태 코드와 retry-after
응답 헤더 및 다시 시도할 수 있는 시기를 나타내는 메시지를 함께 보냅니다.
HTTP/1.1 429 Too Many Requests
content-type: application/json
retry-after: 60
{
"statusCode": 429,
"message": "Rate limit is exceeded. Try again in 60 seconds."
}
응답 헤더에 속도 제한 정보 노출
기본적으로 Azure API Management는 응답 헤더에 속도 제한 정보를 노출하지 않습니다. 속도 제한을 전달하지 않으면 앱이 제한을 초과하고 제한을 받지 않도록 하는 것이 어려워집니다. 속도 제한 정보를 노출하려면 rate-limit
정책을 remaining-calls-header-name
및 total-calls-header-name
속성으로 확장하십시오.
<policies>
<inbound>
<base />
<rate-limit calls="1000" renewal-period="60" remaining-calls-header-name="ratelimit-remaining" total-calls-header-name="ratelimit-limit" />
</inbound>
<backend>
<base />
</backend>
<outbound>
<base />
</outbound>
<on-error>
<base />
</on-error>
</policies>
지금 API를 호출하면 각 응답에 ratelimit-remaining
와 ratelimit-limit
헤더가 포함됩니다. 헤더는 API가 제한을 초과하기 전에 처리할 수 있는 호출 수를 더 많이 전달합니다.
요약
Azure API Management에서 속도 제한을 구현하면 강력하고 확장 가능한 API를 만들 수 있습니다. 속도 제한을 사용하여 API가 사용자에게 안정적이고 효율적으로 제공하는지 확인할 수 있습니다. 핵심은 적절한 균형을 찾는 것입니다. 속도 제한이 너무 엄격한 경우 유용성을 저해할 수 있습니다. 속도 제한이 너무 관대하면 API를 압도할 위험이 있습니다. 신중한 계획 및 지속적인 모니터링을 통해 이 균형을 달성하고 정상 API 환경을 유지할 수 있습니다.
다음 단계
Dev Proxy