Use este exemplo real de um aplicativo de bate-papo básico para avaliar o uso e os custos do Cloud Firestore. Esta não é uma estimativa exata, mas pode ajudar você a entender melhor como o uso do Cloud Firestore é cobrado.
Visão geral: custos por nível de uso
Para ilustrar os custos típicos, considere um exemplo de aplicativo de chat, onde os usuários podem iniciar chats com dois ou mais participantes. Os usuários podem ver seus bate-papos ativos em uma lista, ler mensagens e enviar mensagens. Neste exemplo, estamos usando preços para a multirregião da América do Norte (especificamente nam5
).
Premissas
Considere as seguintes suposições sobre uso e armazenamento de dados:
- Os usuários ativos diários (DAUs) representam 10% do total de instalações de aplicativos. Você pode estimar seus custos diários usando uma estimativa aproximada de seus usuários ativos diários (DAUs). Esses são os usuários que abrem e usam ativamente seu aplicativo em um determinado dia, o que normalmente representa um pequeno subconjunto do total de instalações do seu aplicativo. Para os cálculos abaixo, estimamos DAUs como 10% do número total de instalações de aplicativos.
- Os tamanhos dos documentos são relativamente pequenos. Consulte a tabela abaixo para detalhar o tamanho do documento por tipo.
- Os dados são armazenados apenas por três meses. As mensagens no aplicativo de bate-papo de exemplo são armazenadas apenas por um período de três meses. Para contabilizar as operações de exclusão, os cálculos abaixo mostram uma exclusão diária para cada gravação diária.
- Essas estimativas de custos refletem a maior parte dos custos do aplicativo de exemplo, mas não todos. Consideramos a maior parte dos custos de um aplicativo calculando operações, armazenamento de usuários e mensagens e saída para as tarefas de usuário mais frequentes descritas neste guia. No entanto, talvez seja necessário levar em consideração custos adicionais, dependendo da estrutura e das necessidades de dados do seu aplicativo. Use este exemplo para orientar seus cálculos, mas consulte a página de preços para obter explicações mais completas sobre os custos do Cloud Firestore.
Para obter um detalhamento das operações por tarefa do usuário, consulte a seção Detalhamento: uso faturado por tarefa do usuário .
Pequeno
(50 mil instalações)
Para 50.000 instalações de aplicativos (5.000 usuários ativos diários): US$ 12,14/mês
Custos de leitura/gravação | |||||
---|---|---|---|---|---|
Custo mensal total = US$ 11,10/mês | |||||
Total de 400 mil leituras diárias | = | 50 mil leituras gratuitas + (350 mil leituras a US$ 0,06/100 mil) | = | 3,5 * US$ 0,06 | |
US$ 0,21/dia * 30 = US$ 6,30 | |||||
Total de 100 mil gravações diárias | = | 20 mil gravações sem custo + (80 mil gravações a US$ 0,18/100 mil) | = | 0,8 * US$ 0,18 | |
US$ 0,14/dia * 30 = US$ 4,20 | |||||
Total de 100 mil exclusões diárias | = | 20 mil exclusões sem custo + (80 mil exclusões a US$ 0,02/100 mil) | = | 0,8 * US$ 0,02 | |
US$ 0,02/dia * 30 = US$ 0,60 |
Custos de armazenamento/rede | |||||||
---|---|---|---|---|---|---|---|
Custo mensal total = US$ 1,04/mês | |||||||
20 KB/DAU de saída diária * 5 mil DAUs | = | 100 MB de saída diária * 30 | = | Saída de rede mensal de 3 GB | |||
Saída sem custo de 3 GB = Sem custo 1 | |||||||
15 KB de armazenamento diário de mensagens / DAU + 3 KB de armazenamento / instalação 2 | = | 45 KB de armazenamento/DAU * 5 mil DAUs | = | 225 MB de armazenamento diário / DAU * 30 | = | Uso mensal de armazenamento de 6,75 GB | |
1 GB de armazenamento gratuito + (5,75 * US$ 0,18) = US$ 1,04/mês |
1 10 GB de saída de rede mensal são gratuitos para o Cloud Firestore.
2 Como presumimos que as DAUs representam 10% do total de instalações de aplicativos, esse número representa o número total de usuários que instalaram seu aplicativo.
Médio
(1 milhão de instalações)
Para 1.000.000 instalações de aplicativos (100.000 usuários ativos diários): US$ 292,02/mês
Custos de leitura/gravação | |||||
---|---|---|---|---|---|
Custo mensal total = $ 261,90/mês | |||||
8 milhões de leituras diárias no total | = | 50 mil leituras gratuitas + (7,95 milhões de leituras a US$ 0,06/100 mil) | = | 79,5 * US$ 0,06 | |
US$ 4,77/dia * 30 = US$ 143,10 | |||||
2 milhões de gravações diárias totais | = | 20 mil gravações sem custo + (1,98 milhão de gravações a US$ 0,18/100 mil) | = | 19,8 * US$ 0,18 | |
US$ 3,56/dia * 30 = US$ 106,80 | |||||
Total de 2 milhões de exclusões diárias | = | 20 mil exclusões gratuitas + (1,98 milhão de exclusões a US$ 0,02/100 mil) | = | 19,8 * US$ 0,02 | |
US$ 0,40/dia * 30 = US$ 12,00 |
Custos de armazenamento/rede | |||||||
---|---|---|---|---|---|---|---|
Custo mensal total = US$ 30,12/mês | |||||||
20 KB/DAU de saída diária * 100 mil DAUs | = | 2GB de saída diária *30 | = | Saída de rede mensal de 60 GB | |||
10 GB de saída gratuita + (50 GB de saída * US$ 0,12/GB) = US$ 6,00/mês | |||||||
15 KB de armazenamento diário de mensagens/DAU + 3 KB de armazenamento/instalação 1 | = | 45 KB de armazenamento/DAU * 100 mil DAUs | = | 4,5 GB de armazenamento diário / DAU * 30 | = | Uso mensal de armazenamento de 135 GB | |
1 GB de armazenamento gratuito + (134 GB * US$ 0,18/GB) = US$ 24,12/mês |
1 Como presumimos que as DAUs representam 10% do total de instalações de aplicativos, esse número representa o número total de usuários que instalaram seu aplicativo.
Grande
(10 milhões de instalações)
Para 10.000.000 instalações de aplicativos (1.000.000 de usuários ativos diários): US$ 2.951,52
Custos de leitura/gravação | |||||
---|---|---|---|---|---|
Custo mensal total = Total: $ 2.637,90/mês | |||||
80 milhões de leituras diárias no total | = | 50 mil leituras gratuitas + (79,95 milhões de leituras a US$ 0,06/100 mil) | = | 799,5 * US$ 0,06 | |
US$ 47,97/dia * 30 = US$ 1.439,10 | |||||
20 milhões de gravações diárias no total | = | 20 mil gravações sem custo + (19,98 milhões de gravações a US$ 0,18/100 mil) | = | 199,8 * US$ 0,18 | |
US$ 35,96/dia * 30 = US$ 1.078,80 | |||||
Total de 20 milhões de exclusões diárias | = | 20 mil exclusões gratuitas + (19,98 milhões de exclusões a US$ 0,02/100 mil) | = | 199,8 * US$ 0,02 | |
US$ 4,00 / dia * 30 = US$ 120,00 |
Custos de armazenamento/rede | |||||||
---|---|---|---|---|---|---|---|
Custo mensal total = US$ 313,62/mês | |||||||
20 KB/DAU de saída diária * 1 milhão de DAUs | = | 20GB de saída diária *30 | = | Saída de rede mensal de 600 GB | |||
10 GB de saída gratuita + (saída de 590 GB * US$ 0,12/GB) = US$ 70,80/mês | |||||||
15 KB de armazenamento diário de mensagens/DAU + 3 KB de armazenamento/instalação 1 | = | 45 KB de armazenamento/DAU * 1 milhão de DAUs | = | 45 GB de armazenamento diário / DAU * 30 | = | Uso mensal de armazenamento de 1350 GB | |
(1 GB de armazenamento gratuito) + (1.349 GB * US$ 0,18/GB) = US$ 242,82/mês |
1 Como presumimos que as DAUs representam 10% do total de instalações de aplicativos, esse número representa o número total de usuários que instalaram seu aplicativo.
Um benefício do modelo de faturamento do Cloud Firestore que vale a pena considerar é que você paga apenas pelo que usa. Como resultado, sua fatura pode aumentar ou diminuir com a contagem de DAU.
Detalhamento: uso faturado por tarefa do usuário
Para nosso exemplo de aplicativo de bate-papo, a estrutura de dados é a seguinte:
-
users/{userId}
— registros do usuário -
groups/{groupId}
— Bate-papos entre 2 ou mais usuários-
messages/{messageId}
— Cada mensagem em um chat.
-
Armazenamento de dados
Para calcular os custos de armazenamento dos dados do aplicativo, aplique as seguintes suposições sobre tamanhos de documentos:
Coleção | Tamanho do documento (em trânsito) | Tamanho do documento (no disco)* |
---|---|---|
Usuários | 1 KB | 3 KB |
grupos | 0,5 KB | 1,5 KB |
mensagens | 0,25 KB | 0,75 KB |
*Este cálculo de tamanho inclui índices para os campos de mensagens, mas pressupõe que a indexação está desabilitada para o conteúdo da mensagem.
O aplicativo também armazena apenas mensagens com até três meses, para reduzir custos de armazenamento.
Para obter mais informações sobre como calcular custos de armazenamento, consulte Noções básicas sobre cálculos de tamanho de armazenamento .
Operações
Os usuários normalmente realizam as seguintes tarefas comuns no aplicativo:
- Veja a lista de chats: Os usuários abrem a tela inicial do app e veem uma lista de chats (em grupo e diretos) ordenados pela mensagem postada mais recentemente.
- Ler mensagens em um bate-papo: os usuários selecionam bate-papos na tela inicial e leem as mensagens recentes dos bate-papos.
- Enviar uma mensagem para um chat: os usuários enviam mensagens para chats (em grupo ou diretos).
O total estimado de operações do aplicativo de exemplo no Cloud Firestore para as três tarefas típicas do usuário é o seguinte:
- Leituras: (5 * 10) + (30) = 80 leituras/usuário/dia
- Gravações: (10 * 2) = 20 gravações/usuário/dia
- Saída de rede : (50 * 0,25 KB) + (30 * 0,25 KB) = 20 KB/usuário/dia
- Armazenamento : (20 * 0,75 KB) = 15 KB/usuário/dia
Uso total por tarefa do usuário
Selecione cada tarefa do usuário para ver uma descrição completa e detalhada das operações, armazenamento e custos de rede no aplicativo.
Veja a lista de chats
A tela inicial do aplicativo carrega os 25 chats mais recentes, incorrendo em cobrança por 25 leituras de documentos. Suponha que um usuário ativo abra o aplicativo 5 vezes por dia, totalizando 125 leituras por usuário todos os dias. Porém, consultas mais eficientes, como a do exemplo a seguir, podem reduzir essa carga.
No exemplo abaixo, limitamos a consulta a novos chats usando um carimbo de data/hora de cada busca bem-sucedida, armazenado pelo aplicativo:
db.collection('groups') .where('participants', 'array-contains', 'user123') .where('lastUpdated', '>', lastFetchTimestamp) .orderBy('lastUpdated', 'desc') .limit(25)
Suponha que haja uma média de 10 chats atualizados cada vez que o usuário verifica o aplicativo. Esta consulta gera apenas 10 leituras de documentos.
Ler mensagens em um bate-papo
Os usuários clicam nos tópicos de bate-papo na tela inicial para ver as mensagens recentes, carregando as 50 mensagens mais recentes no carregamento inicial.
Suponha que o usuário típico execute essa ação 5 vezes ao dia (uma vez para cada vez que abre a tela inicial), levando a um total de 250 leituras por usuário por dia. Também podemos limitar nossa consulta a novas mensagens desde a última busca:
db.collection('groups') .doc('group234') .collection('messages') .where('sentTime', '>', lastFetchTimestamp) .orderBy('sentTime', 'desc') .limit(50)
Suponha que um usuário receba cerca de 30 mensagens por dia em todos os chats. Como você limitou a consulta para buscar novas mensagens, isso se traduz em apenas 30 mensagens recuperadas/dia.
Envie uma mensagem para um bate-papo
Os usuários podem enviar mensagens para outros participantes quando estiverem em um bate-papo. Suponha que um usuário ativo envie cerca de 10 mensagens por dia.
Cada mensagem enviada causará duas gravações de documento: uma gravação na subcoleção messages
do bate-papo e outra gravação no documento pai do bate-papo para atualizar o carimbo de data/hora lastUpdated
e outros metadados.
Observe que o custo de leitura dessas mensagens foi contabilizado nas demais viagens, portanto os totais abaixo consideram apenas esse custo de gravação.
Uso faturado para tarefas de administrador
Como proprietário ou administrador de um aplicativo, você provavelmente deseja gerar relatórios a partir dos dados do seu aplicativo. Por exemplo, você pode querer manter uma contagem diária do número de mensagens enviadas pelos seus usuários. Você pode fazer isso com uma agregação count()
do grupo de coleta messages
.
Para consultas de agregação, como count()
, será cobrada uma leitura de documento para cada lote de até 1.000 entradas de índice correspondentes à consulta. A execução dessa agregação diária adiciona as seguintes cobranças mensais:
Pequeno
(50 mil instalações)
Para 50.000 instalações de aplicativos (5.000 DAUs): US$ 0,0009/mês
5.000 usuários ativos * 10 novas mensagens por usuário = 50.000 novos documentos de mensagens por dia
50.000 documentos contados / 1.000 correspondências de índice por cobrança de leitura = 50 leituras
50 leituras por dia * 30 dias = 1.500 leituras por mês
1.500 leituras por mês * preço de 0,06/100.000 leituras = US$ 0,0009 por mês
Médio
(1 milhão de instalações)
Para 1.000.000 instalações de aplicativos (100.000 usuários ativos diários): US$ 0,018/mês
100.000 usuários ativos * 10 novas mensagens por usuário = 1.000.000 novos documentos de mensagens por dia
1.000.000 de documentos contados / 1.000 correspondências de índice por cobrança de leitura = 1.000 leituras
1.000 leituras por dia * 30 dias = 30.000 leituras por mês
30.000 leituras por mês * preço de 0,06/100.000 leituras = US$ 0,018 por mês
Grande
(10 milhões de instalações)
Para 10.000.000 instalações de aplicativos (1.000.000 de usuários ativos diários): US$ 0,18
1.000.000 de usuários ativos * 10 novas mensagens por usuário = 10.000.000 novos documentos de mensagens por dia
10.000.000 documentos contados / 1.000 correspondências de índice por cobrança de leitura = 10.000 leituras
10.000 leituras por dia * 30 dias = 300.000 leituras por mês
300.000 leituras por mês * 0,06/100.000 preço de leitura = US$ 0,18 por mês
Benefícios incluídos: Serviços gratuitos para seu aplicativo
Embora as operações, o armazenamento e a largura de banda da rede do Cloud Firestore sejam considerados uso faturável, você também obtém vários outros benefícios sem custo adicional. Considere os seguintes serviços gratuitos ao comparar o Cloud Firestore com outras opções de banco de dados:
- Acesso direto do cliente: o Cloud Firestore é acessado diretamente do código do cliente usando nossos SDKs nativos. Isso significa que você não precisa criar e executar um servidor API para conectar seus clientes móveis ao banco de dados.
- Balanceamento de carga: como o Cloud Firestore é dimensionado automaticamente para suportar o tráfego no seu banco de dados, você não precisa executar um balanceador de carga.
- Tempo de atividade do servidor: os bancos de dados Cloud Firestore operam em servidores do Google Cloud, oferecendo mais de 99% de tempo de atividade mensal .
- Autenticação: Autentique usuários ilimitados de forma simples e segura com o Firebase Authentication . O Firebase Authentication se integra diretamente ao Cloud Firestore para que você não precise executar seu próprio serviço de autenticação.
- Notificações push: envie mensagens e notificações com Cloud Messaging .
- Outros produtos Firebase: integre outros produtos Firebase sem nenhum custo, incluindo testes A/B, análises, Crashlytics, monitoramento de desempenho e configuração remota. Saiba mais sobre outros produtos e preços do Firebase .