Cloud Endpoints는 애플리케이션이 API를 호출하는 속도를 제어할 수 있도록 할당량을 제공합니다. 할당량을 설정하면 사용량 한도를 지정하여 호출 애플리케이션의 과도한 요청으로부터 API를 보호할 수 있습니다. 과도한 요청은 단순한 철자 오류로 인해 또는 불필요하게 API를 호출하는 비효율적으로 설계된 시스템으로 인해 발생할 수 있습니다. 원인과 무관하게 API를 전반적으로 정상 상태로 유지하려면 특정 소스의 트래픽이 일정 수준에 도달할 때 트래픽을 차단해야 합니다. 할당량을 설정하면 한 애플리케이션이 API를 사용하는 다른 애플리케이션에 부정적인 영향을 주지 않도록 할 수 있습니다.
이 페이지에서는 할당량에서 제공하는 핵심 기능을 간략하게 설명합니다.
요청이 소비자 프로젝트에 연결됨
할당량을 구성하면 Endpoints는 소비자 Google Cloud 프로젝트별로 분당 요청 수를 추적합니다. API를 호출하는 각 애플리케이션은 다음을 충족해야 합니다.
- Google Cloud 프로젝트가 있어야 합니다.
- Google Cloud 프로젝트에서 API가 사용 설정되어 있어야 합니다.
- API에 요청할 때마다 API 키를 전송해야 합니다. 이렇게 하면 Endpoints가 호출 애플리케이션에 연결된 Google Cloud 프로젝트를 식별하고 Google Cloud 프로젝트의 요청 카운터를 늘릴 수 있습니다.
API 소비자가 Google Cloud Console에서 고유한 프로젝트를 만들도록 하거나 개발자가 소비자용 프로젝트를 만들 수 있습니다. Endpoints는 프로젝트 단위로 할당량을 적용하므로 API 소비자마다 프로젝트가 한 개 있어야 합니다.
분당 요청 수 제한
할당량을 설정하면 전체 API 또는 특정 메서드에 대한 분당 요청 수를 제한할 수 있습니다. 소비자 프로젝트의 클라이언트 코드가 구성된 한도를 초과하면 요청이 API에 도달하기 전에 거부되고 HTTP 상태 코드 429 too many
requests
가 반환됩니다. 호출 애플리케이션은 429
상태 코드를 처리하고 지수 백오프 또는 여러 다른 재시도 로직을 사용하여 API 호출 속도를 낮춰야 합니다.
할당량을 여러 개 구성
명명된 할당량을 여러 개 구성하고 각 할당량에 대해 서로 다른 속도 한도를 지정할 수 있습니다. 예를 들어, API에서 일부 메소드는 리소스를 많이 사용하고(예: 복잡한 쿼리를 실행하고 대규모 결과 목록을 반환하는 메소드) 다른 메소드는 빠르고 가벼울 수 있습니다. 이 경우 서로 다른 속도 한도를 사용하여 할당량 두 개를 구성하고, 리소스 사용량이 많은 메소드를 할당량 한 개에 연결하고 가벼운 메소드를 다른 할당량에 연결할 수 있습니다.
비용 구성
메서드를 할당량과 연결할 때는 항상 요청 비용을 지정합니다. 이렇게 하면 여러 메서드가 동일한 할당량을 서로 다른 속도로 소비할 수 있습니다. 여러 할당량을 구성하는 방법의 대안으로 비용을 사용할 수 있습니다. 예를 들어, 분당 요청 수 한도가 1,000개인 할당량을 구성한다고 가정합니다. 가벼운 메소드의 경우, 비용을 1로 구성합니다. 이는 클라이언트가 가벼운 메소드를 분당 1,000번 호출할 수 있음을 의미합니다. 리소스 사용량이 많은 메소드의 비용을 2로 구성합니다. 이 경우 요청 한도 1,000개에 도달할 때까지 클라이언트가 메소드를 호출할 때마다 요청 카운터가 2씩 증가합니다. 이를 통해 리소스 사용량이 많은 메소드의 분당 요청 수는 사실상 500개로 제한됩니다.
구성된 할당량 재정의
Endpoints > 서비스 페이지에 API의 각 메서드에 구성된 할당량이 표시됩니다. 필요한 경우 특정 소비자 프로젝트에 구성된 한도를 재정의할 수 있습니다. 재정의를 설정하려면 Endpoints > 서비스 페이지에서 소비자 프로젝트의 프로젝트 번호를 입력해야 합니다. 재정의하려는 소비자 프로젝트에 액세스할 수 없는 경우 액세스 권한이 있는 사용자에게 연락하여 프로젝트 번호를 확인해야 합니다.