콘솔로 이동

Cloud Firestore 가격 책정 예시 보기

기본 채팅 앱의 실제 예를 사용하여 Cloud Firestore의 사용량과 비용에 대해 알아봅니다. 이 예는 정확한 추정치는 아니지만 Cloud Firestore 사용량에 대한 청구 방식을 이해하는 데 도움이 될 것입니다.

개요: 사용량 수준별 비용

일반적인 비용을 설명하기 위해 사용자가 2명 이상의 참여자와 채팅을 시작할 수 있는 채팅 앱을 예로 들겠습니다. 사용자는 목록에서 활성 채팅을 확인하고 메시지를 읽고 보낼 수 있습니다. 이 예에서는 북미 다중 리전(구체적으로 nam5)의 가격 책정을 사용합니다.

가정

사용량과 데이터 저장소에 대한 가정은 다음과 같습니다.

  • 일일 활성 사용자 수(DAU)는 전체 앱 설치의 10%입니다. 일일 활성 사용자 수(DAU)의 대략적인 추정치를 사용하여 일일 비용을 예측할 수 있습니다. 이는 특정 날짜에 앱을 스스로 열고 사용한 사용자이며 일반적으로 전체 앱 설치에서 작은 부분을 차지합니다. 아래 계산에서는 DAU를 전체 앱 설치 수의 10%로 추정했습니다.
  • 문서 크기는 비교적 작습니다. 유형별 문서 크기의 분류는 아래 표를 참조하세요.
  • 데이터는 3개월 동안만 저장됩니다. 예로 들고 있는 채팅 앱에서 메시지는 3개월 동안만 저장됩니다. 삭제 작업을 설명하기 위해 아래 계산에서는 모든 일일 쓰기 작업이 매일 삭제된다고 가정합니다.
  • 이 비용 추정치는 예로 사용된 앱의 비용 대부분을 반영하지만 전부는 아닙니다. 이 가이드에 설명된 가장 자주 쓰이는 사용자 작업, 사용자 및 메시지 저장소, 송신을 계산하여 대부분의 앱 비용을 반영했습니다. 하지만 앱의 구조와 데이터 요구사항에 따라 추가 비용을 고려해야 하는 경우도 있습니다. 이 예를 사용하여 비용 계산을 안내하지만 Cloud Firestore 비용에 대한 자세한 설명은 가격 책정 페이지를 참조하세요.

사용자 작업별 작업 분류는 분류: 사용자 작업별 청구 사용량 섹션을 참조하세요.

소규모
(설치 50,000건)

앱 설치 50,000건(일일 활성 사용자 수 5,000명): $12.14/월

읽기/쓰기 비용
월간 총 비용 = $11.10/월
일일 총 읽기 400,000 =   무료 읽기 50,000+(읽기 350,000($0.06/100,000 기준)) =   3.5*$0.06
$0.21/일*30 = $6.30
 
일일 총 쓰기 100,000 =   무료 쓰기 20,000+(쓰기 80,000($0.18/100,000 기준)) =   0.8*$0.18
$0.14/일*30 = $4.20
 
일일 총 삭제 100,000 =   무료 삭제 20,000+(삭제 80,00만($0.02/100,000 기준)) =   0.8*$0.02
$0.02/일*30 = $0.60
저장소/네트워킹 비용
월간 총 비용 = $1.04/월
일일 송신 20KB/DAU*5,000 DAU =   일일 송신 100MB*30 =   월간 네트워크 송신 3GB
무료 송신 3GB = 무료1
 
일일 메시지 저장소 15KB/DAU+저장소 3KB/설치2 =   저장소 45KB/DAU*5,000 DAU =   일일 저장소 225MB/DAU*30 =   월간 저장소 사용량 6.75GB
무료 저장소 1GB+(5.75*$0.18) = $1.04/월

1 Cloud Firestore 이용 시 월간 네트워크 송신 10GB는 무료입니다.
2 DAU가 총 앱 설치의 10%라는 가정에서 이 숫자는 앱을 설치한 총 사용자 수를 나타냅니다.

중규모
(설치 1,000,000건)

앱 설치 1,000,000건(일일 활성 사용자 수 100,000명): $292.02/월

읽기/쓰기 비용
월간 총 비용 = $261.90/월
일일 총 읽기 8,000,000 =   무료 읽기 50,000+(읽기 7,950,000($0.06/100,000 기준)) =   79.5*$0.06
$4.77/일*30 = $143.10
 
일일 총 쓰기 2,000,000 =   무료 쓰기 20,000+(읽기 1,980,000($0.18/100,000 기준)) =   19.8*$0.18
$3.56/일*30 = $106.80
 
