Precios

Los precios de Pub/Sub se basan en los siguientes factores:

  • Ingestión y entrega de mensajes
  • Almacenamiento de mensajes relacionados con la función de búsqueda (seek): capturas y mensajes confirmados retenidos

Ingestión y entrega de mensajes

Precios de la entrega de mensajes

Los precios de la ingestión y entrega de mensajes se basan en el volumen de datos que se transmiten durante un mes natural. Los primeros 10 gigabytes de uso son gratuitos. Después, el precio de la ingestión o entrega de mensajes es de 40 USD por TiB.

El volumen de datos de un mensaje es la suma de lo siguiente:

  • El número de bytes de la cadena del cuerpo del mensaje codificado
  • El tamaño de la clave y el valor de cada atributo
  • 20 bytes de la marca de tiempo
  • El tamaño de la cadena message_id
  • Campos opcionales adicionales, como los asociados con el acceso anticipado y otras API de acceso restringido

Se tasa una solicitud de publicación, envío o extracción de un mínimo de 1000 bytes independientemente del tamaño del mensaje. Esto significa que, en los mensajes con un tamaño inferior a 1000 bytes, es más económico crear lotes de varios mensajes por solicitud.

Los cargos de ingestión y entrega se aplican únicamente a las solicitudes de publicación y a los datos entregados mediante operaciones pull, streamingPull o push. Otras operaciones son gratuitas.

Si pagas en una moneda que no sea el dólar estadounidense, se aplicarán los precios que figuran para tu divisa en los SKU de Google Cloud. Los precios indicados se detallan por TiB (240 bytes, aproximadamente 1,1 billones de bytes).

Tarifas del tráfico de salida de regiones de datos

Las tarifas correspondientes al tráfico de salida de Internet y a la entrega de mensajes entre regiones de Google Cloud seguirán siendo las mismas que las tarifas de red de Compute Engine con las siguientes excepciones:

  • No se aplica ninguna tarifa al tráfico de salida entre zonas para el uso de Pub/Sub.
  • Sin embargo, las salidas a productos de Google no están exentas de la tarifa correspondiente.

Por ejemplo, un mensaje de 1 MiB que se publique en us-west1 y se entregue a un suscriptor en europe-west1 generará cargos de dos SKU distintos:

  • 2 MiB de Message Delivery Basic (1 MiB por publicación y otro por entrega)
  • 1 MiB de Inter-Region Data Delivery de América a EMEA

Para obtener información más detallada sobre tu uso, puedes exportar tus datos de facturación a BigQuery. Cuando lo hayas configurado, puedes usar una consulta como la siguiente para obtener más detalles al respecto:

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;

Ejemplo de ingestión y entrega de mensajes

Para hacerte una idea más clara de los costes generales que podrían conllevar tus operaciones, imagina que tienes una aplicación que publica mensajes de 1024 kB en un tema con dos suscripciones, a una velocidad de 1 MiB por segundo. Si los suscriptores mantienen un ritmo constante, Pub/Sub ingiere mensajes a 1 MiB por segundo y entrega a 2 MiB por segundo, lo que se traduce en una velocidad de transmisión de datos total de 3 MiB por segundo. En el transcurso de un mes de 30 días, esto daría lugar al siguiente volumen: 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. Una vez que se restan los primeros 10 GB (gratuitos), el volumen de datos sería de 7,406 TiB x 40 USD por TiB y el cargo sería de 296,24 USD.

Facturación multiproyecto

Si usas Pub/Sub en varios proyectos, se cobran las tarifas del servicio por el proyecto que contiene el recurso solicitado:

  • El proyecto por el que se cobra la publicación es el que contiene el tema.
  • El proyecto por el que se cobra la suscripción es el que la contiene.

Por ejemplo, si la suscripción se aloja en el proyecto A, se te cobrará por el proyecto A en función de los datos que se extraigan de la suscripción, incluso si está asociada a un tema del proyecto B.

Si una cuenta de servicio autorizada del proyecto A consume mensajes de una suscripción del proyecto B, se te cobra por el proyecto B en función de los datos que se extraigan de la suscripción.

Precios

La tarifa de almacenamiento de mensajes es de 0,27 USD por GiB al mes y se cobra en los siguientes casos:

  • Se configura una suscripción para retener mensajes confirmados y que, de esta forma, puedan procesarse de nuevo mediante la función de búsqueda (seek). En este caso, se cobran las tarifas de almacenamiento por los mensajes confirmados retenidos.
  • Se crea una captura de una suscripción. En este caso, se cobran las tarifas de almacenamiento por almacenar los mensajes sin confirmar de la captura en cuestión. Además, si la suscripción tiene mensajes sin confirmar acumulados cuando se crea la captura, se hace un único cobro equivalente al que conlleva el almacenamiento de dicho trabajo acumulado durante 7 días.

