Les services Cloud Run proposent deux paramètres de facturation:
Facturation basée sur les requêtes (par défaut): les instances Cloud Run ne sont facturées que lorsque les instances traitent des requêtes lors du traitement des requêtes, du démarrage et de l'arrêt des conteneurs. Pour en savoir plus, consultez la section Cycle de vie des instances. Ce paramètre était auparavant appelé Processeur alloué uniquement lors du traitement des requêtes.
Facturation basée sur les instances: les instances Cloud Run sont facturées pendant toute la durée de vie des instances, même en l'absence de requêtes entrantes. La facturation basée sur les instances peut être utile pour exécuter des tâches en arrière-plan de courte durée et d'autres tâches de traitement asynchrones. Ce paramètre s'appelait auparavant Processeur toujours alloué.
Si vous choisissez la facturation basée sur les requêtes, vous êtes facturé par requête et uniquement lorsque l'instance traite une requête. Si vous choisissez la facturation basée sur les instances, le cycle de vie complet de l'instance vous est facturé. Pour en savoir plus, consultez les grilles tarifaires de Cloud Run.
L'outil de recommandation examine automatiquement le trafic reçu par votre service Cloud Run au cours du mois passé et recommande de passer de la facturation basée sur les requêtes à la facturation basée sur les instances, si cela est moins cher.
Impact de l'allocation de processeur
La sélection d'un paramètre de facturation a une incidence sur l'allocation du processeur.
- Avec la facturation basée sur les requêtes, le processeur n'est alloué que lors du traitement des requêtes.
- Avec la facturation basée sur les instances, le processeur est alloué pendant tout le cycle de vie de l'instance de conteneur.
Choisir le paramètre de facturation approprié
Le choix du paramètre de facturation adapté à votre cas d'utilisation dépend de plusieurs facteurs, tels que les modèles de trafic, l'exécution en arrière-plan et les coûts, chacun d'entre eux étant décrit dans les sections suivantes.
Remarques concernant les modèles de trafic
- La facturation basée sur les requêtes est recommandée lorsque le trafic entrant est sporadique, intensif ou irrégulier.
- La facturation basée sur les instances est recommandée lorsque le trafic entrant est constant et varie lentement.
Considérations sur l'exécution en arrière-plan
La sélection de la facturation basée sur les instances alloue le processeur même en dehors du traitement des requêtes, ce qui vous permet d'exécuter des tâches en arrière-plan de courte durée et d'autres tâches de traitement asynchrone après avoir renvoyé des réponses. Exemple :
- Exploiter des agents de surveillance tels qu'OpenTelemetry, qui peuvent supposer qu'ils peuvent s'exécuter en arrière-plan
- Utiliser les goroutines Go, asynchrones Node.js, les threads Java et les coroutines Kotlin
- Utilisation de frameworks d'application qui reposent sur des fonctionnalités de planification et d'arrière-plan intégrées
Les instances inactives, y compris celles qui sont gardées en attente en utilisant un nombre minimal d'instances, peuvent être arrêtées à tout moment. Si vous devez terminer des tâches en cours avant l'arrêt du conteneur, vous pouvez intercepter le signal SIGTERM pour accorder un délai de grâce de 10 secondes à une instance avant son arrêt.
Envisagez d'utiliser Cloud Tasks pour exécuter des tâches asynchrones. Cloud Tasks relance automatiquement les tâches ayant échoué et accepte des temps d'exécution allant jusqu'à 30 minutes.
Considérations liées au coût
Si vous utilisez la facturation basée sur les requêtes, la facturation basée sur les instances peut être plus économique si:
- Votre service Cloud Run traite un grand nombre de requêtes en cours à un rythme relativement régulier.
- Vous ne voyez pas beaucoup d'instances "inactives" lorsque vous consultez la métrique de comptage d'instances.
Vous pouvez utiliser le simulateur de coût pour estimer les différences de coût.
Considérations relatives à l'autoscaling
Cloud Run autoscales du nombre d'instances de conteneur.
Pour un service défini sur Facturation basée sur les requêtes, Cloud Run effectue l'autoscaling du nombre d'instances en fonction de l'utilisation du processeur uniquement pendant le traitement des requêtes.
Pour un service défini sur Facturation basée sur les instances, Cloud Run effectue l'autoscaling du nombre d'instances en fonction de l'utilisation du processeur pour tout le cycle de vie de l'instance de conteneur, sauf lors du scaling vers et à partir de zéro, où il utilise uniquement les requêtes.
Remarques sur la facturation basée sur les instances
Même si le paramètre de facturation est défini sur Facturation basée sur les instances, l'autoscaling Cloud Run est toujours appliqué et peut mettre fin aux instances si elles ne sont pas nécessaires pour gérer le trafic entrant ou l'utilisation actuelle de processeur sans lien avec les requêtes. Une instance ne reste jamais inactive plus de 15 minutes après le traitement d'une requête, sauf si elle reste active à l'aide d'un nombre minimal d'instances.
Combiner la facturation basée sur les instances avec un certain nombre d'instances minimales permet d'exécuter un certain nombre d'instances avec un accès complet aux ressources de processeur, ce qui permet des cas d'utilisation du traitement en arrière-plan. Lorsque vous utilisez ce modèle, Cloud Run applique l'autoscaling des instances même si un service utilise un processeur sans lien avec les requêtes.
Si vous utilisez des vérifications d'état, vous devez utiliser la facturation basée sur les instances pour chaque vérification. Pour en savoir plus sur la facturation, consultez les vérifications de l'état des conteneurs.
Rôles requis
Pour obtenir les autorisations nécessaires pour configurer et déployer des services Cloud Run, demandez à votre administrateur de vous accorder les rôles IAM suivants :
-
Développeur Cloud Run (
roles/run.developer
) sur le service Cloud Run -
Utilisateur du compte de service (
roles/iam.serviceAccountUser
) sur l'identité du service
Pour obtenir la liste des rôles et des autorisations IAM associés à Cloud Run, consultez les sections Rôles IAM Cloud Run et Autorisations IAM Cloud Run. Si votre service Cloud Run communique avec des APIGoogle Cloud , telles que des bibliothèques clientes Cloud, consultez le guide de configuration de l'identité du service. Pour en savoir plus sur l'attribution de rôles, consultez les pages Autorisations de déploiement et Gérer les accès.
Définir et mettre à jour la facturation
Tout changement de configuration entraîne la création d'une révision. Les révisions ultérieures obtiennent aussi automatiquement le même paramètre de configuration, à moins que vous ne le mettiez explicitement à jour.
Si vous sélectionnez la facturation basée sur les instances, vous devez spécifier au moins 512 Mio de mémoire.
Vous pouvez modifier le paramètre de facturation à l'aide de la console Google Cloud , de gcloud CLI ou d'un fichier YAML lorsque vous créez un service ou déployez une nouvelle révision:
Console
Dans la console Google Cloud , accédez à Cloud Run:
Cliquez sur Déployer un conteneur et sélectionnez Service pour configurer un nouveau service. Si vous configurez un service existant, cliquez sur celui-ci puis sur Modifier et déployer la nouvelle révision.
Si vous configurez un nouveau service, remplissez la page initiale des paramètres du service.
Sélectionnez un paramètre de facturation sous Facturation. Sélectionnez la facturation basée sur les requêtes pour que vos instances ne soient facturées que pendant le traitement des requêtes. Sélectionnez la facturation basée sur les instances pour que vos instances soient facturées pendant toute la durée de leur vie.
Cliquez sur Créer ou Déployer.
gcloud
Vous pouvez mettre à jour le paramètre de facturation. Pour configurer la facturation basée sur les instances pour un service donné:
gcloud run services update SERVICE --no-cpu-throttling
Remplacez SERVICE par le nom du service.
Pour définir la facturation basée sur les requêtes:
gcloud run services update SERVICE --cpu-throttling
Vous pouvez également définir votre paramètre de facturation lors du déploiement. Pour définir votre paramètre de facturation sur la facturation basée sur les instances:
gcloud run deploy --image IMAGE_URL --no-cpu-throttling
Pour définir votre paramètre de facturation sur la facturation basée sur les requêtes:
gcloud run deploy --image IMAGE_URL --cpu-throttling
Remplacez IMAGE_URL par une référence à l'image de conteneur, par exemple us-docker.pkg.dev/cloudrun/container/hello:latest
. Si vous utilisez Artifact Registry, le dépôt REPO_NAME doit déjà être créé. L'URL se présente sous la forme suivante : LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
.
YAML
Si vous créez un service, ignorez cette étape. Si vous mettez à jour un service existant, téléchargez sa configuration YAML :
gcloud run services describe SERVICE --format export > service.yaml
Mettez à jour l'attribut
cpu
:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: template: metadata: annotations: run.googleapis.com/cpu-throttling: 'BOOLEAN' name: REVISION
Remplacer
- SERVICE par le nom de votre service Cloud Run
- BOOLEAN avec
true
pour définir la facturation basée sur les requêtes oufalse
pour définir la facturation basée sur les instances. - REVISION par un nouveau nom de révision ou supprimez-le (le cas échéant). Si vous indiquez un nouveau nom de révision, il doit répondre aux critères suivants :
- Commencer par
SERVICE-
- Ne contenir que des lettres minuscules, des chiffres et
-
- Ne pas se terminer par
-
- Ne pas dépasser 63 caractères
- Commencer par
Créez ou mettez à jour le service à l'aide de la commande suivante :
gcloud run services replace service.yaml
Terraform
Pour savoir comment appliquer ou supprimer une configuration Terraform, consultez la page Commandes Terraform de base.
Ajoutez les éléments suivants à une ressource google_cloud_run_v2_service
dans votre configuration Terraform, sous template.containers.resources
.
Afficher les paramètres de facturation
Pour afficher les paramètres de facturation actuels de votre service Cloud Run:
Console
Dans la console Google Cloud , accédez à Cloud Run:
Cliquez sur le service qui vous intéresse pour ouvrir la page Informations sur le service.
Cliquez sur l'onglet Révisions.
Dans le panneau de détails sur la droite, le paramètre de facturation est répertorié sous l'onglet Général.
gcloud
Exécutez la commande suivante :
gcloud run services describe SERVICE
Recherchez le paramètre de facturation dans la configuration renvoyée.