Precios

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

  • Transferencia y entrega de mensajes
  • El almacenamiento de mensajes relacionados con las búsquedas: instantáneas y mensajes confirmados retenidos

Transferencia y entrega de mensajes

Precios por entrega de mensajes

Los precios por la transferencia y entrega de mensajes se aplican en función del volumen de datos que se transmite en un mes calendario. Los primeros 10 gigabytes son gratuitos. Después, se cobran $40 por TiB de transferencia o entrega de mensajes.

El volumen de datos de un mensaje es la suma de los siguientes elementos:

  • La cantidad de bytes en la string codificada del cuerpo del mensaje
  • Por cada atributo, el tamaño de la clave y su valor
  • 20 bytes por la marca de tiempo
  • El tamaño de la string del message_id
  • Otros campos opcionales, como los asociados con el acceso anticipado y otras API con acceso restringido

Se evalúa un mínimo de 1,000 bytes por solicitud de publicación, inserción o extracción sin importar el tamaño del mensaje. Esto quiere decir que, en el caso de los mensajes con un tamaño inferior a 1,000 bytes, es más económico enviar una solicitud con varios mensajes.

Los cargos por transferencia y entrega se aplican solo a las solicitudes de publicación y a los datos entregados mediante operaciones de extracción, inserción o streamingPull. El resto de las operaciones son gratuitas.

Si pagas en una moneda distinta del dólar estadounidense, se aplican los precios que aparecen en tu moneda en los SKU de Google Cloud. Las tarifas se muestran por TiB (240 bytes o, aproximadamente, 1.1 billones de bytes).

Tarifas de salida de región de datos

Las tarifas por la salida de Internet y la entrega de mensajes entre regiones de Google Cloud son coherentes con las tarifas de red de Compute Engine, con las siguientes excepciones:

  • No se cobran tarifas de salida de zona por el uso de Pub/Sub.
  • La salida a productos de Google no está exenta de tarifas de salida.

Por ejemplo, un mensaje de 1 MiB publicado en us-west1 y entregado a un suscriptor ubicado en europe-west1 genera cargos en dos SKU distintos:

  • 2 MiB de Entrega de mensajes básica (1 MiB por la publicación y otro por la entrega)
  • 1 MiB de Entrega interregional de datos de América a EMEA

Para entender el uso, puedes exportar tus datos de facturación a BigQuery. Luego, puedes hacer una consulta como la que se muestra a continuación:

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: Transferencia y entrega de mensajes

Para ilustrar los costos de operación generales que puedes esperar, imagina una aplicación que publica mensajes de 1,024 KB a una frecuencia de 1 MiB por segundo en un tema con dos suscripciones. Si suponemos que los suscriptores mantienen este ritmo, Pub/Sub transfiere 1 MiB/s y entrega 2 MiB/s, lo que constituye una frecuencia de transmisión de datos total de 3 MiB por segundo. En un mes de 30 días, esto 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. Después de restar los primeros 10 GB (que son gratuitos), el volumen de datos es de 7.406 TiB, que se cobran a razón de $40 por TiB, de modo que el cargo es $296.24.

Facturación entre proyectos

Si usas Pub/Sub en varios proyectos, las tarifas correspondientes se facturarán al proyecto que contiene el recurso solicitado, como se indica a continuación:

  • El proyecto al que se factura la publicación es el que contiene el tema.
  • El proyecto al que se factura la suscripción es el que contiene la suscripción.

Por ejemplo, si la suscripción reside en el proyecto A, entonces los datos que se extraen de la suscripción se facturan al proyecto A, incluso si la suscripción está conectada a un tema del proyecto B.

Si una cuenta de servicio autorizada del proyecto A consume mensajes desde una suscripción del proyecto B, los datos que se extraen de la suscripción se facturan al proyecto B.

Precios

En estos casos, se cobran tarifas de almacenamiento de mensajes correspondientes a $0.27 por GiB‑mes:

  • Se configura una suscripción para que retenga los mensajes confirmados a fin de que se puedan volver a procesar con la búsqueda. En este caso, se cobran tarifas de almacenamiento por los mensajes confirmados retenidos.
  • Se crea una instantánea de una suscripción. En este caso, se cobran tarifas de almacenamiento de mensajes por almacenar los mensajes no confirmados de la instantánea. Además, si la suscripción tiene mensajes pendientes no confirmados cuando se crea la instantánea, se cobra una tarifa por única vez equivalente al almacenamiento de esos mensajes pendientes durante los siete días completos.