일일 총 삭제 2,000,000 =   무료 삭제 20,000+(삭제 1,980,000($0.02/100,000 기준)) =   19.8*$0.02
$0.40/일*30 = $12.00
저장소/네트워킹 비용
월간 총 비용 = $30.12/월
일일 송신20KB/DAU*100,000 DAU =   일일 송신 2GB*30 =   월간 네트워크 송신 60GB
무료 송신 10GB+(송신 50GB*$0.12/GB) = $6.00/월
 
일일 메시지 저장소 15KB/DAU+저장소 3KB/설치1 =   저장소 45KB/DAU*100,000 DAU =   일일 저장소 4.5GB/DAU*30 =   월간 저장소 사용량 135GB
무료 저장소 1GB+(134GB*$0.18/GB) = $24.12/월

1 DAU가 총 앱 설치의 10%라는 가정에서 이 숫자는 앱을 설치한 총 사용자 수를 나타냅니다.

대규모
(설치 10,000,000건)

앱 설치 10,000,000건(일일 활성 사용자 수 1,000,000명): $2951.52/월

읽기/쓰기 비용
월간 총 비용 = 총 $2,637.90/월
일일 총 읽기 80,000,000 =   무료 읽기 50,000+(읽기 79,950,000($0.06/100,000 기준)) =   799.5*$0.06
$47.97/일*30 = $1,439.10
 
일일 총 쓰기 20,000,000 =   무료 쓰기 20,000+(쓰기 19,980,000($0.18/100,000 기준)) =   199.8*$0.18
$35.96/일*30 = $1,078.80
 
일일 총 삭제 20,000,000 =   무료 삭제 20,000+(삭제 19,980,000($0.02/100,000 기준)) =   199.8*$0.02
$4.00/일*30 = $120.00
저장소/네트워킹 비용
월간 총 비용 = $313.62/월
일일 송신 20KB/DAU*1,000,000 DAU =   일일 송신 20GB*30 =   월간 네트워크 송신 600GB
무료 송신 10GB+(송신 590GB*$0.12/GB) = $70.80/월
 
일일 메시지 저장소 15KB/DAU+저장소 3KB/설치1 =   저장소 45KB/DAU*1,000,000 DAU =   일일 저장소 45GB/DAU*30 =   월간 저장소 사용량 1,350GB
(무료 저장소 1GB)+(1,349GB*$0.18/GB) = $242.82/월

1 DAU가 총 앱 설치의 10%라는 가정에서 이 숫자는 앱을 설치한 총 사용자 수를 나타냅니다.

Cloud Firestore 청구 모델은 사용한 만큼만 비용을 지불하는 이점이 있으므로 고려해 보는 것이 좋습니다. 이 청구 모델에서는 청구 금액이 DAU 수에 따라 증감합니다.

분류: 사용자 작업별 청구 사용량

채팅 앱 예의 경우 데이터 구조는 다음과 같습니다.

  • users/{userId} — 사용자 레코드
  • groups/{groupId} — 2명 이상의 사용자 간 채팅
    • messages/{messageId} — 채팅의 각 메시지

데이터 저장

앱 데이터를 저장하기 위한 저장소 비용을 계산하기 위해 문서 크기에 적용하는 가정은 다음과 같습니다.

컬렉션 문서 크기(전송 중) 문서 크기(디스크에 있음)*
users 1KB 3KB
groups 0.5KB 1.5KB
messages 0.25KB 0.75KB

*이 크기 계산에는 메시지 필드의 색인이 포함되지만 메시지 콘텐츠에서 색인 생성이 사용 중지된 것으로 가정합니다.

또한 앱에서는 저장소 비용을 줄이기 위해 메시지를 최대 3개월까지만 저장합니다.

저장소 비용 계산에 대한 자세한 내용은 저장소 크기 계산 이해를 참조하세요.

작업

사용자는 대개 앱에서 다음과 같은 일반적인 작업을 수행합니다.

  • 채팅 목록 보기: 사용자가 앱의 홈 화면을 열고 가장 최근에 게시된 메시지 순으로 정렬된 채팅 목록(그룹 및 개별)을 확인합니다.
  • 채팅 메시지 읽기: 사용자가 홈 화면에서 채팅을 선택하고 채팅의 최근 메시지를 읽습니다.
  • 채팅 메시지 보내기: 사용자가 채팅방(그룹 또는 개별)에 메시지를 보냅니다.

Cloud Firestore에서 예시 앱의 3가지 일반적인 사용자 작업에 대한 총 예상 작업량은 다음과 같습니다.

  • 읽기: (5*10)+(30) = 일일 사용자별 읽기 80회
  • 쓰기: (10*2) = 일일 사용자별 쓰기 20회
  • 네트워크 송신: (50*0.25KB)+(30*0.25KB) = 일일 사용자별 20KB
  • 저장소: (20*0.75KB) = 일일 사용자별 15KB

