구글 캘린더 API에서 쿼리 관리 제어 기능이 업그레이드 되었습니다.
▶ Google Workspace 관리자 매뉴얼 : https://goo.gl/zsNdTX
▶ Google Workspace 관리자 업데이트
구글 캘린더 API에서 쿼리 관리 제어
Google 캘린더 API의 사용 관리 방법이 변경되었습니다. 이전에는 매일 캘린더 API 쿼리를 모니터링하여 제한했습니다. 이제 이러한 쿼리는 분당 기준으로 모니터링되고 제한됩니다.
이 변경은 할당량을 초과할 때 더 나은 동작을 도입하는데, 요청이 남은 하루 동안 모든 요청을 거절하는 것이 아니라 할당량을 사용할 수 있을 때까지 요금이 제한되기 때문이다. 또한 이를 통해 개발자는 할당량 시행과 관련된 문제를 더 빨리 식별할 수 있습니다.
사용자의 사용량 및 할당량 제한에 대한 자세한 내용은 Google API 콘솔에서 확인할 수 있습니다.
할당량을 효율적으로 사용하려면 다음을 수행하는 것이 좋습니다.
- 폴링 대신 푸시 알림을 사용합니다.
- 사용자 요청이 폭주하는 대신 균등하게 분산되도록 하는 무작위 타이밍.
- 모든 항목을 반복적으로 검색하는 대신 모든 컬렉션에 대해 동기화 토큰과 증분 동기화를 사용
- 최대 결과 매개 변수를 사용하여 한 번에 더 많은 데이터를 검색하기 위한 페이지 크기 증가.
- 모든 동기화에서 모든 이벤트가 다시 생성되지 않도록 변경 시 이벤트 업데이트
- 오류 재시도에 지수 백오프를 사용하면 속도 제한이 제대로 작동.

