할당량 및 한도

리전 ID

REGION_ID는 앱을 만들 때 선택한 리전을 기준으로 Google에서 할당하는 축약된 코드입니다. 일부 리전 ID는 일반적으로 사용되는 국가 및 주/도 코드와 비슷하게 표시될 수 있지만 코드는 국가 또는 주/도와 일치하지 않습니다. 2020년 2월 이후에 생성된 앱의 경우 REGION_ID.r이 App Engine URL에 포함됩니다. 이 날짜 이전에 만든 기존 앱의 경우 URL에서 리전 ID는 선택사항입니다.

리전 ID에 대해 자세히 알아보세요.

이 문서에서는 App Engine에 적용되는 할당량한도를 설명합니다.

할당량은 하드웨어, 소프트웨어, 네트워크 구성요소를 포함하여 Google Cloud 프로젝트에서 사용할 수 있는 공유 Google Cloud 리소스의 양을 제한합니다. 따라서 할당량은 다음을 수행하는 시스템에 속합니다.

  • Google Cloud 제품 및 서비스 사용 또는 소비량을 모니터링합니다.
  • 공정성 보장 및 사용량 급증 방지 등의 이유로 리소스 소비를 제한합니다.
  • 사전 정의된 제한사항을 자동으로 적용하는 구성을 유지합니다.
  • 할당량을 요청하거나 변경할 수 있는 수단을 제공합니다.

대부분의 경우 할당량이 초과되면 시스템에서 관련 Google 리소스에 대한 액세스를 즉시 차단하고 수행하려는 작업이 실패합니다. 대부분의 경우 할당량은 각 Google Cloud 프로젝트에 적용되며 해당 Google Cloud 프로젝트를 사용하는 모든 애플리케이션과 IP 주소 전반에 공유됩니다.

App Engine 리소스에도 한도가 있습니다. 이 한도는 할당량 시스템과 관련이 없습니다. 별도로 명시되지 않는 한 한도를 변경할 수 없습니다.

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

할당량 유형

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

  • 무료 할당량: 애플리케이션에 각 리소스를 일정량까지 무료로 제공합니다. 무료 할당량에 대한 자세한 내용은 이 페이지의 리소스 섹션을 참조하세요. 애플리케이션이 무료 할당량을 초과하면 해당 리소스의 추가 사용에 대해 요금이 청구됩니다.

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

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

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

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

팁: 분당 최대 할당량을 적용하면 사이트가 뉴스에 언급되어 트래픽이 급증해도 이를 감당할 수 있습니다. 특정 할당량이 이러한 요구사항을 충족하지 않는다고 판단되면 Issue Tracker에서 의견을 제출하세요. 의견 제출은 할당량 상향 요청이 아님을 유의해 주세요. 하지만 일반적인 사용 사례 기준에서 너무 낮은 할당량이 어느 정도인지를 Google이 이해하는 데 도움이 됩니다.

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

리소스 보충 방법

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

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

리소스 소진 시

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

요청을 시작하는 데 필요한 리소스의 경우, 리소스가 소진되면 App Engine에서 요청 핸들러를 호출하는 대신 기본적으로 요청의 HTTP 403 또는 503 오류 코드를 반환합니다. 이 동작은 인스턴스 시간 리소스에 적용됩니다.

팁: 애플리케이션이 할당량을 초과하면 커스텀 오류 페이지를 제공하도록 애플리케이션을 구성할 수 있습니다. 자세한 내용은 Python(2.7, 3), 자바, Go, PHP(5.5, 7) 또는 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.')

앱이 기본 한도를 초과하나요? Cloud Customer Care에 문의하여 처리량 한도 상향을 요청할 수 있습니다. 메일 할당량을 늘리려면 SendGrid를 사용하여 이메일을 보내세요.

App Engine 가변형 환경의 할당량

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

예를 들어 Compute Engine 리소스 할당량 페이지에서 서비스의 인스턴스 리소스 사용량을 찾을 수 있습니다.

리소스

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

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

서비스, 버전, 인스턴스

배포할 수 있는 최대 서비스 및 버전 수는 앱 가격에 따라 다릅니다. 가변형 환경과 표준 환경 모두 서비스 및 버전에 동일한 한도를 공유합니다. 예를 들어 표준 버전과 가변형 버전이 동일한 앱에 있는 경우 이러한 버전은 동일한 한도로 계산에 포함됩니다.

한도 무료 앱 유료 앱
앱당 최대 서비스 수 5 210
앱당 최대 버전 수 15 210

기본 또는 수동 확장을 사용하는 각 서비스의 인스턴스 수에도 한도가 있습니다.

수동/기본 확장 버전당 최대 인스턴스 수
무료 앱 유료 앱(미국) 유료 앱(EU)
20 25(us-central의 경우 200) 25
애플리케이션 URL의 문자 수에도 한도가 있습니다.
설명 한도
VERSION-dot-SERVICE-dot-PROJECT_ID URL의 프로젝트 URL 최대 문자 수 63

기본 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 버킷 네트워크 이그레스 처음 1GB까지 무료, 최대 한도 없음

Blobstore

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

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

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

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

Datastore 모드의 Firestore(Datastore)

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

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

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

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

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

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

배포

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

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

파일

앱 배포 파일의 총 개수에 다음 할당량이 적용됩니다.

파일 최대
앱당 기본 파일 파일 10,000개
지원팀에 문의하여 상향을 요청하세요.

인스턴스 시간

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

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

리소스 무료 할당량
F1 인스턴스 28 무료 인스턴스 시간/일
B1 인스턴스 9 무료 인스턴스 시간/일

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

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

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

로그

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

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

메일

Mail API 소비는 IAM 할당량 페이지에서 확인할 수 있습니다.

참고: IAM 할당량 페이지에서 애플리케이션의 할당량 소비를 보려면 App Engine 보고 서비스가 프로젝트에 사용 설정되었는지 확인합니다. 서비스를 사용 설정할 수 없으면 사용자 권한과 constraints/serviceuser.services 조직 정책 제약조건을 확인하세요.

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 Fetch 서비스에서 전송하는 발신 HTTP 요청의 데이터
수신 대역폭

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

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

  • 보안 요청 및 비보안 요청으로 애플리케이션에서 수신하는 데이터
  • Blobstore에 업로드한 데이터
  • HTTP 요청에 응답해 URL Fetch 서비스에서 수신한 데이터
보안 발신 대역폭
요청에 응답해 보안 연결을 통해 애플리케이션에서 전송한 데이터의 양입니다.
보안 수신 대역폭
요청으로 보안 연결을 통해 애플리케이션에서 수신한 데이터의 양입니다.

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

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

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

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

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

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

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

태스크 큐

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

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

리소스 일일 한도 최대 속도
태스크 큐 관리 호출(Google Cloud Console 사용) 10,000 해당 없음
리소스 기본 한도
최대 큐 수(push 및 pull 큐 포함, 기본 큐 제외) 큐 100개.

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

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

push 큐 한도
최대 태스크 크기100KB
큐 실행 비율초당 태스크 호출 500개/큐
태스크의 최대 카운트다운/ETA현재 날짜 및 시간부터 30일간
한 배치에 추가할 수 있는 최대 태스크 수태스크 100개
한 트랜잭션에 추가할 수 있는 최대 태스크 수태스크 5개
기본 최대 태스크 큐 수큐 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/분