가격 책정

이 문서에서는 Firestore 가격 책정 세부정보를 설명합니다. 또한 Firestore에서 지출을 제한하고 모니터링하는 방법도 알려줍니다.

USD 외의 통화로 지불하는 경우 Cloud Platform SKU에 해당 통화로 표기된 가격이 적용됩니다.

가격 책정 개요

Firestore를 사용할 경우 다음 항목에 대한 요금이 부과됩니다.

  • 사용자가 수행하는 읽기, 쓰기, 삭제 횟수
  • 메타데이터 및 색인에 대한 오버헤드 등 데이터베이스에서 사용되는 스토리지 용량
  • 사용하는 네트워크 대역폭의 양

스토리지 및 대역폭 사용량은 기가바이트(GB)로 계산되며, 1GB = 230바이트입니다. 모든 요금은 일 단위로 누적됩니다.

다음 섹션에서는 Firestore 사용 요금 청구 방식을 자세히 설명합니다.

위치별 가격 책정

다음 표에는 Firestore 위치별 읽기, 쓰기, 삭제, 스토리지에 대한 가격이 나와 있습니다.

USD 외의 통화로 지불하는 경우 Cloud Platform SKU에 해당 통화로 표기된 가격이 적용됩니다.

읽기, 쓰기, 삭제

Firestore에서 수행하는 각 문서 읽기, 쓰기, 삭제에 요금이 부과됩니다.

쓰기 및 삭제 요금 부과 방식은 간단합니다. 쓰기의 경우 각 set 또는 update 작업은 쓰기 1회로 계산됩니다.

읽기 요금에는 유의해야 할 미묘한 부분이 있습니다. 다음 섹션에서 이를 자세히 설명합니다.

쿼리 결과 수신 대기

Firestore를 사용하면 쿼리 결과를 수신 대기하고 쿼리 결과가 변경되면 실시간으로 업데이트를 받을 수 있습니다.

쿼리 결과를 수신 대기하면 결과 집합의 문서가 추가되거나 업데이트될 때마다 읽기 요금이 부과됩니다. 또한 결과 집합에서 문서가 삭제될 때도 문서가 변경되므로 읽기 요금이 부과됩니다. 반면, 문서 자체가 삭제되면 읽기 요금이 부과되지 않습니다.

또한 리스너의 연결이 30분 이상 끊어지면(예: 사용자가 오프라인 상태로 전환된 경우) 새 쿼리를 보냈을 때처럼 읽기 요금이 부과됩니다.

대규모 결과 집합 관리

Firestore에는 많은 결과를 반환하는 쿼리를 관리할 때 유용한 몇 가지 기능이 있습니다.

  • 커서: 장기 실행 쿼리를 재개할 수 있습니다.
  • 페이지 토큰: 쿼리 결과를 페이지화하는 데 도움이 됩니다.
  • 한도: 검색할 결과의 수를 지정합니다.
  • 오프셋: 문서를 정해진 수만큼 건너뛸 수 있습니다.

커서, 페이지 토큰, 한도를 사용할 경우 부과되는 추가 요금은 없습니다. 이러한 기능을 사용하면 실제로 필요한 문서만 읽어 비용을 절약할 수 있습니다.

하지만 오프셋이 포함된 쿼리를 보내면 건너뛴 문서마다 읽기 요금이 부과됩니다. 예를 들어 10개의 오프셋을 사용하는 쿼리에서 문서 1개를 반환하면 읽기 11회에 대한 요금이 부과됩니다. 이 같은 추가 비용이 부과되므로 가능하다면 항상 오프셋 대신 커서를 사용해야 합니다.

문서 읽기 외의 쿼리

컬렉션 ID 목록 요청과 같은 문서 읽기 외의 쿼리는 문서 읽기 1회에 대한 요금이 부과됩니다. 전체 결과 집합을 가져오는 데 요청이 여러 개 필요한 경우(예: 페이지화를 사용하는 경우) 요청별로 요금이 청구됩니다.

쿼리에 부과되는 최소 요금

쿼리가 결과를 반환하지 않더라도 수행하는 쿼리마다 문서 읽기 1회에 해당하는 최소 요금이 부과됩니다.

Firestore 보안 규칙

모바일 및 웹 클라이언트 라이브러리의 경우 Firestore 보안 규칙에서 exists(), get() 또는 getAfter()를 사용하여 데이터베이스에서 하나 이상의 문서를 읽는다면 다음과 같은 추가 읽기 요금이 부과됩니다.

  • Firestore 보안 규칙을 평가하는 데 필요한 읽기에 대해 요금이 부과됩니다.

    예를 들어 규칙이 3개의 문서를 참조하지만 Firestore에서는 규칙 평가를 위해 두 문서만 읽으면 될 경우 종속 문서에 대한 2회의 추가 읽기 요금이 부과됩니다.

    규칙이 문서를 여러 번 참조하더라도 읽기 요금은 종속 문서당 1회만 청구됩니다.

  • 규칙 평가는 요청별로 한 번만 요금이 부과됩니다.

    따라서 여러 개의 문서를 읽는 데 필요한 요청의 수가 더 적으므로 문서를 한 번에 하나씩 읽는 것보다 여러 문서를 읽는 편이 비용이 적게 듭니다.

  • 쿼리 결과를 수신 대기하면 다음과 같은 경우에 규칙 평가에 대한 요금이 부과됩니다.

    • 쿼리를 보낼 때
    • 쿼리 결과가 업데이트될 때마다
    • 사용자 기기가 오프라인 상태로 전환되었다가 온라인 상태가 될 때마다
    • 규칙이 업데이트될 때마다
    • 규칙에서 종속 문서를 업데이트할 때마다

