Preços

Os preços do Pub/Sub são baseados em:

  • Entrega e processamento de mensagens
  • Armazenamento de mensagens relacionadas à busca: snapshots e mensagens confirmadas retidas

Entrega e processamento de mensagens

Preços de entrega de mensagens

O processamento e a entrega de mensagens têm o preço por volume de dados transmitidos em um mês. Os primeiros 10 gigabytes de uso são gratuitos. Depois disso, o preço para processamento ou entrega de mensagens é de US$ 40 por TiB.

O volume de dados de uma mensagem é a soma do seguinte:

  • O número de bytes na string do corpo da mensagem codificada
  • Para cada atributo, o tamanho da chave e seu valor
  • 20 bytes para o carimbo de data/hora
  • O tamanho da string message_id
  • Campos opcionais adicionais, como os associados ao acesso antecipado e outras APIs de acesso restrito.

Um mínimo de 1.000 bytes por solicitação de publicação, envio ou recepção é avaliado independentemente do tamanho da mensagem. Isso significa que, para mensagens com menos de 1.000 bytes, é mais barato agrupar várias mensagens por solicitação.

As cobranças de entrega e processamento são aplicadas apenas à publicação de solicitações e dados entregues usando operações pull, streamingPull ou push. Outras operações são gratuitas.

Caso o pagamento seja feito em uma moeda diferente do dólar americano, serão aplicados os preços listados na sua moeda na página SKUs do Google Cloud. A taxa listada é por TiB (240 bytes ou aproximadamente 1,1 trilhão de bytes).

Taxas de saída da região dos dados

As taxas de saída na Internet e a troca de mensagens entre as regiões do Google Cloud têm consistência com as taxas de rede do Compute Engine, com as seguintes exceções:

  • Não há taxas de saída de zona para o uso do Pub/Sub.
  • A saída para produtos do Google não está isenta de taxas.

Por exemplo, uma mensagem de 1 MiB publicada em us-west1 e entregue a um assinante em europe-west1 resulta em cobranças por dois SKUs distintos:

  • 2 MiB de Entrega de mensagem básica (1 MiB de publicação e entrega)
  • 1 MiB de Entrega de dados entre regiões das Américas para a Europa, Oriente Médio e África

Para entender seu uso, exporte seus dados de cobrança para o BigQuery. Depois de configurar isso, você pode usar uma consulta como esta:

SELECT TIMESTAMP_TRUNC(usage_start_time, day) as usage_date,
  sku.description,
  usage.unit,
  sum(usage.amount) as egress_volume
FROM `BILLING_EXPORT_TABLE`
WHERE
  _PARTITIONTIME >= TIMESTAMP("2019-01-01")
  AND service.description = "Cloud Pub/Sub"
  AND (sku.description like "Internet data%"
      OR sku.description like "Inter-region data%")
GROUP BY usage_date, sku.description, usage.unit;

Exemplo: entrega e processamento de mensagens

Para ilustrar uma estimativa dos custos gerais de operação, pense em um aplicativo que publica mensagens de 1.024 KB em um tópico com duas assinaturas, a uma taxa de 1 MiB/segundo. Supondo que os assinantes estejam acompanhando, o Pub/Sub ingere 1 MiB/segundo e entrega 2 MiB/segundo, o que resulta em uma taxa total de transmissão de dados de 3 MiB/segundo. Ao longo de um mês de 30 dias, isso equivale a 3 MiB/second x 3600 seconds/hour x 24 hours/day x 30 days/month x 1 month/(2^20 MiB/TiB) = 7.416 TiB. Após subtrair os primeiros 10 GB (gratuitos), o volume de dados é de 7,406 TiB x US$ 40 por TiB e a cobrança é de US$ 296,24.

Faturamento entre projetos

Se você usa o Pub/Sub em projetos, as tarifas do Pub/Sub serão cobradas do projeto que contém o recurso solicitado:

  • O projeto faturado para publicação é o que contém o tópico.
  • O projeto faturado para a assinatura é o que contém esse serviço.

Por exemplo, se a publicação faz parte do projeto A, o projeto A receberá as cobranças pelos dados extraídos da assinatura, mesmo se ela estiver anexada a um tópico no projeto B.

Se a conta de serviço autorizada no projeto A consumir mensagens de uma assinatura no projeto B, o projeto B receberá as cobranças pelos dados extraídos da assinatura.

Preços

