할당량 및 한도

이 페이지에서는 사용한 만큼만 지불하는 Blaze 요금제에 따른 Cloud Functions의 확장 가능한 사용량 기반 한도를 자세히 설명합니다. 이러한 한도는 함수를 Node.js 10 런타임 환경에 배포하는 Firebase 프로젝트에 적용됩니다.

Blaze 요금제는 넉넉한 양의 호출, 컴퓨팅 시간, 인터넷 트래픽이 무료로 제공됩니다. 하지만 함수 배포 시 함수의 컨테이너에 사용되는 저장공간에 대해 소규모 요금이 부과됩니다. 자세한 내용은 Firebase FAQ를 참조하세요.

Google Cloud Functions의 할당량에는 3가지가 있습니다.

  • 리소스 한도

    함수에서 사용할 수 있는 총 리소스 양에 영향을 줍니다.

  • 시간 제한

    실행할 수 있는 시간에 영향을 줍니다.

  • 비율 한도

    Cloud Functions API를 호출하여 함수를 관리할 수 있는 비율에 영향을 줍니다.

아래에서 다양한 한도 유형에 대해 자세히 설명합니다. 해당하는 경우 Cloud Functions(1세대)와 Cloud Functions(2세대)의 한도 차이를 설명합니다.

리소스 한도

리소스 한도는 함수에서 사용할 수 있는 총 리소스 양에 영향을 줍니다. 리전 범위는 프로젝트별로 적용되며 프로젝트마다 고유한 한도가 유지됩니다.

할당량 설명 한도(1세대) 한도(2세대) 상향 가능성 범위
함수 수 리전당 배포 가능한 함수의 총 개수 1,000 1,000에서 배포된 Cloud Run 서비스 수를 뺀 수 없음 리전별
최대 배포 크기 단일 함수 배포의 최대 크기 소스의 경우 100MB(압축)
소스 및 모듈의 경우 500MB(비압축)
해당 없음 없음 함수당
최대 비압축 HTTP 요청 크기 HTTP 요청에서 HTTP 함수로 전송되는 데이터 10MB 32MB 없음 호출당
최대 비압축 HTTP 응답 크기 HTTP 응답의 HTTP 함수에서 전송되는 데이터 10MB 스트리밍 응답의 경우 10MB
비 스트리밍 응답의 경우 32MB
없음 호출당
이벤트 기반 함수의 최대 이벤트 크기 이벤트에서 백그라운드 함수로 전송되는 데이터 10MB Eventarc 이벤트의 경우 512KB
기존 이벤트의 경우 10MB
없음 이벤트당
최대 함수 메모리 각 함수 인스턴스에서 사용할 수 있는 메모리 양 8GiB 16GiB 없음 함수당

시간 제한

할당량 설명 한도(1세대) 한도(2세대) 상향 가능성 범위
최대 함수 실행 기간 강제 종료되기 전에 함수를 실행할 수 있는 최대 시간 540초 HTTP 함수의 경우 60분
이벤트 기반 함수의 경우 10분
없음 호출당

비율 한도

할당량 설명 한도(1세대) 한도(2세대) 상향 가능성 범위
API 호출(READ) Cloud Functions API를 통해 함수를 설명하거나 나열하는 호출 100초당 5,000 60초당 1,200 1세대 전용 프로젝트당(1세대)
리전당(2세대)
API 호출(WRITE) Cloud Functions API를 통해 함수를 배포하거나 삭제하는 호출 100초당 80 60초당 60 아니요 1 프로젝트당(1세대)
리전당(2세대)
API 호출(CALL) '호출' API에 대한 호출 100초당 16 해당 없음 아니요 2 프로젝트당

확장성

HTTP에서 호출된 Cloud Functions는 수신 트래픽을 처리하기 위해 빠르게 확장되는 반면 백그라운드 함수는 보다 점진적으로 확장됩니다. 함수의 확장 기능은 다음을 포함하여 몇 가지 요인으로 결정됩니다.

  • 함수 실행이 완료되는 데 걸리는 시간(단기 실행 함수는 일반적으로 더 많은 동시 요청을 처리하도록 확장 가능)
  • 콜드 스타트에서 함수를 초기화하는 데 걸리는 시간
  • 함수의 오류율
  • 리전별 부하 및 데이터 센터 용량과 같은 일시적 요인

백그라운드 함수에는 아래 설명처럼 추가 한도가 있습니다. 1세대 HTTP 함수에는 이 한도가 적용되지 않습니다.

백그라운드 함수의 추가 할당량

할당량 설명 한도 상향 가능성 범위 제품 버전
최대 동시 호출 수 단일 함수의 최대 동시 호출 수
예: 각 이벤트를 처리하는 데 100초가 걸릴 경우 호출 비율은 초당 평균 30개로 제한됩니다.
3,000 함수당 1세대만
최대 호출 비율 단일 함수로 처리되는 이벤트의 최대 비율
예: 한 이벤트를 처리하는 데 100ms가 걸릴 경우 동시에 처리되는 요청이 평균 100개여도 호출 비율은 초당 1,000개로 제한됩니다.
초당 1,000 없음 함수당 1세대만
최대 동시 이벤트 데이터 크기 단일 함수의 동시 호출에 수신되는 이벤트의 최대 전체 크기
예: 1MB 크기의 이벤트를 처리하는 데 10초가 걸리는 경우 처음 10개의 이벤트 중 하나를 처리 완료될 때까지 11번째 이벤트는 처리되지 않으므로 평균 비율은 초당 이벤트 1개입니다.
10MB 없음 함수당 1세대 및 2세대
수신 이벤트의 최대 처리량 단일 함수에 수신되는 이벤트의 최대 처리량
예: 이벤트 크기가 1MB인 경우 함수가 100ms 이내에 완료되더라도 호출 비율은 초당 최대 10개입니다.
초당 10MB 없음 함수당 1세대 및 2세대

할당량 한도에 도달하는 경우

함수에서 할당된 모든 리소스를 소진하게 되면 할당량이 보충되거나 상향 조정될 때까지 리소스를 사용할 수 없게 됩니다. 즉, 할당량이 보충되거나 상향 조정되기 전에는 내 함수와 동일한 프로젝트의 다른 모든 함수가 작동하지 않을 수도 있습니다. 리소스 중 하나가 할당량을 초과하고 함수를 실행할 수 없는 경우 함수에서 HTTP 500 오류 코드를 반환합니다.

여기에 나온 기본값 이상으로 할당량을 상향 조정하려면 Cloud Functions 할당량 페이지로 이동하여 수정할 할당량을 선택하고 할당량 수정을 클릭합니다. 그런 다음 사용자 정보에 대한 메시지가 표시되면 해당 정보를 입력하고 선택한 각 할당량에 대한 새 할당량 한도를 입력합니다.

Firebase CLI 배포의 할당량 한도

Firebase CLI가 배포하는 각 함수에 다음과 같은 유형의 비율과 시간 제한이 적용됩니다.

  • API 호출(READ) - 함수 개수에 관계없이 배포당 호출 1번
    • 한도: 100초당 5,000
  • API 호출(WRITE) - 함수당 호출 1번
    • 한도: 100초당 80

Firebase CLI 참조도 확인하세요.