이 페이지에서는 API의 할당량을 구성하는 방법을 설명합니다. 단계를 간단히 살펴보면 다음과 같습니다.
- gRPC API 구성 파일에 할당량 정보를 추가합니다.
- gRPC API 구성 파일을 배포합니다.
- 확장 가능 서비스 프록시(ESP)를 배포합니다.
할당량이 있는 기능의 개요는 할당량 정보를 참조하세요.
기본 요건
이 페이지에서는 아래 작업이 이미 완료되었다고 가정합니다.
- Cloud Endpoints를 구성했습니다.
- Endpoints 구성을 배포했습니다.
- API 백엔드를 배포했습니다.
- API 키를 사용하도록 API 구성. 이 작업은 Endpoints가 호출 애플리케이션과 연결된 Google Cloud 프로젝트를 식별하기 위해 필요합니다. 자세한 내용은 API 키로 보호되는 API 공유를 참조하세요.
gRPC API 구성 파일에 할당량 추가
다음 절차에서는 할당량 설정을 위해 gRPC API 구성 파일에 필요한 설정을 추가하는 방법을 설명합니다. 이 페이지에서는 gRPC API 구성 파일을 간단히 api_config.yaml
파일로 지칭하겠습니다.
다음 3개 섹션을 api_config.yaml
파일에 추가합니다.
metrics
: API 요청 수를 계산하는 명명된 측정항목입니다. 카운터를 설명하는 이름을 지정하세요. 이름은read-requests
또는write-requests
와 같은 카테고리일 수 있습니다. 또는 특정 메서드에 대한 할당량을 정의할 경우 메서드 이름을 포함할 수 있습니다(예:echo-api/echo_requests
).quota.limits
: 명명된 측정항목에 적용 가능한 단일 한도를 나타냅니다. 여기에서는 정의한 측정항목의 허용 요청 수를 구성합니다. 현재는 분당, 프로젝트당 한도만 지원됩니다.quota.metric_rules
:metric_rule
는 메서드를 측정항목에 매핑합니다(다대다). 메서드 요청은 매핑된 측정항목마다 카운터를 할당합니다. 메서드를 측정항목과 연결할 때는 항상 요청에 대한 비용을 지정합니다. 각 메서드 비용을 독립적으로 구성할 수 있습니다. 이를 통해 동일 측정항목에서 메서드별로 서로 다른 속도가 사용될 수 있습니다. 할당량을 복잡하게 구성할 필요가 없는 경우에는 모든 측정항목 비용을 1로 구성할 수 있습니다.
API에서 할당량을 구성하려면 다음 안내를 따르세요.
- 텍스트 편집기에서 프로젝트의
api_config.yaml
파일을 엽니다. 파일의 최상위 수준에서
apis
필드 아래에metrics
필드를 추가합니다(들여쓰거나 중첩하지 않음).metrics: - name: "YOUR_METRIC_NAME" display_name: "YOUR_METRIC_DISPLAY_NAME" value_type: INT64 metric_kind: DELTA`
YOUR_METRIC_NAME
을 API 요청 카운터를 설명하는 이름으로 바꿉니다.- 측정항목을 식별할 수 있도록
YOUR_METRIC_DISPLAY_NAME
을 Endpoints > 서비스 > 할당량 페이지에 표시된 텍스트로 바꿉니다. value_type
필드는INT64
여야 합니다.metric_kind
필드는DELTA
여야 합니다.
quota
필드를metrics
와 같은 수준에 추가하고limits
필드를quota
섹션 내에 중첩해 추가합니다.quota: limits: - name: "YOUR_LIMIT_NAME" metric: "YOUR_METRIC_NAME" unit: "1/min/{project}" values: STANDARD: VALUE_FOR_THE_LIMIT
YOUR_LIMIT_NAME
을 한도를 설명하는 이름으로 바꿉니다.YOUR_METRIC_NAME
을 이전에 정의된metric.name
으로 바꿉니다.unit
필드는"1/min/{project}"
여야 합니다. 이는 프로젝트당 분 단위 한도의 식별자입니다.values
필드는STANDARD
를 포함해야 합니다.VALUE_FOR_THE_LIMIT
를 정수 값으로 바꿉니다. 이 값은 소비자의 Google Cloud 프로젝트와 연결된 애플리케이션이 1분 동안 수행할 수 있는 요청 수입니다.
원하는 경우 추가 측정항목과 각 측정항목의 한도를 정의합니다.
limits
섹션 다음에metric_rules
행을quota
아래로 들여쓰기로 추가합니다.metric_rules
섹션에서 이전에 정의한 측정항목과 메서드를 다음과 같이 연결합니다.metric_rules: - metric_costs: YOUR_METRIC_NAME: YOUR_METRIC_COST selector: [METHODS]
YOUR_METRIC_NAME
을 이전에 정의된metric.name
으로 바꿉니다.YOUR_METRIC_COST
를 정수로 바꿉니다. 각 요청마다 측정항목의 요청 카운터가 비용으로 지정한 수만큼 증가합니다.selector
필드에는 다음 중 하나를 지정할 수 있습니다.- 모든 API의 전체 메서드를
metric_cost
로 연결하려면selector: "*"
사용 - 한 API의 전체 메서드를
metric_cost
로 연결하려면selector: YOUR_API_NAME.*
사용 - 한 API의 특정 메서드를
metric_cost
로 연결하려면selector: YOUR_API_NAME.YOUR_METHOD_NAME
사용
- 모든 API의 전체 메서드를
api_config.yaml
파일을 저장합니다.
할당량 구성 예
다음 세 가지 예에서는 API에 할당량을 구성하는 방법을 보여줍니다.
다음 예시에서는 metric
필드 구성 방법을 보여줍니다.
metrics: # Define a metric for read requests. - name: "read-requests" display_name: "Read requests" value_type: INT64 metric_kind: DELTA`
다음 예시에서는 quota
섹션 내에서 quota
및 limits
필드를 구성하는 방법을 보여줍니다.
metrics: # Define a metric for read requests. - name: "read-requests" display_name: "Read requests" value_type: INT64 metric_kind: DELTA quota: limits: # Define the limit or the read-requests metric. - name: "read-limit" metric: "read-requests" unit: "1/min/{project}" values: STANDARD: 1000
다음 예시에서는 limits
섹션 다음에 metrics
행을 구성하는 방법을 보여줍니다.
metrics:
# Define a metric for read requests.
- name: "read-requests"
display_name: "Read requests"
value_type: INT64
metric_kind: DELTA
quota:
limits:
# Define the limit or the read-requests metric.
- name: "read-limit"
metric: "read-requests"
unit: "1/min/{project}"
values:
STANDARD: 1000
metric_rules:
- metric_costs:
"read-requests": 1
selector: *
api_config.yaml
파일 및 ESP 배포
할당량을 적용하려면 다음과 같이 실시해야 합니다.
- Endpoints에서 구성을 업데이트하는 Service Management에
api_config.yaml
파일을 배포합니다. 자세한 단계는 Endpoints 구성 배포를 참조하세요. - ESP를 배포합니다. 자세한 단계는 API 백엔드 배포를 참조하세요.