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 recebimento e a entrega de mensagens têm o preço por volume de dados transmitidos no final de um mês. Os primeiros 10 gigabytes de uso são gratuitos. Depois disso, o preço para ingestão 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 cadeia 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 menores que 1.000 bytes, é mais barato agrupar várias mensagens por solicitação.

Os encargos de entrega e processamento aplicam-se apenas à publicação de solicitações e dados entregues usando operações pull, streamingPull ou push. Outras operações são gratuitas.

Se você fizer pagamentos em uma moeda que não seja o 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,01 trilhão de bytes).

Taxas de saída da região de dados

As taxas para saída da Internet e entrega de mensagens entre as regiões GCP são consistentes 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 no us-west1 e entregue a um assinante no 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, você pode exportar seus dados de cobrança para o BigQuery Depois de configurar isso, você pode usar uma consulta como esta para entender seu uso:

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, para 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 Pub/Sub em projetos, tarifas de Pub/Sub são cobradas do projeto que contém o recurso solicitado (como uma assinatura). Por exemplo, uma conta de serviço do projeto A pode receber acesso de assinante a uma assinatura do projeto B (que está na conta de faturamento B). A conta de faturamento B recebe a cobrança pelos dados extraídos da assinatura pela conta de serviço A.

Como opção, caso a assinatura esteja no projeto A (ainda que vinculada a um tópico no projeto B), a conta A receberá a cobrança 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 para os sete dias.

Os snapshots podem ser uma maneira mais econômica de reter mensagens para reprodução do que reter todas as mensagens reconhecidas 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 reconhecidas mantêm uma janela de tempo fixo dos dados da mensagem (no estado estacionário), mas pode ser mais conveniente.

Exemplo: assinatura com mensagens confirmadas retidas

Considere um tópico com uma única assinatura e o seguinte: - O tópico possui uma taxa constante de 1MiB/segundo de dados recebidos. O assinante está atualizando 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 reconhecidas 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 snapshot

As tarifas de armazenamento de mensagens de snapshot consistem em uma cobrança incremental por novas mensagens publicadas no tópico do instantâneo 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 tamanho de 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 para os 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).