할당량

App Engine 애플리케이션은 리소스를 특정 할당량까지 사용할 수 있습니다. 애플리케이션의 일일 소비량은 Google Cloud Console 할당량 세부정보 페이지에서 확인할 수 있습니다.

할당량 유형

App Engine 애플리케이션에는 다음 할당량 유형이 적용됩니다.

  • 무료 할당량: 애플리케이션에 각 리소스를 일정량까지 무료로 제공합니다. 애플리케이션이 무료 할당량을 초과한 이후에는 해당 리소스의 추가 사용에 대해 요금이 청구됩니다.

    표준 환경에서만 무료 할당량을 제공합니다.

  • 일일 할당량은 단일 앱이 리소스를 과도하게 사용해 다른 앱을 손상시키는 일이 없도록 하여 App Engine 시스템의 무결성을 보호합니다. 한도를 초과하면 오류가 반환됩니다. 일일 할당량은 매일 태평양 표준시 자정에 새로고침됩니다.
  • 분당 할당량은 애플리케이션이 단시간 내에 리소스를 모두 소모하지 않도록 보호하며 다른 애플리케이션이 특정 리소스를 독차지하지 않도록 방지합니다. 애플리케이션이 리소스를 너무 빠르게 소모하여 분당 할당량이 소진될 경우 Cloud Console의 할당량 페이지에서 해당하는 할당량 옆에 '제한됨'이라는 단어가 표시됩니다. 분당 최댓값에 도달한 리소스에 대한 요청은 거부됩니다.

프로젝트 소유자결제 관리자는 프로젝트에 결제를 사용 설정할 수 있습니다.

애플리케이션에 결제를 사용 설정하면 애플리케이션의 안전 한계가 늘어납니다. 자세한 내용은 리소스 섹션을 참조하세요.

할당량을 초과할 경우 발생하는 상황과 할당량 초과분 상태를 처리하는 방법은 리소스의 대폭 감소를 참조하세요.

팁: 분당 최대 할당량을 적용하면 사이트가 뉴스에 언급되는 상황에서 발생하는 트래픽 급증을 처리하기에 충분할 만큼 높은 트래픽 수준도 감당할 수 있습니다. 특정 할당량이 이러한 요구사항을 충족하지 않는다고 판단되면 문제 추적기에서 의견을 제출하세요. 의견 제출은 할당량을 늘리기 위한 요청이 아니지만, Google에서 일반적인 사용 사례로 보기에 너무 낮은 할당량이 무엇인지 이해하는 데 도움이 됩니다.

매우 높은 트래픽 수준이 예상되거나 그 밖에 이유로(예를 들어 중요한 제품 출시 또는 대규모 부하 테스트 때문에) 앱에 특히 높은 할당량이 필요한 경우에는 서포트 패키지에 가입하는 것이 좋습니다.

지출 한도

이전의 App Engine 앱은 지출 한도를 만들어 App Engine 리소스 사용에 대해 청구할 수 있는 대략적인 최대 금액을 지정할 수 있었습니다. 2019년 12월 12일부터는 더 이상 지출 한도를 만들 수 없지만 기존 지출 한도를 변경 또는 삭제할 수 있습니다.

비용을 관리하는 다른 메커니즘에 대한 자세한 내용은 비용 관리를 참조하세요.

리소스 보충 방법

App Engine에서는 애플리케이션의 리소스 사용량을 시스템 할당량과 비교해 추적합니다. App Engine이 하루가 시작될 때마다 모든 리소스 측정을 재설정합니다(예외: 항상 사용 중인 Datastore 스토리지의 저장용량을 나타내는 저장된 데이터).

일일 할당량은 매일 자정(태평양 표준시 기준)에 보충됩니다. 분당 할당량은 60초마다 새로고침됩니다.

리소스의 대폭 감소

애플리케이션에서 할당된 모든 리소스를 소모하는 경우 할당량이 보충될 때까지 리소스를 사용할 수 없게 됩니다. 즉, 할당량이 보충될 때까지 애플리케이션이 작동하지 않을 수도 있습니다.

요청을 시작하는 데 필요한 리소스의 경우, 리소스가 대폭 감소되면 App Engine에서 요청 핸들러를 호출하는 대신 기본적으로 요청의 HTTP 403 또는 503 오류 코드를 반환합니다. 이와 같이 작동하는 리소스는 다음과 같습니다.

  • 수신 및 발신 대역폭
  • 인스턴스 시간