Las instantáneas pueden ser una forma más económica de retener mensajes para volver a reproducirlos, en vez de retener todos los mensajes confirmados, ya que se puede usar una instantánea con varias suscripciones. Por lo general, las instantáneas tienen un volumen de datos facturable pequeño que aumenta gradualmente con el paso del tiempo. Las suscripciones configuradas para retener mensajes confirmados mantienen los datos de los mensajes durante un período fijo (con un estado estable), pero podrían ser más convenientes.

Ejemplo: Suscripción con mensajes confirmados retenidos

Considera un tema con una única suscripción y las siguientes características:

  • El tema tiene una frecuencia estable de entrada de datos de 1 MiB por segundo.
  • El suscriptor mantiene el ritmo de los datos de la suscripción, consume 1 MiB por segundo y casi no tiene mensajes nuevos pendientes.
  • La suscripción se configura para que retenga los mensajes confirmados por 7 días.

En esta configuración, el volumen de los mensajes confirmados aumenta a razón de 1 MiB/second x 3600 seconds/hour x 24 hours/day = 86.4 GiB/day.

Al cabo de 7 días, comienzan a vencer los mensajes confirmados y retenidos, por lo que el volumen total de mensajes confirmados que permanecen almacenados queda en un valor estable: 7 days x 86.4 GiB/day = 605 GiB. La tarifa mensual total por almacenar este volumen de mensajes es de aproximadamente 605 GiB-month x $0.27/GiB-month = $163.

Ejemplo: Tarifas de almacenamiento de mensajes de instantáneas

Las tarifas de almacenamiento de mensajes de instantáneas constan de un cargo incremental por los mensajes nuevos publicados en el tema de la instantánea y una única tarifa al momento de la creación. Supongamos que tomas una instantánea de la suscripción que tiene mensajes confirmados retenidos. La instantánea tiene un ciclo de vida de siete días, a menos que se borre antes, ya que la suscripción a partir de la que se creó no tiene mensajes pendientes no confirmados. Los datos publicados durante el primer minuto (60 MiB) se almacenan por 7 días − 1 minuto; los datos publicados en el segundo minuto se almacenan por 7 días − 2 minutos, y así sucesivamente. En este caso, se generan 605 GiB de mensajes pendientes cuando vence la instantánea, lo que equivale a 1/2 x 605 GiB x 7 days = 2118 GiB-days de almacenamiento usado, por lo que el cargo de un mes de 30 días equivale a 2118 GiB-days x (1/30 months/day) x $0.27/GiB-month = $19. Por consiguiente, las instantáneas son una alternativa potencialmente más rentable que retener los mensajes confirmados.

Ejemplo: Instantánea de una suscripción con mensajes pendientes

Si la suscripción tiene mensajes pendientes no confirmados cuando se crea la instantánea, se cobra una tarifa única equivalente al almacenamiento de esos mensajes pendientes durante los siete días completos. Por ejemplo, supongamos que tienes una suscripción con 10 GiB de mensajes pendientes no confirmados. La tarifa (que se cobra por única vez) en el momento en que se crea la instantánea sería de 10 GiB x 7 days / 30 days/month x 0.27/GiB-month = $0.63.

Implicaciones de la restricción de ubicación de los recursos

Una política de almacenamiento de mensajes puede generar tarifas adicionales de salida de región (de red) si esta exige que los datos salgan de una región de Google Cloud. Supongamos que un mensaje tiene las siguientes características:

  • Se publica en la región A.
  • Se enruta a la región B para el almacenamiento.
  • Se entrega a un cliente suscriptor en la región C.

En este caso, ocurre lo siguiente:

  • La salida de red de la región A a la B se le factura al proyecto que contiene el tema.
  • La salida de la región B a la C se le factura al proyecto que contiene la suscripción.

Se le cobra una tarifa de salida al proyecto que contiene el tema solo si el mensaje publicado se almacena en una región diferente de la región en la que se publicó (es decir, si B es una región distinta de A). Se le cobra una tarifa de salida al proyecto que contiene la suscripción solo si el mensaje publicado se almacena en una región diferente de la del cliente suscriptor (si C no es la misma región que B).