사용자 작업별 총 사용량

각 사용자 작업을 선택하면 앱의 작업, 저장소, 네트워킹 비용에 대한 전체 설명과 분류를 볼 수 있습니다.

채팅 목록 확인

앱의 홈 화면에는 가장 최근 채팅 25개가 로드되어 문서 읽기 25회에 대한 요금이 청구됩니다. 활성 사용자가 하루에 앱을 5회 열어 매일 사용자당 총 125회의 읽기를 수행한다고 가정합니다. 하지만 다음 예와 같이 좀 더 효율적인 쿼리를 통해 이 부하를 줄일 수 있습니다.

아래 예에서는 앱에 저장된 성공한 각 가져오기의 타임스탬프를 사용하여 쿼리를 새 채팅으로 제한합니다.

db.collection('groups')
  .where('participants', 'array-contains', 'user123')
  .where('lastUpdated', '>', lastFetchTimestamp)
  .orderBy('lastUpdated', 'desc')
  .limit(25)

사용자가 앱을 확인할 때마다 업데이트된 채팅이 평균적으로 10개 있다고 가정합니다. 이 쿼리로 문서 읽기가 10회만 발생합니다.

채팅 메시지 읽기

사용자는 홈 화면에서 채팅 대화목록을 클릭하여 최근 메시지를 봅니다. 처음 로드할 때 가장 최근 메시지 50개가 로드됩니다.

일반적인 사용자가 이 작업을 하루에 5회(홈 화면을 열 때마다 1회) 수행하여 매일 사용자당 읽기 총 횟수가 250이 된다고 가정합니다. 또한 다음과 같이 마지막으로 가져온 시간 이후의 새 메시지로 쿼리를 제한할 수도 있습니다.

db.collection('groups')
  .doc('group234')
  .collection('messages')
  .where('sentTime', '>', lastFetchTimestamp)
  .orderBy('sentTime', 'desc')
  .limit(50)

사용자가 모든 채팅에서 하루에 약 30개의 메시지를 받는다고 가정합니다. 새 메시지만 가져오도록 쿼리를 제한했으므로 매일 30개의 메시지만 가져오는 것이 됩니다.

채팅 메시지 보내기

사용자는 채팅 중 다른 참여자에게 메시지를 보낼 수 있습니다. 활성 사용자가 하루에 약 10개의 메시지를 보낸다고 가정합니다.

보낸 메시지 1개당 문서 쓰기가 2회 발생합니다. 하나는 채팅의 messages 하위 컬렉션에 쓰고 다른 하나는 채팅 상위 문서에 써서 lastUpdated 타임스탬프와 기타 메타데이터를 업데이트합니다.

이 메시지 읽기 비용은 다른 과정에 설명되어 있으므로 아래 총계에서는 쓰기 비용만 고려합니다.

제공되는 혜택: 앱의 무료 서비스

Cloud Firestore 작업, 저장소, 네트워크 대역폭은 모두 사용량에 따라 청구되지만 추가 비용 없이 이용할 수 있는 다른 혜택도 많습니다. Cloud Firestore와 다른 데이터베이스 옵션을 비교할 때 다음 무료 서비스를 고려하시기 바랍니다.

  • 직접 클라이언트 액세스: Cloud Firestore는 기본 SDK를 사용하여 클라이언트 코드에서 직접 액세스합니다. 즉, 모바일 클라이언트를 이 데이터베이스에 연결하기 위해 API 서버를 구축하고 실행할 필요가 없습니다.
  • 부하 분산: Cloud Firestore는 데이터베이스에 대한 트래픽을 지원하기 위해 자동으로 확장되므로 부하 분산기를 실행할 필요가 없습니다.
  • 서버 가동시간: Cloud Firestore 데이터베이스는 Google Cloud Platform 서버에서 작동하며 월간 99%가 넘는 가동시간을 제공합니다.
  • 인증: Firebase 인증으로 사용자를 제한 없이 간단하고 안전하게 인증할 수 있습니다. Firebase 인증이 Cloud Firestore와 직접 통합되어 자체 인증 서비스를 실행할 필요가 없습니다.
  • 푸시 알림: 클라우드 메시징으로 메시지와 알림을 보낼 수 있습니다.
  • 기타 Firebase 제품: A/B Testing, 애널리틱스, Crashlytics, Performance Monitoring, 예측, 원격 구성 등 다른 무료 Firebase 제품을 통합하세요. 기타 Firebase 제품Firebase 가격 책정에 대해 자세히 알아보세요.