Tarifs

Les tarifs de Pub/Sub sont basés sur les éléments suivants :

  • Ingestion et distribution des messages
  • Stockage des messages associé à la fonctionnalité de recherche : instantanés et messages confirmés conservés

Ingestion et distribution des messages

Tarifs de distribution des messages

L'ingestion et la distribution des messages sont facturées par volume de données transmises au cours d'un mois calendaire. Les 10 premiers gigaoctets sont gratuits. Le tarif d'ingestion ou de distribution des messages est ensuite de 40 $ par Tio.

Le volume des données d'un message est la somme des éléments suivants :

  • Le nombre d'octets contenus dans la chaîne du corps du message encodé
  • Pour chaque attribut, la taille de la clé et sa valeur
  • 20 octets pour l'horodatage
  • La taille de la chaîne message_id
  • Des champs supplémentaires facultatifs, tels que ceux associés à l'accès anticipé et à d'autres API à accès restreint

Un minimum de 1 000 octets par requête de publication, de distribution ou d'extraction est retenu, quelle que soit la taille du message. Autrement dit, il est moins coûteux de regrouper plusieurs messages par requête lorsque leur taille est inférieure à 1 000 octets.

Les frais d'ingestion et de distribution ne s'appliquent qu'aux requêtes de publication et aux données fournies par des opérations de type pull, streamingPull ou push. Les autres opérations sont gratuites.

Si vous ne payez pas en USD, les tarifs indiqués dans votre devise sur la page des codes SKU de Google Cloud s'appliquent. Les tarifs sont exprimés par Tio (240 octets, soit environ 1,1 billion d'octets).

Frais de sortie d'une région de données

Les frais de sortie Internet et de distribution de messages entre les régions Google Cloud sont conformes aux tarifs du réseau Compute Engine, sauf exceptions suivantes :

  • Il n'y a pas de frais de sortie de zone pour l'utilisation de Pub/Sub.
  • La sortie vers les produits Google n'est pas exempte de frais.

Par exemple, un message de 1 Mio publié dans la région us-west1 et distribué à un abonné dans la région europe-west1 entraîne des frais répartis entre deux codes SKU distincts :

  • 2 Mio pour la distribution de base des messages (1 Mio pour la publication et la distribution)
  • 1 Mio pour la distribution interrégionale de données du continent américain vers la zone EMEA

Pour mieux appréhender votre utilisation, vous pouvez exporter vos données de facturation vers BigQuery. Une fois cette fonction configurée, vous pouvez effectuer une requête comme celle-ci :

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;

Exemple : Ingestion et distribution des messages

Pour illustrer le coût total des opérations auquel vous pouvez vous attendre, prenons l'exemple d'une application qui publie des messages de 1 024 ko dans un sujet associé à deux abonnements, avec un débit de 1 Mio/seconde. Si nous partons du principe que les abonnés suivent le rythme, Pub/Sub ingère 1 Mio/seconde et distribue 2 Mio/seconde, pour un débit total de transmission de données de 3 Mio/seconde. Sur un mois de 30 jours, cet exemple correspond à 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. Après soustraction des 10 premiers Gio (gratuits), le volume de données est de 7,406 Tio x 40 $ par Tio. Le coût total est donc de 296,24 $.

Facturation multiprojet

Si vous utilisez Pub/Sub sur plusieurs projets, les frais Pub/Sub sont facturés au projet qui contient la ressource demandée :

  • Le projet facturé pour la publication est celui qui contient le sujet.
  • Le projet facturé pour l'abonnement est celui qui contient l'abonnement.

Par exemple, si l'abonnement se trouve dans le projet A (même s'il est rattaché à un sujet du projet B), les données extraites de l'abonnement sont facturées au projet A.

Si un compte de service autorisé dans le projet A consulte les messages d'un abonnement dans le projet B, les données extraites de l'abonnement sont facturées au projet B.

Tarifs

Le stockage des messages est facturé au tarif de 0,27 $/Gio par mois dans les cas suivants :

  • Un abonnement est configuré pour conserver les messages confirmés afin qu'ils soient de nouveau traités à l'aide de la fonctionnalité de recherche. Dans ce cas, des frais de stockage sont facturés pour la conservation des messages confirmés.
  • Un instantané d'un abonnement est créé. Dans ce cas, des frais sont facturés pour le stockage des messages non confirmés de l'instantané. De plus, si l'abonnement comporte des messages non confirmés en attente lors de la création de l'instantané, des frais uniques équivalant au stockage de ces tâches en attente pendant sept jours sont facturés.