스토리지 크기

스토리지 오버헤드를 포함해 Firestore에 저장되는 데이터양에 대한 요금이 부과됩니다. 오버헤드에는 메타데이터, 자동 색인, 복합 색인이 포함됩니다. Firestore에 저장된 각 문서에는 다음과 같은 메타데이터가 필요합니다.

  • 컬렉션 ID 및 문서 이름을 포함한 문서 ID
  • 각 필드의 이름 및 값: Firestore에는 스키마가 없으므로 문서의 각 필드 이름을 필드 값과 함께 저장해야 합니다.
  • 문서를 참조하는 단일 필드 및 복합 색인: 각 색인 항목에는 컬렉션 ID, 색인 정의에 따른 여러 필드 값, 그리고 문서 이름이 포함됩니다.

스토리지 크기 계산에서 Firestore 스토리지 계산 방법을 알아보세요. Cloud Console에서 App Engine 할당량 세부정보 페이지로 이동하면 데이터베이스에서 사용하는 스토리지 용량을 볼 수 있습니다.

네트워크 대역폭

다음 섹션에 나와 있듯이 Firestore 요청에서 사용된 네트워크 대역폭에 대한 요금이 부과됩니다. Firestore 요청의 네트워크 대역폭 비용은 요청의 응답 크기, Firestore 데이터베이스의 위치, 응답의 대상에 따라 달라집니다.

Firestore는 직렬화된 메시지 형식을 기준으로 응답 크기를 계산합니다. SSL 오버헤드와 같은 프로토콜 오버헤드는 네트워크 대역폭 사용량에 포함되지 않습니다. Firestore 보안 규칙에서 거부된 요청도 네트워크 대역폭 사용량에 포함되지 않습니다.

사용된 네트워크 대역폭 양을 확인하려면 Cloud Console을 사용해 결제 데이터를 파일로 내보내면 됩니다.

일반 네트워크 가격 책정

Google Cloud Platform에서 발생한 요청(예: Google Compute Engine에서 실행되는 애플리케이션의 요청)은 다음과 같이 요금이 부과됩니다.

트래픽 유형 가격
인그레스 무료
한 리전 내에서의 이그레스 무료
동일한 멀티 리전에 속한 리전 간의 이그레스 무료
미국 내 리전 간의 이그레스(GiB당) $0.01(매월 첫 10GiB는 무료)
미국 리전 간 트래픽을 제외한 리전 간의 이그레스 Google Cloud Platform 인터넷 이그레스 요금

USD 외의 통화로 지불하는 경우 Cloud Platform SKU에 해당 통화로 표기된 가격이 적용됩니다.

인터넷 이그레스 요율

다음과 같은 경우 인터넷 이그레스 요금이 부과됩니다.

  • 미국 리전 간 트래픽을 제외한 리전 간의 Google Cloud 요청
  • Google Cloud 외부의 요청(예: 사용자의 휴대기기)

사용량 모니터링

App Engine 할당량 페이지에서 일일 Firestore 사용량을 확인할 수 있습니다.

할당량 페이지로 이동

지출 관리

지출을 관리하려면 월예산 및 알림을 설정합니다.

Google Cloud 예산 및 알림

Google Cloud에서는 모든 Google Cloud 서비스의 월예산을 설정할 수 있습니다. 월예산을 사용해 Firestore의 네트워크 대역폭 비용을 포함한 전체적인 Google Cloud 비용을 모니터링하세요. 예산을 설정한 후에 알림을 설정할 수 있으며 비용이 늘어 예산에 가까워지면 이메일 알림이 전송됩니다.

App Engine 지출 한도에 반영되는 비용이 월예산에도 반영됩니다.

이 안내를 따라 Cloud Console에서 월예산을 설정하고 알림을 만드세요.

App Engine 지출 한도

App Engine에서는 App Engine은 물론 Datastore 및 Firestore 데이터베이스를 포함한 관련 리소스의 일일 지출 한도를 설정할 수 있습니다. 이 한도는 근사치이지만 리소스 사용량 급증을 처리할 만큼 충분히 커야 합니다. 일일 지출 한도를 초과하면 무료 할당량에 포함되지 않은 모든 Firestore 작업이 실패합니다.

가격 책정 예시

실제 샘플 앱에서 발생하는 Firestore 청구 비용은 Firestore 청구 예시를 참조하세요.