사용 및 제한

이 가이드를 참조하여 Cloud Firestore 한도를 이해하고 주의사항을 포함한 Cloud Firestore 비용에 대한 자세한 내용은 Cloud Firestore 가격 책정을 참조하세요.

사용량 모니터링

Firebase Console에서 Cloud Firestore 사용량을 열어 Cloud Firestore 사용량을 모니터링할 수 있습니다. 대시보드를 사용하여 여러 기간에 걸친 사용량을 측정할 수 있습니다.

Google Cloud Console의 세부 사용량

Firebase 프로젝트를 만들면 Google Cloud 프로젝트도 생성됩니다. Google Cloud 콘솔의 Cloud Firestore API 할당량App Engine 할당량 페이지에서는 Cloud Firestore 사용량 및 할당량 정보를 추적합니다.

무료 할당량

Cloud Firestore는 비용 없이 (default) 데이터베이스를 시작할 수 있는 무료 할당량을 제공합니다. 무료 할당량은 아래에 나와 있습니다. 할당량이 더 필요하면 Google Cloud 프로젝트에 결제를 사용 설정해야 합니다.

할당량은 일 단위로 적용되며 태평양 표준시 자정에 재설정됩니다.

(default) 데이터베이스만 무료 할당량을 받을 수 있습니다.

무료 등급 할당량
저장된 데이터 1GiB
문서 읽기 50,000/일
문서 쓰기 20,000/일
문서 삭제 20,000/일
아웃바운드 데이터 전송 10GiB/월

다음 작업 및 기능에는 무료 사용량이 포함되지 않습니다. 다음 기능을 사용하려면 결제를 사용 설정해야 합니다.

  • 이름이 지정된(기본이 아닌) 데이터베이스 사용
  • TTL 삭제
  • PITR 데이터
  • 데이터 백업
  • 복원 작업

이러한 기능에 요금이 청구되는 방식에 대한 자세한 내용은 스토리지 가격 책정을 참조하세요.

표준 한도

다음 표에서는 Cloud Firestore에 적용되는 한도를 보여줍니다. 달리 명시하지 않는 한 엄격한 한도입니다.

데이터베이스

한도 세부정보
프로젝트당 최대 데이터베이스 수

100

지원팀에 문의하여 이 한도 상향을 요청할 수 있습니다.

컬렉션, 문서, 필드

한도 세부정보
컬렉션 ID 제약조건
  • 유효한 UTF-8 문자여야 합니다.
  • 1,500바이트 이하여야 합니다.
  • 슬래시(/)를 포함할 수 없습니다.
  • 마침표 하나(.) 또는 2개(..)로만 구성할 수 없습니다.
  • 정규 표현식(__.*__)과 일치할 수 없습니다.
하위 컬렉션 최대 심도 100
문서 ID 제약조건
  • 유효한 UTF-8 문자여야 합니다.
  • 1,500바이트 이하여야 합니다.
  • 슬래시(/)를 포함할 수 없습니다.
  • 마침표 하나(.) 또는 2개(..)로만 구성할 수 없습니다.
  • 정규 표현식(__.*__)과 일치할 수 없습니다.
  • Datastore 항목을 Firestore 데이터베이스로 가져오면 숫자 항목 ID가 __id[0-9]+__로 노출됩니다.
문서 이름 최대 크기 6KiB
문서 최대 크기 1MiB(1,048,576바이트)
필드 이름 제약조건 유효한 UTF-8 문자여야 합니다.
필드 이름 최대 크기 1,500바이트
필드 경로 제약조건
  • 마침표 하나(.)로 필드 이름을 구분해야 합니다.
  • 점으로 구분된(.) 세그먼트 문자열로 전달될 수 있습니다. 여기서 각 세그먼트는 간단한 필드 이름이나 따옴표로 묶인 필드 이름(아래에 정의됨)입니다.
단순한 필드 이름은 다음 조건을 모두 충족하는 이름입니다.
  • 문자(a-z, A-Z, 0-9)와 밑줄(_)만 포함
  • 0-9로 시작하지 않음
