Apigee 및 Apigee Hybrid 문서입니다.
Apigee Edge 문서 보기
할당량 정책은 API 프록시가 수신한 요청 수를 계산하는 데 사용됩니다. 이 기능을 통해 API 공급업체는 일정 시간 간격으로 앱에서 발생하는 API 호출 수를 제한할 수 있습니다.
할당량 정책에는 각 요청이 계산되는 할당량 '버킷'을 식별하는 identifier 요소가 포함될 수 있습니다.
안티패턴
할당량 정책을 사용할 때는 높은 카디널리티를 가진 식별자를 사용하지 마세요.
카디널리티는 집합 내의 고유 데이터 값의 개수를 의미합니다. 높은 카디널리티를 가진 식별자는 가능한 값의 종류가 매우 많습니다. 높은 카디널리티의 식별자에는 매 API 호출마다 변경되는 고유 요청 ID나 세션 ID 등이 포함됩니다.
높은 카디널리티의 식별자를 사용하면 할당량 적용의 효과가 크게 저하될 수 있습니다.
영향
할당량 정책의 식별자 요소에 높은 카디널리티 식별자를 사용할 경우 다음과 같은 문제가 발생합니다.
- 비효율적인 할당량 적용: 각 고유 식별자가 개별 카운터로 처리됩니다. 모든 요청이 새롭고 고유한 ID를 가진 경우, 할당량 시스템은 사실상 각 API 호출마다 새로운 '버킷'을 생성하게 됩니다. 이로 인해 전체 할당량 한도가 실제로 제한하고자 하는 요청 그룹이 아니라, 단일 사용 카운터별로 측정되어 정책이 트래픽 제어에 무용지물이 됩니다.
- 리소스 소비 증가: 수많은 고유 할당량 카운터를 생성하고 관리하면 Apigee 플랫폼에 불필요한 부하가 발생하며, 그 결과 리소스 사용량이 증가하고 잠재적인 성능 문제가 발생할 수 있습니다.
- 모니터링 문제: 데이터가 수많은 고유 식별자에 걸쳐 분산되면 실제 API 사용 추세를 모니터링하고 파악하기가 어려워집니다. 또한 어떤 애플리케이션, 개발자 또는 제품이 API 리소스를 소비하고 있는지 파악할 수 없게 됩니다.
권장사항
카디널리티가 낮거나 중간 수준이면서, 할당량 적용을 위한 안정적이고 의미 있는 그룹화를 나타내는 식별자를 선택하세요. 이러한 식별자는 API 사용량을 효율적으로 관리하고 트래픽에 대한 인사이트를 얻는 데 도움이 됩니다. 예를 들면 다음과 같습니다.
- developer.app.name
- client_id
- apiproduct.name
적절한 식별자를 사용하면 할당량 정책이 API 트래픽을 보다 효과적으로 관리하고, 의도치 않은 초과 사용을 방지하며, 사용 패턴에 대한 명확한 인사이트를 제공합니다.