할당량 정보

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 > 서비스 페이지에서 소비자 프로젝트의 프로젝트 번호를 입력해야 합니다. 재정의하려는 소비자 프로젝트에 액세스할 수 없는 경우 액세스 권한이 있는 사용자에게 연락하여 프로젝트 번호를 확인해야 합니다.

다음 단계