구글 캘린더 API에서 쿼리 관리 제어
내용 : https://workspaceupdates.googleblog.com/2021/06/google-calendar-api-update.html
구글 캘린더 API 할당량 관리
캘린더 API는 공유 서비스이므로 할당량을 적용하여 모든 사용자가 공평하게 사용할 수 있도록 합니다. 빠른 속도로 많은 쓰기를 수행하면 요금이 제한될 수 있습니다. 자세한 내용은 일반 일정관리 사용 제한을 참조하십시오. 또한 Calendar API에는 두 가지 관련 할당량이 있습니다.
- 프로젝트당 분당 수: 전체 프로젝트에서 요청한 수입니다. 프로젝트에 사용자가 많을 경우 이 값을 늘릴 수 있습니다.
- 사용자당 프로젝트당 분당 수: 이것은 특정 사용자(이 요청을 수행하는 사용자 또는 서비스 계정, 액세스 중인 일정관리를 소유하는 사용자가 아닌 사용자)가 프로젝트에서 수행한 요청 수입니다. 일반적으로 이 값은 늘릴 수 없으므로 API를 효율적으로 사용하는 것이 중요합니다.
할당량을 초과하면 속도가 제한되고 쿼리에 대한 403 “usage Limits” 응답 또는 429 응답을 받게 됩니다. 이런 경우 지수 백오프를 사용하고 나중에 다시 시도해야 합니다. 또한 운영상의 이유로 언제든지 요금이 제한될 수 있지만, 일반적으로 이러한 경우는 매우 드뭅니다. 프로젝트가 이러한 할당량 내에 머무른다면 하루에 수행할 수 있는 요청 수에 제한이 없습니다.
할당량은 슬라이딩 윈도우를 사용하여 계산되므로 1분 동안 분당 할당량을 초과하는 트래픽이 급증하면 다음 윈도우 동안 요금이 제한되어 사용량이 평균적으로 제한치 이내로 유지됩니다.
프로젝트에 대한 사용 제한을 보거나 변경하거나 할당량 증가를 요청하려면 다음을 수행합니다.
- 프로젝트에 대한 청구 계정이 아직 없는 경우 새로 만드십시오.
- API Console에 있는 API 라이브러리의 Enabled APIs 페이지를 방문하여 목록에서 API를 선택합니다.
- 할당량 관련 설정을 보고 변경하려면 할당량을 선택합니다. 사용 통계를 보려면 사용을 선택합니다.
지수 백오프 사용(exponential backoff)
요청 속도를 늦추려면 403개의 “usage Limits” 응답 또는 429개의 응답을 반환해야 합니다(전체 오류 설명서 참조). 이는 치명적인 오류가 아니며 잠시 후 요청을 다시 시도해야 합니다. 요청이 계속 너무 빨리 도착하면 다시 요청하겠습니다. 이 방법이 올바르게 작동하려면 요청 간의 지연 시간이 시간이 지남에 따라 증가하는 것이 중요합니다.
일반적으로 잘린 지수 백오프를 사용해야 합니다. Google Cloud 스토리지 설명서에는 이 기능의 작동 방식과 기본 알고리즘에 대한 설명이 잘 나와 있습니다. Google 클라이언트 라이브러리를 사용하는 경우 일반적으로 이 라이브러리가 처리됩니다. 라이브러리 설명서를 참조하십시오. 일반적으로, 자신의 라이브러리 구현체를 쓰기보다는 사용해야 합니다.
트래픽 패턴 랜덤화
일정관리 클라이언트는 여러 클라이언트가 동시에 작업을 수행함에 따라 트래픽 패턴이 급증하기 쉽습니다. 예를 들어 일반적인 안티 패턴은 일정관리 클라이언트가 자정에 전체 동기화를 수행하는 것입니다. 이 경우 분당 할당량을 거의 초과하여 요금 제한 및 백오프가 발생할 수 있습니다.
이 문제를 방지하려면 가능한 한 하루 종일 트래픽이 분산되어 있는지 확인하십시오. 클라이언트가 매일 동기화해야 하는 경우 클라이언트에서 임의 시간(클라이언트마다 다름)을 결정하도록 합니다. 정기적으로 작업을 수행해야 하는 경우 +/- 25% 간격을 변경합니다. 이렇게 하면 트래픽이 보다 고르게 분산되고 훨씬 더 나은 사용자 환경을 제공할 수 있습니다.
푸시 알림 사용
일반적인 사용 사례는 사용자의 일정관리가 변경될 때마다 작업을 수행하려는 경우입니다. 여기서의 반패턴은 관심있는 모든 달력을 반복적으로 폴링하는 것이다. 이렇게 하면 모든 할당량이 매우 빠르게 소모됩니다. 예를 들어, 응용 프로그램에 5,000명의 사용자가 있고 각 사용자의 일정관리를 분당 한 번씩 폴링하는 경우 작업을 수행하기 전에 분당 최소 5,000개의 할당량이 필요합니다.
서버측 응용 프로그램은 푸시 알림을 등록할 수 있으며, 이를 통해 관심 있는 일이 발생할 때 사용자에게 알릴 수 있습니다. 이렇게 하려면 설정에는 더 많은 작업이 필요하지만 할당량을 훨씬 더 효율적으로 사용할 수 있고 더 나은 사용자 환경을 제공합니다. 자세한 내용은 알림 푸시을 참조하십시오.
서비스 계정에 대한 올바른 회계
응용프로그램이 도메인 전체 위임을 사용하여 요청을 수행하는 경우, 기본적으로 서비스 계정은 가장하는 사용자가 아니라 “사용자당 프로젝트 분당” 할당량에 대해 과금됩니다.
즉, 서비스 계정이 여러 사용자의 달력으로 작동하더라도 할당량이 부족하고 요금 제한이 있을 수 있습니다. 할당량 사용자 URL 매개 변수(또는 x-goog-쿼터 사용자 HTTP 헤더)를 사용하여 과금할 사용자를 표시하면 이 문제를 방지할 수 있습니다. 할당량 계산에만 사용됩니다. 자세한 내용은 클라우드 설명서의 사용자당 요청 제한을 참조하십시오.