Las capturas pueden ser un medio más económico de retener mensajes para volver a reproducirlos que la opción de retener todos los mensajes confirmados, puesto que una sola captura se puede usar en varias suscripciones. Por lo general, las capturas tienen un volumen de datos facturable más pequeño que se incrementa gradualmente con la antigüedad de las capturas. Las suscripciones configuradas para retener mensajes confirmados tienen un periodo fijo de datos de mensajes (en estado estable), pero esto puede resultar más práctico.

Ejemplo de suscripción con mensajes confirmados retenidos

Imagina un tema que tenga una sola suscripción y lo siguiente:

  • Tráfico de entrada de datos con una velocidad constante de 1 MiB por segundo.
  • El suscriptor mantiene un ritmo constante respecto a los datos de la suscripción, con un consumo de 1 MiB por segundo, y tiene un número muy bajo de mensajes nuevos acumulados.
  • Se ha configurado la suscripción para que retenga mensajes confirmados durante 7 días.

Con esta configuración, el volumen de mensajes confirmados aumenta al siguiente ritmo: 1 MiB/second x 3600 seconds/hour x 24 hours/day = 86.4 GiB/day.

Después de 7 días, los mensajes confirmados retenidos comienzan a caducar y el volumen total de mensajes confirmados almacenados se establece en el siguiente valor: 7 days x 86.4 GiB/day = 605 GiB. La tarifa mensual total por almacenar este volumen de mensajes será, de manera aproximada, la siguiente: 605 GiB-month x $0.27/GiB-month = $163.

Ejemplo de tarifas de almacenamiento de mensajes de una captura

Estas tarifas consisten en un cargo que se incrementa conforme se publican nuevos mensajes en el tema de la captura y en otro cargo único que se cobra cuando se crea. Como ejemplo, piensa en la captura de una suscripción con mensajes confirmados retenidos. La captura caduca a los 7 días (a menos que se elimine antes), ya que la suscripción desde la que se crea no tiene mensajes sin confirmar acumulados. Los datos que se publican en el primer minuto (60 MiB) se almacenan durante 7 días - 1 minuto; los datos publicados en el segundo minuto se almacenan durante 7 días - 2 minutos; y así sucesivamente. Todo esto se traduce en 605 GiB de trabajo acumulado cuando caduca la captura, lo que supone una cantidad de almacenamiento utilizado de 1/2 x 605 GiB x 7 days = 2118 GiB-days. En este caso, el cargo correspondiente a estos datos para un mes de 30 días sería el siguiente: 2118 GiB-days x (1/30 months/day) x $0.27/GiB-month = $19. Por este motivo, las capturas pueden ser una alternativa rentable para la retención de mensajes confirmados.

Ejemplo de captura de una suscripción con trabajo acumulado

Si la suscripción tiene mensajes sin confirmar acumulados cuando se crea la captura, se hace un único cobro equivalente al que conlleva el almacenamiento de dicho trabajo acumulado durante 7 días completos. Por ejemplo, imagina una suscripción con 10 GiB de mensajes sin confirmar acumulados. En dicho caso, el cobro único al crear la captura sería el siguiente: 10 GiB x 7 days / 30 days/month x 0.27/GiB-month = $0.63.

Implicaciones de la restricción de ubicaciones de recursos

Una política de almacenamiento de mensajes puede generar tarifas adicionales de tráfico (de red) de salida entre regiones si, de conformidad con la política, los datos están obligados a salir de una región de Google Cloud. Por ejemplo, supongamos que se ha hecho lo siguiente con un mensaje:

  • Publicado en la región A
  • Enrutado a la región B con fines de almacenamiento
  • Entregado a un cliente de suscriptor en la región C

En ese caso, ocurrirá lo siguiente:

  • Al proyecto que contenga el tema se le facturará el tráfico de salida de red de la región A a la B.
  • Al proyecto que contenga la suscripción se le facturará el tráfico de salida de la región B a la C.

Al proyecto que contenga el tema solo se le aplicará una tarifa de tráfico de salida si el mensaje publicado se ha almacenado en una región distinta a la región donde se publicó (en este caso, la región B y la región A no son la misma). Por otro lado, al proyecto que contenga la suscripción solo se le aplicará una tarifa de tráfico de salida si el mensaje publicado se ha almacenado en una región distinta a la región donde se encuentra el cliente de suscriptor (C y B no son la misma región).