As tarifas de armazenamento de mensagens são cobradas a uma taxa de US$ 0,27/GiB por mês nas seguintes situações:

  • Uma assinatura é configurada para reter mensagens confirmadas e possibilitar o reprocessamento delas usando a busca. Nesse caso, as tarifas de armazenamento são cobradas pelas mensagens confirmadas retidas.
  • Quando é criado um snapshot de uma assinatura. Nesse caso, as tarifas de armazenamento de mensagens são cobradas pelo armazenamento das mensagens não confirmadas do snapshot. Se, além disso, a assinatura tiver um backlog de mensagens não confirmadas quando o snapshot for criado, será cobrada uma tarifa única equivalente ao armazenamento desse backlog por sete dias.

Os snapshots podem ser uma maneira mais econômica de reter mensagens para reprodução do que reter todas as mensagens confirmadas porque um único snapshot pode ser usado em várias assinaturas. Os snapshots geralmente têm um pequeno volume de dados faturáveis que aumenta gradualmente ao longo da idade dos snapshots. As assinaturas configuradas para reter mensagens confirmadas mantêm uma janela de tempo fixa dos dados da mensagem (no estado constante), mas podem ser mais convenientes.

Exemplo: assinatura com mensagens confirmadas retidas

Considere um tópico com uma única assinatura e o seguinte:

  • O tópico tem uma taxa estável de 1 MiB/segundo de dados de entrada.
  • O assinante está acompanhando os dados na assinatura, consumindo 1 MiB/segundo, e tem um novo backlog de mensagens insignificante.
  • A assinatura é configurada para reter mensagens confirmadas por sete dias.

Nesta configuração, o volume de mensagens confirmadas aumenta em 1 MiB/second x 3600 seconds/hour x 24 hours/day = 86.4 GiB/day.

Após sete dias, as mensagens confirmadas retidas começam a expirar e o volume total de mensagens confirmadas armazenadas é de 7 days x 86.4 GiB/day = 605 GiB. A taxa mensal total para armazenar esse volume de mensagens é de aproximadamente 605 GiB-month x $0.27/GiB-month = $163.

Exemplo: taxas de armazenamento de mensagens de snapshots

As tarifas de armazenamento de mensagens de snapshots consistem em uma cobrança incremental por novas mensagens publicadas no tópico do snapshot e uma tarifa única no momento da criação. Pense em um snapshot da assinatura com mensagens confirmadas retidas. A vida útil dele é de sete dias (a menos que seja excluído antes), já que a assinatura com base na qual ele foi criado não tem nenhum backlog de mensagens não confirmadas. Os dados publicados no primeiro minuto (60 MiB) serão armazenados por 7 dias menos 1 minuto, os dados publicados no segundo minuto por 7 dias menos 2 minutos, e assim por diante. Esse cenário resulta em um backlog de 605 GiB quando o snapshot expirar, totalizando 1/2 x 605 GiB x 7 days = 2118 GiB-days de armazenamento usado, pelo qual será feita a cobrança de 2118 GiB-days x (1/30 months/day) x $0.27/GiB-month = $19 em um mês de 30 dias. Por esse motivo, os snapshots são uma alternativa econômica à retenção de mensagens confirmadas.

Exemplo: snapshot de uma assinatura com backlog

Se a assinatura tiver um backlog de mensagens não confirmadas quando o snapshot for criado, será cobrada uma tarifa única equivalente ao armazenamento desse backlog pelos sete dias completos. Por exemplo, pense em uma assinatura com um backlog de mensagens não confirmadas de 10 GiB. A tarifa única no momento da criação do snapshot seria de 10 GiB x 7 days / 30 days/month x 0.27/GiB-month = $0.63.

Conclusões da restrição de localização de recursos

Se uma política de armazenamento de mensagens forçar os dados a sair de uma região do Google Cloud, podem ocorrer taxas adicionais de saída (rede). Pense em uma mensagem com as seguintes características:

  • Publicada na região A
  • Roteada para a região B para armazenamento
  • Entregue a um cliente assinante na região C

Nesse caso:

  • O projeto que contém o tópico é faturado pela saída de rede da região A para a região B.
  • O projeto com a assinatura é faturado pela saída de rede da região B para a região C.

Uma taxa de saída será cobrada do projeto que contém o tópico apenas se a mensagem publicada estiver armazenada em uma região diferente da que a mensagem foi publicada (ou seja, B é, na verdade, uma região diferente de A). Uma taxa de saída será cobrada do projeto que contém a assinatura apenas se a mensagem publicada estiver armazenada em uma região diferente da região atual do cliente assinante (C é diferente de B).