따옴표로 묶인 필드 이름은 백틱 문자(`)로 시작하고 끝납니다. 예를 들어 foo.`x&y`foo 필드 아래에 중첩된 x&y 필드를 참조합니다. 백틱 문자로 필드 이름을 구성하려면 백틱 문자를 백슬래시 문자(\)로 이스케이프 처리합니다. 편의상 필드 경로를 FieldPath 객체로 전달하여 따옴표로 묶인 필드 이름을 피할 수 있습니다(예시는 자바스크립트 FieldPath 참조).
필드 경로 최대 크기 1,500바이트
필드 값 최대 크기 1MiB - 89바이트(1,048,487바이트)
지도 또는 배열의 필드 최대 심도

20

지도 및 배열 필드는 객체의 전체 깊이에 한 레벨을 추가합니다. 예를 들어 다음 객체의 총 깊이는 3단계입니다.


{
  nested_map: {         #depth 1
    nested_array: [     #depth 2
      {
        foo: "bar"      #depth 3
      }
    ]
  }
}
      

쓰기 및 트랜잭션

이러한 한도 외에도 확장을 위한 설계 권장사항을 참조하세요.

한도 세부정보
최대 API 요청 크기 10MiB
트랜젝션 제한 시간 270초(유휴 만료 시간 60초)

색인

다음의 한도는 단일 필드 색인복합 색인에 적용됩니다.

한도 세부정보
데이터베이스의 최대 복합 색인 수
데이터베이스의 최대 단일 필드 구성 수
  • Google Cloud 프로젝트에 결제를 사용 설정하지 않은 경우 200개입니다.

    할당량이 더 필요하다면 Google Cloud 프로젝트에 결제를 사용 설정해야 합니다.

  • Google Cloud 프로젝트에 결제를 사용 설정하면 500개입니다.

하나의 필드 수준 구성은 동일한 필드에 여러 구성을 포함할 수 있습니다. 예를 들어 동일한 필드의 단일 필드 색인 생성 예외와 TTL 정책은 한도에서 1개의 필드 구성으로 집계됩니다.

각 문서의 최대 색인 항목 수

40,000

색인 항목 수는 문서 내 다음 항목의 총합입니다.

  • 단일 필드 색인 항목 수
  • 복합 색인 항목 수

Cloud Firestore에서 문서 및 색인 집합을 색인 항목으로 전환하는 방식을 확인하려면 색인 항목 개수 예시를 참조하세요.

복합 색인의 최대 필드 수 100
색인 항목의 최대 크기

7.5KiB

Cloud Firestore에서 색인 항목 크기를 계산하는 방식을 확인하려면 색인 항목 크기를 참조하세요.

문서의 색인 항목 크기 최대 총합

8MiB

전체 크기는 문서 내 다음 항목의 총합입니다.

  • 문서의 단일 필드 색인 항목 크기 총합
  • 문서의 복합 색인 항목 크기 총합
  • 색인이 지정된 필드 값의 최대 크기

    1,500바이트

    1,500바이트를 초과하는 필드 값은 잘립니다. 잘린 필드 값을 포함하는 쿼리는 일관성 없는 결과를 반환할 수 있습니다.

    TTL(수명)

    한도 세부정보
    데이터베이스의 최대 단일 필드 구성 수
    • Google Cloud 프로젝트에 결제를 사용 설정하지 않은 경우 200개입니다.

      할당량이 더 필요하다면 Google Cloud 프로젝트에 결제를 사용 설정해야 합니다.

    • Google Cloud 프로젝트에 결제를 사용 설정하면 500개입니다.

    하나의 필드 수준 구성은 동일한 필드에 여러 구성을 포함할 수 있습니다. 예를 들어 동일한 필드의 단일 필드 색인 생성 예외와 TTL 정책은 한도에서 1개의 필드 구성으로 집계됩니다.

    내보내기/가져오기

    다음 한도는 관리형 가져오기 및 내보내기 작업에 적용됩니다.

    한도 세부정보
    프로젝트에 분당 허용되는 내보내기 및 가져오기 요청 최대 총합 20
    최대 내보내기 및 가져오기 동시 실행 수 50
    내보내기 및 가져오기 요청의 최대 컬렉션 ID 필터 수 100

    보안 규칙

    한도 세부정보
    요청당 최대 exists(), get(), getAfter() 호출 수
    • 단일 문서 요청 및 쿼리 요청의 경우 10입니다.
    • 여러 문서 읽기, 트랜잭션, 일괄 쓰기의 경우 20입니다. 이전의 한도인 10도 각 작업에 적용됩니다.

      예를 들어 3개의 쓰기 작업으로 일괄 쓰기 요청을 만들고 보안 규칙이 2회의 문서 액세스 호출을 사용하여 각 쓰기를 검증한다고 가정해 봅니다. 이 경우 각 쓰기는 10회의 액세스 호출 중 2회를 사용하고 일괄 쓰기 요청은 20회의 액세스 호출 중 6회를 사용합니다.

    한도 중 하나라도 초과하면 권한 거부 오류가 발생합니다.

    일부 문서 액세스 호출은 캐시될 수 있으며 캐시된 호출은 한도에 적용되지 않습니다.

    중첩된 match 문 최대 심도 10
    중첩된 match 문 집합 내에서 허용되는 최대 경로 길이(경로 세그먼트) 100
    중첩된 match 문 집합 내에서 허용되는 최대 경로 캡처 변수 개수 20
    함수 호출 최대 심도 20
    최대 함수 인수 개수 7
    함수당 최대 let 변수 결합 개수 10
    재귀 또는 순환 함수 호출의 최대 개수 0(허용되지 않음)
    요청당 평가되는 최대 표현식 수 1,000
    규칙 세트의 최대 크기 규칙 세트는 다음 두 가지 크기 제한을 준수해야 합니다.
    • Firebase Console 또는 firebase deploy를 사용하여 CLI에서 게시된 규칙 세트 텍스트 소스 크기는 256KB로 제한됩니다.
    • Firebase가 소스를 처리하고 백엔드에서 활성화할 때 생성되는 컴파일된 규칙 세트의 크기는 250KB로 제한됩니다.

    지출 관리

    예기치 않은 요금이 청구되지 않도록 월 예산 및 알림을 설정하세요.

    월 예산 설정

    Cloud Firestore 비용을 추적하려면 Google Cloud 콘솔에서 월 예산을 만드세요. 예산에 따라 사용량이 제한되지는 않지만, 계획된 월 비용에 근접하거나 이를 초과할 때 알림을 받도록 설정할 수 있습니다.

    예산을 설정하려면 Google Cloud 콘솔의 결제 섹션으로 이동하여 Cloud Billing 계정의 예산을 만듭니다. 기본 알림 설정을 사용할 수도 있고 다양한 월 예산 비율에 대한 알림을 받도록 수정할 수도 있습니다.

    예산 및 예산 알림 설정에 대해 자세히 알아보세요.