한 번에 너무 많은 API 요청이 전송되면 시스템의 성능에 영향을 미칩니다. 속도 제한을 사용하도록 설정하면 각 사용자가 전송한 API 요청 수에 제한을 적용할 수 있습니다.
SD-WAN Orchestrator는 API 남용을 억제하는 특정 방어 메커니즘을 사용하고 시스템 안정성을 제공합니다. 허용되는 요청 제한을 초과하는 API 요청은 차단되고 HTTP 429(요청이 너무 많음)로 반환됩니다. 요청을 다시 수행하기 전에 시스템은 정지 기간을 거쳐야 합니다.
다음 속도 제한 유형이
SD-WAN Orchestrator에 배포됩니다.
- 누설 버켓 제한(Leaky bucket limiter) – 요청 버스트를 원활하게 하고 미리 정의된 수의 요청만 허용합니다. 이 제한 기능은 지정된 기간에 허용되는 요청의 수를 신중히 제한합니다.
- 동시성 제한(Concurrency limiter) – 병렬로 발생하여 동시 리소스 요청 경합을 발생하고 쿼리가 장기적으로 실행되도록 하는 요청 수를 제한합니다.
다음은 API 요청의 속도 제한을 유발하는 주요 이유입니다.
- 많은 수의 활성 또는 동시 요청.
- 갑작스러운 요청 볼륨 증가.
- 오랫동안 시스템 리소스를 차지하는 Orchestrator의 장기 실행 쿼리를 유발하는 요청.
API에 의존하는 개발자는 VCO 속도 제한 기능을 사용하도록 설정했을 때 코드의 안정성을 향상시키기 위해 다음 측정값을 채택할 수 있습니다.
- 요청이 속도 제한을 초과할 경우 HTTP 429 응답 코드를 처리합니다.
- 속도 제한이 지정된 기간에 허용되는 최대 요청 수에 도달하면 패널티 기간은 5000밀리초입니다. 차단된 경우, 요청을 다시 수행하기 전에 5000밀리초 동안 클라이언트를 정지 상태로 두어야 합니다. 5000ms의 정지 기간 동안 수행된 요청은 계속해서 속도가 제한됩니다.
- 시계열 API에 대해 더 짧은 시간 간격을 사용하여 장기 실행 쿼리로 인해 요청이 만료되지 못하게 합니다.
- 가능한 경우 개별 고객 또는 Edge를 쿼리하는 방법보다 일괄 쿼리 방법을 선호합니다.
참고: 운영자 수퍼유저는 환경을 기준으로 별도로 속도 제한을 구성합니다. 관련 정책에 대해 질문이 있는 경우 운영자에게 문의하십시오.
시스템 속성을 사용하여 속도 제한 정책 구성
다음 시스템 속성을 사용하여 속도 제한을 사용하도록 설정하고 기본 정책 집합을 정의할 수 있습니다.
- vco.api.rateLimit.enabled
- vco.api.rateLimit.mode.logOnly
- vco.api.rateLimit.rules.global
- vco.api.rateLimit.rules.enterprise.default
- vco.api.rateLimit.rules.enterpriseProxy.default
시스템 속성에 대한 자세한 내용은 시스템 속성 목록을 참조하십시오.
API를 사용하여 속도 제한 정책 구성
시스템 속성을 사용하여 속도 제한 정책을 글로벌 규칙으로 구성하는 것이 좋습니다. 이렇게 하면 가능한 최상의 API 성능이 제공되고, 문제 해결이 용이해지고, 모든 파트너와 고객에게 일관된 사용자 환경이 보장됩니다. 그러나 경우에 따라서는 운영자가 글로벌 정책이 특정 테넌트 또는 사용자에게 너무 느슨하다는 것을 확인할 수 있습니다. 이러한 경우
VMware은 다음 운영자 전용 API를 지원하여 특정 파트너 및 엔터프라이즈에 대한 정책을 설정합니다.
- enterpriseProxy/insertOrUpdateEnterpriseProxyRateLimits – 파트너 관련 정책을 구성하는 데 사용됩니다.
- enterprise/insertOrUpdateEnterpriseRateLimits – 고객 특정 정책을 구성하는 데 사용됩니다.
API에 대한 자세한 내용은 https://code.vmware.com/apis/1037/velocloud-sdwan-vco-api를 참조하십시오.