Les instantanés sont un moyen plus économique de conserver les messages pour la relecture que de conserver tous les messages confirmés, car un seul instantané peut être utilisé pour plusieurs abonnements. Les instantanés comportent généralement un petit volume de données facturables qui augmente progressivement avec leur ancienneté. Les abonnements configurés pour conserver les messages confirmés conservent les données des messages pendant une période fixe (en état stable), mais peuvent être plus pratiques.

Exemple : Abonnement avec conservation de messages confirmés

Imaginez un sujet avec un seul abonnement.

  • Ce sujet présente un débit constant de 1 Mio/seconde de données entrantes.
  • L'abonné suit les données de l'abonnement, en les consommant à un rythme de 1 Mio/seconde, et dispose d'un nombre négligeable de nouveaux messages en attente.
  • L'abonnement est configuré pour conserver les messages confirmés pendant sept jours.

Dans cette configuration, le volume des messages confirmés augmente de 1 MiB/second x 3600 seconds/hour x 24 hours/day = 86.4 GiB/day.

Au bout de sept jours, les messages confirmés qui ont été conservés arrivent à expiration et le volume total des messages confirmés stockés se stabilise à 7 days x 86.4 GiB/day = 605 GiB. Le montant total des frais mensuels pour le stockage de ce volume de messages est d'environ 605 GiB-month x $0.27/GiB-month = $163.

Exemple : Frais de stockage de messages avec un instantané

Les frais de stockage des messages avec un instantané comprennent des frais supplémentaires pour les nouveaux messages publiés dans le sujet de l'instantané et des frais uniques au moment de la création. Prenons l'exemple d'un instantané de l'abonnement avec des messages confirmés conservés. La durée de vie de l'instantané est de sept jours, à moins qu'il ne soit supprimé plus tôt, car l'abonnement à partir duquel il a été créé ne présente aucun message non confirmé en attente. Les données publiées au cours de la première minute (60 Mio) sont stockées pendant sept jours moins une minute, les données publiées lors de la deuxième minute pendant sept jours moins deux minutes, et ainsi de suite. Par conséquent, la taille des tâches en attente est de 605 Gio à l'expiration de l'instantané, ce qui correspond à 1/2 x 605 GiB x 7 days = 2118 GiB-days de stockage utilisés, pour lesquels les frais appliqués sont de 2118 GiB-days x (1/30 months/day) x $0.27/GiB-month = $19 sur un mois de 30 jours. Ainsi, les instantanés constituent une alternative potentiellement économique à la conservation des messages confirmés.

Exemple : Instantané d'un abonnement avec des tâches en attente

Si l'abonnement comporte des messages non confirmés en attente lors de la création de l'instantané, des frais uniques équivalant au stockage de ces tâches en attente pendant les sept jours pleins sont facturés. Prenons l'exemple d'un abonnement avec 10 Gio de messages en attente non confirmés. Les frais uniques au moment de la création de l'instantané seront de 10 GiB x 7 days / 30 days/month x 0.27/GiB-month = $0.63.

Répercussions de la restriction de l'emplacement des ressources

Une règle de stockage des messages peut entraîner des frais de sortie (réseau) régionaux supplémentaires si elle force les données à quitter une région Google Cloud. Prenons l'exemple d'un message qui est :

  • publié dans la région A ;
  • routé vers la région B pour son stockage ;
  • distribué à un client abonné de la région C.

Dans ce cas :

  • Le projet qui contient le sujet est facturé pour la sortie du réseau de la région A à la région B.
  • Le projet qui contient l'abonnement est facturé pour la sortie de la région B à la région C.

Le projet qui contient le sujet ne sera soumis à des frais de sortie que si le message publié est stocké dans une région différente de la région dans laquelle le message a été publié (B est bien une région différente de A). Le projet qui contient l'abonnement ne sera soumis à des frais de sortie que si le message publié est stocké dans une région différente de celle où se trouve le client abonné (C est une région différente de B).