Firestore 가격 책정
이 문서에서는 Firestore 가격 책정 세부정보를 설명합니다.
USD 외의 통화로 지불하는 경우 Cloud Platform SKU에 해당 통화로 표기된 가격이 적용됩니다.
가격 책정 개요
Firestore를 사용할 경우 다음 항목에 대한 요금이 부과됩니다.
- 읽기, 쓰기, 삭제한 문서의 수
- 쿼리를 충족하기 위해 읽은 색인 항목 수. 색인 읽기에 대한 자세한 내용을 참조하세요.
- 메타데이터 및 색인에 대한 오버헤드 등 데이터베이스에서 사용되는 스토리지 용량
- 사용하는 네트워크 대역폭의 양
스토리지 및 대역폭 사용량은 기가바이트(GiB)로 계산되며, 1GiB = 230바이트입니다. 모든 요금은 일 단위로 누적됩니다.
다음 섹션에서는 Firestore 사용 요금 청구 방식을 자세히 설명합니다.
무료 할당량
Firestore는 무료 할당량을 제공하므로
(default)
데이터베이스를 무료로 사용할 수 있습니다 무료 할당량은 아래에 나와 있습니다.
할당량이 더 필요하면 Google Cloud 프로젝트에 결제를 사용 설정해야 합니다.
할당량은 일 단위로 적용되며 태평양 표준시 자정에 재설정됩니다.
(default)
데이터베이스만 무료 할당량을 받을 수 있습니다.
무료 등급 | 할당량 |
---|---|
저장된 데이터 | 1GiB |
문서 읽기 | 50,000/일 |
문서 쓰기 | 20,000/일 |
문서 삭제 | 20,000/일 |
아웃바운드 데이터 전송 | 10GiB/월 |
다음 작업 및 기능에는 무료 사용량이 포함되지 않습니다. 다음 기능을 사용하려면 결제를 사용 설정해야 합니다.
- 기본이 아닌 이름이 지정된 데이터베이스 사용량
- TTL 삭제
- PITR 데이터
- 데이터 백업
- 복원 작업
이러한 기능에 요금이 청구되는 방식에 대한 자세한 내용은 스토리지 가격 책정을 참조하세요.
위치별 가격 책정
다음 표에는 Firestore 위치별 읽기, 쓰기, 삭제, 스토리지에 대한 가격이 나와 있습니다.
USD 외의 통화로 지불하는 경우 Cloud Platform SKU에 해당 통화로 표기된 가격이 적용됩니다.
이름이 지정된 데이터베이스에는 무료 할당량 없음
기본이 아닌 이름이 지정된 데이터베이스를 만들려면 결제를 사용 설정해야 합니다.
이름이 지정된 데이터베이스를 만들거나 삭제하는 데 추가 비용이 들지 않습니다. 이러한 데이터베이스는 무료 할당량을 받을 수 없습니다. 대신 이름이 지정된 데이터베이스에서 발생한 사용량에 따라 요금이 청구됩니다.
읽기, 쓰기, 삭제
쿼리를 충족하기 위해 읽은 문서 및 색인 항목에 대한 요금이 부과됩니다. 현재 위치: 수행하는 각 문서 쓰기 및 삭제에 대해 요금이 부과됩니다.
쓰기 및 삭제 요금 부과 방식은 간단합니다. 쓰기의 경우 각 set
또는 update
작업은 쓰기 1회로 계산됩니다.
읽기 작업 요금에 일부 뉘앙스를 이해하는 데 도움이 될 수 있습니다 다음 섹션에서 이를 자세히 설명합니다.
색인 항목 읽기
최대 1,000개의 색인 항목으로 구성된 일괄 작업마다 읽기 작업 1회의 요금이 부과됩니다. 다음을 제외하고 쿼리로 읽을 수 있습니다.
K-최근접 이웃 벡터 검색어의 경우 1이 청구됩니다. 쿼리에서 읽은 최대 100kNN 벡터 색인 항목의 각 배치에 대한 읽기 작업입니다.
예를 들어
limit: 5
가 포함된 다음 벡터 검색어가 5개의 문서를 반환하고 1550kNN 벡터 색인 항목을 읽습니다. 반환된 문서에 대한 읽기 작업 5회, 읽기 작업 16회에 대한 요금이 청구됩니다. 다음과 같습니다.// Requires single-field vector index const vectorQuery: VectorQuery = db.collection('cities').findNearest('embedding_field', FieldValue.vector([3.0, 1.0, 2.0]), { limit: 5, distanceMeasure: 'EUCLIDEAN' });
범위 필드가 최대 1개인 쿼리에는 색인 항목에 대한 요금이 청구되지 않습니다. 있습니다.
예를 들어 다음 쿼리에는 같음 필드 (
age
) 한 개와 같음 필드 한 개가 포함됩니다. 범위 필드 (start_date
)이며 읽은 색인 항목에 대해 요금이 청구되지 않습니다.db.collection("employees").whereEqualTo("age", 35) .whereGreaterThanOrEqualTo("start_date", new Date(2020, 1, 1))
다음 쿼리에는 2개의 범위 필드 (
age
및start_date
)가 포함되어 있으며, 색인 항목 읽기에 대해 요금이 청구되는 경우:db.collection("employees").whereGreaterThanOrEqualTo("age", 35) .whereGreaterThanOrEqualTo("start_date", new Date(2020, 1, 1))
order by 절에 표시되는 필드는 다음 경우에 범위 필드로 간주됩니다. 쿼리에 다른 범위 필드가 하나 이상 있어야 합니다. 따라서 다음 쿼리에는 두 개의 범위 필드가 포함됩니다. (
age
및start_date
), 색인 항목 읽기에 대해 요금이 청구됩니다.db.collection("employees").whereGreaterThanOrEqualTo("age", 35) .orderBy("start_date")
__name__
필드는 균등 필터에서 사용됩니다. 따라서 다음 쿼리에는 두 개의 범위가 포함되어 있습니다. 필드 (age
및__name__
)를 포함하며, 색인 항목 읽기에 대해 요금이 청구됩니다.db.collection("employees").whereIn("__name__", Arrays.asList("/employees/Alice", "/employees/Bob")) .orderBy("age")
집계 쿼리
집계 쿼리
count()
, sum()
, avg()
등
쿼리에서 읽은 색인 항목에 대해
위에서 설명합니다. 색인 0을 읽는 집계 쿼리의 경우
항목당 1회의 문서 읽기 요금이 부과됩니다.
0개에서 1, 000개 사이의 색인 항목을 읽는 count()
작업을 예로 들 수 있습니다.
문서 읽기 1회에 대한 요금이 청구됩니다 1,500을 읽는 count()
작업의 경우
색인 항목이 있으면 2회의 문서 읽기 요금이 청구됩니다.
사용된 색인 및 읽은 색인 항목에 대해 자세히 알아보려면 다음을 참조하세요. 쿼리 설명.
쿼리 결과 수신 대기
Firestore를 사용하면 쿼리 결과를 수신 대기하고 쿼리 결과가 변경되면 실시간으로 업데이트를 받을 수 있습니다.
쿼리 결과를 수신 대기하면 결과 집합의 문서가 추가되거나 업데이트될 때마다 읽기 요금이 부과됩니다. 또한 결과 집합에서 문서가 삭제될 때도 문서가 변경되므로 읽기 요금이 부과됩니다. 반면, 문서 자체가 삭제되면 읽기 요금이 부과되지 않습니다.
모바일 및 웹 SDK의 리스너 청구는 오프라인 지속성의 사용 설정 여부에 따라 달라집니다.
오프라인 지속성이 사용 설정되고 다음에 대한 리스너의 연결이 해제된 경우 30분 이상 (예: 사용자가 오프라인으로 전환)이 되면 자동으로 실행됩니다. 새로 발행된 것처럼 읽을 수 있고 문서 및 색인 항목에 대해 요금이 부과됨 쿼리합니다.
오프라인 지속성을 사용 중지하면 문서 및 색인 항목은 새 쿼리를 실행한 것처럼 읽히며 연결이 해제되었다가 다시 연결됩니다
대규모 결과 집합 관리
Firestore에는 많은 결과를 반환하는 쿼리를 관리할 때 유용한 몇 가지 기능이 있습니다.
- 커서: 장기 실행 쿼리를 재개할 수 있습니다.
- 페이지 토큰: 쿼리 결과를 페이지화하는 데 도움이 됩니다.
- 한도: 검색할 결과의 수를 지정합니다.
- 오프셋: 문서를 정해진 수만큼 건너뛸 수 있습니다.
커서, 페이지 토큰, 한도를 사용할 경우 부과되는 추가 요금은 없습니다. 이러한 기능을 사용하면 실제로 필요한 문서만 읽어 비용을 절약할 수 있습니다.
하지만 오프셋이 포함된 쿼리를 보내면 건너뛴 문서마다 읽기 요금이 부과됩니다. 예를 들어 10개의 오프셋을 사용하는 쿼리에서 문서 1개를 반환하면 읽기 11회에 대한 요금이 부과됩니다. 이 같은 추가 비용이 부과되므로 가능하다면 항상 오프셋 대신 커서를 사용해야 합니다.
문서 읽기 외의 쿼리
컬렉션 ID 목록 요청과 같은 문서 읽기 외의 쿼리는 문서 읽기 1회에 대한 요금이 부과됩니다. 전체 결과 집합을 가져오는 데 요청이 여러 개 필요한 경우(예: 페이지화를 사용하는 경우) 요청별로 요금이 청구됩니다.
쿼리에 부과되는 최소 요금
쿼리가 결과를 반환하지 않더라도 수행하는 쿼리마다 문서 읽기 1회에 해당하는 최소 요금이 부과됩니다.
Firestore 보안 규칙
모바일 및 웹 클라이언트 라이브러리의 경우 Firestore 보안 규칙에서 exists()
, get()
또는 getAfter()
를 사용하여 데이터베이스에서 하나 이상의 문서를 읽는다면 다음과 같은 추가 읽기 요금이 부과됩니다.
Firestore 보안 규칙을 평가하는 데 필요한 읽기에 대해 요금이 부과됩니다.
예를 들어 규칙이 3개의 문서를 참조하지만 Firestore에서는 규칙 평가를 위해 두 문서만 읽으면 될 경우 종속 문서에 대한 2회의 추가 읽기 요금이 부과됩니다.
규칙이 문서를 여러 번 참조하더라도 읽기 요금은 종속 문서당 1회만 청구됩니다.
규칙 평가는 요청별로 한 번만 요금이 부과됩니다.
따라서 여러 개의 문서를 읽는 데 필요한 요청의 수가 더 적으므로 문서를 한 번에 하나씩 읽는 것보다 여러 문서를 읽는 편이 비용이 적게 듭니다.
쿼리 결과를 수신 대기하면 다음과 같은 경우에 규칙 평가에 대한 요금이 부과됩니다.
- 쿼리를 보낼 때
- 쿼리 결과가 업데이트될 때마다
- 사용자 기기가 오프라인 상태로 전환되었다가 온라인 상태가 될 때마다
- 규칙이 업데이트될 때마다
- 규칙에서 종속 문서를 업데이트할 때마다
데이터베이스 스토리지 크기
스토리지 오버헤드를 포함해 Firestore에 저장되는 데이터양에 대한 요금이 부과됩니다. 오버헤드에는 메타데이터, 자동 색인, 복합 색인이 포함됩니다.
Firestore에 저장된 각 문서에는 다음과 같은 메타데이터가 필요합니다.
- 컬렉션 ID 및 문서 이름을 포함한 문서 ID
- 각 필드의 이름 및 값: Firestore에는 스키마가 없으므로 문서의 각 필드 이름을 필드 값과 함께 저장해야 합니다.
- 문서를 참조하는 단일 필드 및 복합 색인: 각 색인 항목에는 컬렉션 ID, 색인 정의에 따른 여러 필드 값, 그리고 문서 이름이 포함됩니다.
스토리지 비용은 GiB/월 단위로 매일 계산됩니다. Firestore 데이터베이스 크기를 매일 측정합니다 한 달 동안 이러한 샘플 포인트의 평균을 계산하여 데이터베이스 스토리지 크기를 계산합니다. 이 평균 값에 스토리지의 단가(GiB-월)를 곱합니다.
스토리지 크기 계산에서 Firestore 스토리지 계산 방법을 알아보세요.
PITR 데이터
PITR을 사용 설정하면 PITR 데이터 스토리지에 대한 요금이 부과됩니다. 대부분의 고객은 PITR 데이터 스토리지의 전체 비용이 데이터베이스의 스토리지 비용과 비슷하다는 것을 알게 됩니다.
PITR의 스토리지 비용은 GiB/월 단위로 매일 계산됩니다. Firestore는 데이터베이스 크기를 매일 측정합니다. 한 달 동안 이러한 샘플 포인트의 평균을 계산하여 데이터베이스 스토리지 크기를 계산합니다. 이 평균 값에 PITR의 단가(GiB-월)를 곱합니다.
예를 들어 한 달 동안의 데이터베이스 평균 크기가 1GiB이고 PITR이 해당 월 내내 사용 설정된 상태라면 청구할 수 있는 PITR 데이터 크기도 1GiB입니다.
최소 결제: 사용 설정 후 1일 이내에 PITR을 사용 중지하더라도 최대 1일의 PITR 스토리지 비용이 청구될 수 있습니다.
백업 데이터 및 복원 작업
백업을 사용 설정하면 데이터베이스 백업 스토리지에 대한 요금이 부과됩니다. 백업의 스토리지 크기는 백업을 가져왔을 때 데이터베이스의 스토리지 크기와 동일합니다.
백업의 스토리지 비용은 GiB/월 단위입니다. 한 달 동안 각 백업이 보관되는 일수(한 달 평균)도 계산됩니다. 각 백업 비용은 백업이 보관된 일수가 한 달에서 차지하는 비율을 백업의 스토리지 크기와 곱하고 단가를 곱하여 계산됩니다.
복원 작업을 수행할 때 Firestore는 복원 작업을 위한 백업 크기입니다. 백업 크기에는 복원 작업의 단가(GiB)를 곱합니다.
쿼리 설명
Firestore Query Explain 사용 시 비용이 발생합니다.
기본 옵션으로 쿼리를 설명하면 색인 읽기 작업이 수행되지 않습니다. 확인할 수 있습니다 쿼리 복잡성과 관계없이 읽기 작업 1회에 대한 요금이 청구됩니다.
분석 옵션을 사용하여 쿼리를 설명하는 경우 색인 및 읽기 작업이 수행되므로 쿼리에 대한 요금이 평소와 같이 청구됩니다. 없음 설명 및 분석 활동에 대한 추가 비용, 일반적인 청구 금액만 고유하지 않은 이름을 지정할 수 있습니다
네트워크 대역폭
다음 섹션에 나와 있듯이 Firestore 요청에서 사용된 네트워크 대역폭에 대한 요금이 부과됩니다. Firestore 요청의 네트워크 대역폭 비용은 요청의 응답 크기, Firestore 데이터베이스의 위치, 응답의 대상에 따라 달라집니다.
Firestore는 직렬화된 메시지 형식을 기준으로 응답 크기를 계산합니다. SSL 오버헤드와 같은 프로토콜 오버헤드는 네트워크 대역폭 사용량에 포함되지 않습니다. Firestore 보안 규칙에서 거부된 요청도 네트워크 대역폭 사용량에 포함되지 않습니다.
얼마나 많은 네트워크 연결을 Google Cloud 콘솔을 사용하여 프로젝트의 데이터를 결제 데이터를 파일로 저장합니다.
일반 네트워크 가격 책정
Google Cloud Platform에서 발생한 요청(예: Google Compute Engine에서 실행되는 애플리케이션의 요청)은 다음과 같이 요금이 부과됩니다.
트래픽 유형 | 가격 |
---|---|
인바운드 데이터 전송 | 무료 |
리전 내 데이터 전송 | 무료 |
동일한 멀티 리전에 속한 리전 간 데이터 전송 | 무료 |
미국 내 리전 간 데이터 전송(GiB당) | $0.01(매월 첫 10GiB는 무료) |
미국 리전 간 트래픽을 제외한 리전 간 데이터 전송 | Google Cloud Platform 아웃바운드 인터넷 데이터 전송 요금 |
USD 외의 통화로 지불하는 경우 Cloud Platform SKU에 해당 통화로 표기된 가격이 적용됩니다.
인터넷 데이터 전송 속도
다음의 경우 인터넷 데이터 전송 요금이 부과됩니다.
- 미국 리전 간 트래픽을 제외한 리전 간 Google Cloud 요청
- Google Cloud 외부의 요청(예: 사용자의 휴대기기)
USD 외의 통화로 지불하면 Cloud Platform SKU에 해당 통화로 표기된 가격이 적용됩니다.
사용량 모니터링
Firestore 사용량을 모니터링하는 방법은 다음을 참조하세요. 사용량 모니터링.
지출 관리
지출을 관리하려면 월예산 및 알림을 설정합니다.
Google Cloud 예산 및 알림
Google Cloud에서는 모든 Google Cloud 서비스의 월예산을 설정할 수 있습니다. 월예산을 사용해 Firestore의 네트워크 대역폭 비용을 포함한 전체적인 Google Cloud 비용을 모니터링하세요. 예산을 설정한 후에 알림을 설정할 수 있으며 비용이 늘어 예산에 가까워지면 이메일 알림이 전송됩니다.
이 안내에 따라 월 예산을 설정하고 Google Cloud 콘솔에서 알림을 만들 수 있습니다
가격 책정 예시
실제 샘플 앱에서 발생하는 Firestore 청구 비용은 Firestore 청구 예시를 참조하세요.
다음 단계
- Firestore 문서 읽어보기
- Firestore 시작하기
- 가격 계산기 사용해 보기
- Firestore 솔루션 및 사용 사례 알아보기