팁: 애플리케이션이 할당량을 초과하면 커스텀 오류 페이지를 제공하도록 애플리케이션을 구성할 수 있습니다. 자세한 내용은 Python(2.7, 3.7), 자바, Go, PHP(5.5, 7.2) 또는 Node.js의 구성 파일 참조를 확인하세요.

그 밖의 모든 리소스의 경우, 리소스가 대폭 감소되었을 때 애플리케이션에서 리소스를 사용하려고 시도하면 예외가 발생합니다. 애플리케이션에서 이 예외를 포착해 처리(예: 사용자에게 오류 메시지 표시)합니다. 이러한 예외는 Python API에서 apiproxy_errors.OverQuotaError이고 자바 API에서 com.google.apphosting.api.ApiProxy.OverQuotaException입니다. Go API에서 appengine.IsOverQuota 함수는 이 오류가 사용 가능한 할당량 부족으로 인한 API 호출 실패를 나타내는지 여부를 보고합니다.

다음 예시에서는 이메일 관련 할당량이 초과한 경우 SendMessage() 메서드에 의해 발생할 수 있는 OverQuotaError를 어떻게 포착하는지 보여줍니다.

try: mail.SendMessage(to='test@example.com',
from='admin@example.com', subject='Test Email', body='Testing') except
apiproxy_errors.OverQuotaError, message: # Log the error. logging.error(message) # Display an
informative message to the user. self.response.out.write('The email could not be sent. ' 'Please try
again later.')

앱이 기본 한도를 초과하나요? 메일 할당량을 늘려야 하면 SendGrid를 사용하여 이메일을 보내세요. 그 밖의 할당량을 늘리려면 실버, 골드, 플래티넘 서포트 패키지가 있는 경우에는 지원팀 담당자에게 연락하여 처리량 한도를 높여 달라고 요청하세요. 그렇지 않은 경우에는 Google Cloud Console에서 특정 할당량을 선택한 다음 할당량 수정을 클릭하여 추가 할당량 요청을 제출하세요.

App Engine 가변형 환경의 할당량

App Engine 가변형 환경에 애플리케이션을 배포하는 경우 일부 Google Cloud Platform 리소스가 사용됩니다. 수정할 수는 없지만 할당량에 집계되는 리소스입니다.

리소스

애플리케이션에서 할당량에 따라 다음 리소스를 사용할 수 있습니다. 청구 가능한 한도를 기준으로 측정되는 리소스에는 '(청구 가능)'이라고 표시됩니다. 리소스 용량은 24시간 동안 할당된 양을 의미합니다.

추가 리소스의 비용은 가격 책정 페이지에 나와 있습니다.

기본 Cloud Storage 버킷

기본 Cloud Storage 버킷은 아래와 같이 일일 사용량에 무료 할당량이 적용됩니다. 이 무료 기본 버킷은 프로젝트의 Google Cloud Console App Engine 설정 페이지에서 만들 수 있습니다.

다음 할당량은 특히 기본 버킷 사용 시 적용됩니다. 할당량에 대한 설명은 Cloud Storage Multi-Regional 버킷 가격 책정을 참조하세요.

리소스 기본 한도
기본 Cloud Storage 버킷에 저장된 데이터 처음 5GB까지 무료, 최대 한도 없음
기본 Cloud Storage 버킷 A등급 작업 처음 작업 20,000개/일까지 무료, 최대 한도 없음
기본 Cloud Storage 버킷 B등급 작업 처음 작업 50,000개/일까지 무료, 최대 한도 없음
기본 Cloud Storage 버킷 네트워크 이그레스 발신 대역폭 할당량까지 무료, 최대 한도 없음

Blobstore

다음 할당량은 특히 blobstore 사용 시 적용됩니다.

Blobstore 저장 데이터
blobstore에 저장된 총 데이터 양입니다. 유료 및 무료 앱 모두 사용할 수 있습니다.
리소스 기본 한도
Blobstore 저장 데이터 처음 5GB까지 무료, 최대 한도 없음

코드 및 정적 데이터 저장용량

정적 데이터 한도
Go를 제외한 모든 언어에서 단일 정적 데이터 파일이 32MB를 초과할 수 없습니다. Go의 한도는 64MB입니다.
총 저장용량
저장용량 할당량은 모든 버전의 앱에 저장된 코드 및 정적 데이터의 총 용량에 적용됩니다. 코드 및 정적 파일의 총 저장 크기는 기본 대시보드 표에 나열됩니다. 개별 크기는 버전 및 백엔드 화면에 각각 표시됩니다. 1GB를 초과한 코드 및 정적 데이터 저장용량에 대해 1GB당 월별 $0.026가 청구됩니다.

Datastore

저장된 데이터(청구 가능) 할당량은 Datastore와 Blobstore의 애플리케이션에 저장된 모든 데이터를 의미합니다. Google Cloud Console의 할당량 세부정보 화면에 있는 'Datastore' 섹션의 다른 할당량은 특히 Datastore 서비스를 의미합니다.

저장된 데이터(청구 가능)

Datastore 항목 및 해당 색인과 Blobstore에 저장된 총 데이터 양입니다.

Datastore에 저장된 데이터로 인해 상당한 오버헤드가 발생할 수 있다는 사실을 알아야 합니다. 이 오버헤드는 연관된 속성의 수와 유형에 따라 달라지며 내장 색인 및 커스텀 색인에서 사용하는 공간이 포함됩니다. Datastore에 저장된 항목마다 다음과 같은 메타데이터가 필요합니다.

  • 종류, ID 또는 키 이름을 포함한 항목 키 및 상위 항목의 키
  • 각 속성의 이름 및 값 - Datastore에는 스키마가 없으므로 각 속성의 이름을 특정 항목의 속성 값과 함께 저장해야 합니다.
  • 이 항목을 참조하는 내장 및 커스텀 색인 행 - 각 행에는 항목 종류, 색인 정의에 따른 속성 값 개수, 항목 키가 포함됩니다.

Bigtable 수준에서 항목 및 색인을 저장하는 데 필요한 메타데이터에 대한 완전한 분류는 항목 및 색인 저장 방법을 참조하세요.

색인 수
애플리케이션에 존재하는 Datastore 색인의 수입니다. 여기에는 과거에 만든 색인으로서 애플리케이션 구성에는 더 이상 표시되지 않으나 삭제되지 않은 색인도 포함됩니다. 한도에 대한 자세한 내용은 Datastore 한도 페이지를 참조하세요.
쓰기 작업
Datastore 쓰기 작업의 총 개수입니다.
읽기 작업
Datastore 읽기 작업의 총 개수입니다.
소규모 작업
Datastore 소규모 작업의 총 개수입니다. 소규모 작업에는 Datastore ID 또는 키 전용 쿼리를 할당하는 호출이 포함됩니다.
리소스 기본 한도
저장된 데이터(청구 가능) 1GB까지 무료, 최대 한도 없음.
무료 할당량을 초과하면 요금이 적용됨
색인 수 200
항목 읽기 50,000회 무료, 최대 한도 없음.
무료 할당량을 초과하면 요금이 적용됨
항목 쓰기 20,000회 무료, 최대 한도 없음.
무료 할당량을 초과하면 요금이 적용됨
항목 삭제 20,000회 무료, 최대 한도 없음.
무료 할당량을 초과하면 요금이 적용됨
소규모 작업 무제한

참고: Datastore 관리자Datastore 뷰어에 의해 생성된 Datastore 작업은 애플리케이션 할당량으로 집계됩니다.

배포

각 App Engine 애플리케이션에서는 일일 10,000회까지 배포할 수 있습니다.

배포 시 Cloud Build가 Container Registry에 저장된 컨테이너 이미지를 빌드합니다. 이미지별로 소비한 저장공간 총합이 무료 등급을 초과하면 요금이 발생합니다.

인스턴스 시간

인스턴스 사용량은 인스턴스 업타임을 기준으로 시간 단위 요금에 따라 청구됩니다.

'F' 및 'B' 인스턴스 클래스(또는 '프런트엔드' 및 '백엔드' 인스턴스 클래스)에는 별도의 무료 할당량이 있습니다. App Engine 서비스를 사용하는 경우 서비스의 인스턴스 클래스에 따라 적용되는 할당량이 결정됩니다.

리소스 무료 할당량
'F' 인스턴스 일일 28시간 무료
'B' 인스턴스 일일 9시간 무료

인스턴스 시간은 인스턴스가 시작될 때부터 발생하며, 인스턴스에 지정된 확장 유형에 따라 아래 설명과 같이 발생이 종료됩니다.

  • 기본 또는 자동 확장: 인스턴스가 마지막 요청 처리를 완료한 후 15분이 지나면 발생이 종료됩니다.
  • 수동 확장: 인스턴스가 종료된 후 15분이 지나면 발생이 종료됩니다.

App Engine이 생성한 비활성 인스턴스의 수가 Cloud Console 성능 설정 탭에 지정된 최대 인스턴스 수를 초과할 경우 초과한 인스턴스는 인스턴스 시간을 발생시키지 않습니다.

로그

Logs API는 로그 데이터를 가져올 때 측정됩니다.

로그 수집 할당량은 애플리케이션의 요청 로그 및 애플리케이션 로그 데이터를 참조합니다. App Engine 앱의 로깅은 Google Cloud의 작업 제품군에서 제공합니다. 요율 및 한도에 대한 자세한 내용은 Google Cloud의 작업 제품군 가격 책정을 참조하세요.

메일

App Engine은 이메일 사용에 대해 각 수신자에게 전송된 모든 이메일을 집계해 '메시지 단위'로 요금을 청구합니다. 예를 들어 10명의 수신자에게 하나의 이메일을 전송하면 10개의 메시지로 집계됩니다.

메시지 전송
애플리케이션에서 전송한 메시지의 총 개수입니다. 최대 메시지 전송 할당량은 애플리케이션의 첫 요금을 지불할 때까지 무료 수준으로 유지됩니다.
관리자 메시지 전송
애플리케이션에서 애플리케이션 관리자에게 전송된 메시지의 총 개수입니다. 헤더, 첨부파일, 본문을 포함한 각 관리자 이메일의 총 크기 제한은 16KB입니다.
메시지 본문 데이터 전송
이메일 메시지 본문에 포함된 데이터 전송량입니다. 발신 대역폭 할당량으로도 집계됩니다.
첨부파일 전송
이메일 메시지와 함께 전송된 첨부파일의 총 개수입니다.
첨부파일 데이터 전송
이메일 메시지의 첨부파일로 전송된 데이터 양입니다. 발신 대역폭 할당량으로도 집계됩니다.
리소스 기본 일일 한도 최대 속도
이메일 수신자 메시지 100개 메시지 8개/분
이메일을 수신하는 관리자 메일 5,000개 메일 24개/분
메시지 본문 데이터 전송 60MB 340KB/분
첨부파일 전송 첨부파일 2,000개 첨부파일 8개/분
첨부파일 데이터 전송 100MB 10MB/분

Mail API로 최대 50의 승인된 발신자를 추가할 수 있습니다.

일일 메일 할당량을 초과한 메일 전송

앱에서 메일을 보내기 위해 더 많은 할당량이 필요한 경우 SendGrid, Mailjet, Mailgun 등 타사 메일 제공업체를 이용할 수 있습니다.

요청

발신 대역폭(청구 가능)

요청에 응답해 애플리케이션이 전송한 데이터의 양입니다.

여기에는 다음이 포함됩니다.

  • 애플리케이션 서버, 정적 파일 서버 또는 Blobstore에서 보안 요청 및 비보안 요청에 응답해 제공하는 데이터
  • 이메일 메시지로 전송되는 데이터
  • URL 가져오기 서비스에서 전송하는 발신 HTTP 요청의 데이터
수신 대역폭

요청을 통해 애플리케이션에서 수신한 데이터 양입니다. 각 수신 HTTP 요청은 32MB를 초과할 수 없습니다.

여기에는 다음이 포함됩니다.

  • 보안 요청 및 비보안 요청으로 애플리케이션에서 수신하는 데이터
  • Blobstore에 업로드한 데이터
  • HTTP 요청에 응답해 URL 가져오기 서비스에서 수신한 데이터
보안 발신 대역폭
요청에 응답해 보안 연결을 통해 애플리케이션에서 전송한 데이터의 양입니다. 보안 발신 대역폭은 발신 대역폭 할당량으로도 집계됩니다.
보안 수신 대역폭
요청으로 보안 연결을 통해 애플리케이션에서 수신한 데이터의 양입니다. 보안 수신 대역폭은 수신 대역폭 할당량으로도 집계됩니다.
리소스 일일 한도 최대 속도
발신 대역폭(청구 가능, HTTPS 포함) 1GB까지 무료, 최대 14,400GB 10GB/분
수신 대역폭(HTTPS 포함) 없음 없음

검색의 무료 할당량은 아래 표에 나와 있습니다. 각 검색 호출 유형에 관한 자세한 설명은 자바, Python, Go 문서를 참조하세요.

Search API 리소스에 대한 요금은 가격 책정 일정에 안내된 가격에 따라 청구됩니다.

리소스 또는 API 호출 무료 할당량
총 저장용량(문서 및 색인) 0.25GB
쿼리 쿼리 1000개/일
색인에 문서 추가 0.01GB/일

애플리케이션 콘솔 할당량 섹션에 API 요청의 원래 수가 나와 있습니다. 단일 호출로 여러 문서에 대한 색인을 생성하는 경우 문서 수만큼 호출 수가 늘어납니다.

Search API는 이 같은 한도를 적용해 서비스의 안정성을 보장합니다.

  • 앱 및 색인의 분당 쿼리 실행 누적 시간 100분
  • 추가/삭제되는 문서 분당 15,000개
또한 색인당 저장용량이 10GB로 제한됩니다. 앱에서 이 용량을 초과하려고 하면 할당량 부족 오류가 반환됩니다. Google Cloud Console의 App Engine Search 페이지에서 요청을 제출하면 이 한도를 최대 200GB까지 늘릴 수 있습니다.

참고: 한도는 분 단위로 적용되지만 Cloud Console에는 각 항목의 일일 총계가 표시됩니다. 실버, 골드 또는 플래티넘 지원을 신청한 고객은 지원팀 담당자에게 문의하여 처리량 한도를 상향 요청할 수 있습니다.

태스크 큐

Task Queue API 호출
애플리케이션에서 태스크를 큐에 추가하기 위해 Task Queue API를 호출한 총 횟수입니다.
태스크 큐에 저장된 태스크 수
애플리케이션에서 큐에 추가했지만 아직 실행되지 않은 태스크의 총 개수입니다.
태스크 큐에 저장된 태스크 바이트
애플리케이션에서 큐에 추가했지만 아직 실행되지 않은 태스크에서 사용한 바이트입니다.

태스크가 실행되면 관련 요청이 애플리케이션 요청 할당량으로 집계됩니다.

이 한도는 모든 태스크 큐에 적용됩니다.

리소스 일일 한도 최대 속도
Task Queue API 호출 1,000,000,000 해당 없음
태스크 큐 관리 호출(Cloud Console 사용) 10,000 해당 없음
리소스 기본 한도
태스크 큐에 저장된 태스크 수 10,000,000,000개
태스크 큐에 저장된 태스크 바이트 없음
최대 큐 수(push 및 pull 큐 포함, 기본 큐 제외) 큐 100개

참고: 태스크가 실행되거나 삭제되면 태스크에서 사용하는 저장용량이 다시 확보됩니다. 저장용량 할당량은 정기적으로 업데이트되며 회수된 공간이 즉시 표시되지 않을 수도 있습니다. 큐 구성을 조정하여 저장된 태스크 바이트 한도를 구성할 수 있습니다. 자세한 내용은 Python, 자바, Go, PHP 문서를 참조하세요.

다음 한도는 유형에 따라 태스크 큐에 적용됩니다.

push 큐 한도
최대 태스크 크기100KB
큐 실행 비율초당 태스크 호출 500개/큐
태스크의 최대 카운트다운/ETA현재 날짜 및 시간부터 30일간
한 배치에 추가할 수 있는 최대 태스크 수태스크 100개
한 트랜잭션에 추가할 수 있는 최대 태스크 수태스크 5개
기본 최대 태스크 큐 수큐 100개, 상향 요청은 지원팀에 문의
pull 큐 한도
최대 태스크 크기1MB
태스크의 최대 카운트다운/ETA현재 날짜 및 시간부터 30일간
한 배치에 추가할 수 있는 최대 태스크 수태스크 100개
한 트랜잭션에 추가할 수 있는 최대 태스크 수태스크 5개
단일 작업에서 임대할 수 있는 최대 태스크 수태스크 1000개
한 태스크 배치 임대 시의 최대 페이로드 크기32MB
기본 최대 태스크 큐 수큐 100개, 상향 요청은 지원팀에 문의

크론

다음 할당량은 특히 크론 작업에 적용됩니다.

크론 작업
크론 작업의 개수입니다.
리소스 기본 한도
크론 작업 크론 작업 250개

URL 가져오기

URL Fetch API 호출
애플리케이션에서 HTTP 또는 HTTPS 요청을 수행하기 위해 URL Fetch 서비스에 액세스한 총 횟수입니다.
URL Fetch로 데이터 전송
요청으로 URL Fetch 서비스에 전송된 데이터 양입니다. 발신 대역폭 할당량으로도 집계됩니다.
URL Fetch에서 데이터 수신
응답으로 URL Fetch 서비스에서 수신된 데이터 양입니다. 수신 대역폭 할당량으로도 집계됩니다.
리소스 일일 한도 최대 속도
UrlFetch API 호출 호출 860,000,000개 호출 660,000개/분
UrlFetch 데이터 전송 4.5TB 3,600MB/분
UrlFetch 데이터 수신 4.5TB 3,600MB/분