Quotas

Ce document répertorie les quotas et limites qui s'appliquent à App Engine.

Un quota limite la quantité d'une ressource Google Cloud partagée particulière que votre projet cloud peut utiliser, y compris les composants matériels, logiciels et réseau.

Les quotas font partie d'un système qui effectue les opérations suivantes :

  • Surveille votre utilisation ou votre consommation des produits et services Google Cloud
  • Limite la consommation de ces ressources pour des raisons telles que l'équité et la réduction des pics d'utilisation
  • Gère des configurations qui appliquent automatiquement des restrictions recommandées
  • Fournit un moyen de modifier le quota ou de demander des modifications

Dans la plupart des cas, lorsqu'un quota est dépassé, le système bloque immédiatement l'accès à la ressource Google concernée et la tâche que vous essayez d'effectuer échoue. Dans la plupart des cas, les quotas s'appliquent à chaque projet Cloud. Ils sont partagés entre toutes les applications et adresses IP qui utilisent ce projet.

Il existe également des limites pour les ressources App Engine. Ces limites ne sont pas liées au système de quotas. Sauf indication contraire, les limites ne peuvent pas être modifiées.

La consommation de ressources d'une application App Engine est limitée par certains quotas. Pour consulter la consommation quotidienne de vos applications, accédez à la page d'informations sur les quotas de Google Cloud Console.

Types de quotas

Les types de quotas suivants s'appliquent à vos applications App Engine :

  • Les quotas gratuits fournissent gratuitement une certaine quantité de chaque ressource à votre application. Une fois que votre application a consommé un quota gratuit, toute utilisation supplémentaire de la ressource concernée vous est facturée.

    Seul l'environnement standard App Engine offre des quotas gratuits.

  • Les quotas quotidiens protègent l'intégrité du système App Engine en garantissant qu'aucune application ne consomme trop de ressources au détriment des autres. Un message d'erreur s'affiche si vous dépassez ces limites. Les quotas quotidiens sont réactualisés à minuit (heure du Pacifique).
  • Les quotas par minute empêchent votre application de consommer toutes ses ressources trop rapidement et évitent que les autres applications monopolisent une ressource donnée. Si votre application consomme trop rapidement une ressource et épuise un quota par minute, le mot "Limité" s'affiche à côté du quota concerné sur la page Quotas de la console Google Cloud. Les requêtes portant sur les ressources qui atteignent leur limite par minute sont refusées.

Les propriétaires de projet et les administrateurs de la facturation peuvent activer la facturation pour un projet.

Lorsque vous activez la facturation pour votre application, les limites de sécurité de l'application augmentent. Pour en savoir plus, consultez la section Ressources.

Pour connaître les conséquences d'un dépassement de quota et découvrir comment gérer les conditions de ce dépassement, consultez la section Lorsqu'une ressource est épuisée.

Astuce : Les quotas maximaux par minute permettent de faire face à des niveaux de trafic élevés, par exemple si votre site est mentionné dans les actualités. Si vous pensez qu'un quota ne répond pas à cette exigence, envoyez des commentaires dans l'outil de suivi des problèmes. Sachez que l'envoi de commentaires ne constitue pas une demande d'augmentation de votre quota, mais cela nous permettra d'identifier le quota qui est éventuellement trop faible pour les cas d'utilisation générale.

Si vous vous attendez à des niveaux de trafic très élevés, ou que votre application nécessite des quotas particulièrement élevés (par exemple, en raison d'un lancement de produits ou de tests de charge importants), nous vous recommandons de souscrire une formule d'assistance.

Renouvellement des ressources

App Engine assure le suivi de l'utilisation des ressources de votre application par rapport aux quotas du système. Cette plate-forme réinitialise toutes les mesures de ressources au début de chaque jour calendaire (à l'exception des données stockées qui représentent toujours l'espace de stockage utilisé du datastore).

Les quotas quotidiens sont réinitialisés à minuit (heure du Pacifique), tandis que les quotas par minute sont renouvelés toutes les 60 secondes.

Lorsqu'une ressource est épuisée

Lorsqu'une application consomme toute une ressource attribuée, la ressource devient indisponible jusqu'à ce que le quota soit renouvelé. Cela peut signifier que votre application ne fonctionnera pas tant que le quota n'aura pas été renouvelé.

Concernant les ressources nécessaires pour lancer une requête : si la ressource est épuisée, App Engine renvoie par défaut un code d'erreur HTTP 403 ou 503 pour la requête plutôt que d'appeler un gestionnaire de requêtes. Ce comportement s'applique à la ressource Instances-heure.

Astuce : Vous pouvez configurer votre application de sorte qu'elle affiche une page d'erreur personnalisée lorsqu'elle dépasse un quota. Pour en savoir plus, consultez la documentation de référence sur le fichier de configuration pour Python (2.7, 3), Java, Go, PHP (5.5, 7) ou Node.js .

Concernant toutes les autres ressources : si l'application tente de consommer une ressource épuisée, une exception est générée. Cette exception peut être interceptée et traitée par l'application (par exemple, via la diffusion d'un message d'erreur visible par l'utilisateur). Dans l'API Python, cette exception est apiproxy_errors.OverQuotaError. Dans l'API pour Java, cette exception est com.google.apphosting.api.ApiProxy.OverQuotaException. Dans l'API Go, la fonction appengine.IsOverQuota indique si une erreur d'appel d'API résulte d'un quota disponible insuffisant.

L'exemple suivant montre comment détecter l'erreur OverQuotaError, qui peut être générée par la méthode SendMessage() si un quota concernant les e-mails est dépassé :

try:
    mail.SendMessage(to='test@example.com', from='admin@example.com',
            subject='Test Email', body='Testing')
except apiproxy_errors.OverQuotaError, message:
    # Log the error. logging.error(message)
    # Display an informative message to the user.
    self.response.out.write('The email could not be sent. '
            'Please try again later.')

Votre application dépasse-t-elle les limites par défaut ? Si vous avez besoin d'un quota d'e-mails plus important, vous pouvez envoyer des e-mails avec SendGrid. Pour toute autre augmentation de quota, si vous disposez d'une formule d'assistance Silver, Gold ou Platinum, contactez votre conseiller au sein de l'équipe d'assistance pour demander des limites de débit plus élevées.

Quotas pour l'environnement flexible App Engine

Lorsque vous déployez une application dans l'environnement flexible App Engine, certaines ressources Google Cloud sont consommées. Il est possible que vous ne puissiez pas modifier ces ressources. Toutefois, celles-ci sont comptabilisées dans votre quota.

Par exemple, vous pouvez consulter l'utilisation des ressources d'instance de vos services sur la page Quotas des ressources de Compute Engine.

Resources

Une application peut faire appel aux ressources ci-dessous, soumises à des quotas. Les ressources évaluées en fonction des limites facturables sont indiquées par la mention "(facturable)". Les quantités de ressources sont allouées sur une période de 24 heures.

Le coût des ressources supplémentaires est indiqué sur la page des tarifs.

Bucket Cloud Storage par défaut

Le bucket Cloud Storage par défaut présente un quota gratuit d'utilisation quotidienne comme indiqué ci-dessous. Créez ce bucket par défaut gratuit sur la page des paramètres App Engine de Google Cloud Console pour votre projet.

Les quotas suivants s'appliquent spécifiquement à l'utilisation du bucket par défaut. Consultez le tarif des buckets multirégionaux de Cloud Storage pour obtenir la description de ces quotas.

Ressource Limite par défaut
Données stockées dans le bucket Cloud Storage par défaut 5 premiers Go gratuits ; pas de maximum
Opérations de classe A sur le bucket Cloud Storage par défaut 20 000 premières opérations par jour gratuites ; pas de maximum
Opérations de classe B sur le bucket Cloud Storage par défaut 50 000 premières opérations par jour gratuites ; pas de maximum
Sortie réseau du bucket Cloud Storage par défaut Premier Go gratuit ; pas de maximum

Blobstore

Les quotas suivants s'appliquent spécifiquement à l'utilisation du blobstore.

Données stockées dans le blobstore
Quantité totale de données stockées dans le blobstore. Disponible pour les applications payantes et gratuites.
Ressource Limite par défaut
Données stockées dans le blobstore 5 premiers Go gratuits ; pas de maximum

Stockage du code et des données statiques

Limite de données statiques
Dans tous les langages à l'exception de Go, la taille d'un fichier de données statiques ne peut pas dépasser 32 Mo. La limite pour Go est de 64 Mo.
Espace de stockage total
Le quota de stockage s'applique à la quantité totale de code et de données statiques stockée par toutes les versions de votre application. La taille totale du code et des fichiers statiques stockés est indiquée dans le tableau de bord principal. Les tailles individuelles sont affichées sur les écrans "Versions" et "Backends" respectivement. Des frais de 0,026 $ par Go et par mois seront facturés aux applications pour tout stockage de code et de données statiques dépassant 1 Go.

Firestore en mode Datastore (Datastore)

Le quota de données stockées (facturables) fait référence à toutes les données stockées pour l'application dans Datastore et Blobstore. Les autres quotas présentés dans la section "Datastore" de l'écran Détails des quotas de Google Cloud Console se rapportent spécifiquement au service Datastore.

Données stockées (facturables)

Toutes les données stockées dans les entités du datastore, les index correspondants et le blobstore.

Il est important de noter que les données stockées dans le datastore peuvent entraîner des frais significatifs. Ces frais dépendent du nombre et des types de propriétés associées, et incluent l'espace utilisé par les index intégrés et personnalisés. Chaque entité stockée dans le datastore requiert les métadonnées suivantes :

  • La clé de l'entité, y compris le genre, l'ID ou le nom de clé, et les clés des ancêtres de l'entité.
  • Le nom et la valeur de chaque propriété. Étant donné que le datastore n'obéit pas à un schéma, le nom de chaque propriété doit être enregistré avec la valeur de la propriété pour toute entité donnée.
  • Toute ligne d'index intégré et personnalisé qui fait référence à cette entité. Chaque ligne contient le genre de l'entité, un nombre de valeurs de propriété en fonction de la définition de l'index, ainsi que la clé de l'entité.
Nombre d'index
Nombre d'index Datastore qui existent pour l'application. Cela inclut les index créés dans le passé qui n'apparaissent plus dans la configuration de l'application, mais n'ont pas été supprimés. Pour en savoir plus, consultez la page sur les limites de Datastore.
Opérations d'écriture
Nombre total d'opérations d'écriture de Datastore.
Opérations de lecture
Nombre total d'opérations de lecture de Datastore.
Opérations mineures
Nombre total d'opérations mineures de Datastore. Les opérations mineures incluent les appels relatifs à l'affectation d'ID Datastore ou les requêtes qui ne contiennent que des clés.
Ressource Limite par défaut
Données stockées (facturables) 1 Gio gratuit ; pas de maximum.
Au-delà du quota gratuit, des taux de facturation s'appliquent.
Nombre d'index 200
Opérations de lecture d'entités 50 000 gratuites ; pas de maximum
Au-delà du quota gratuit, des taux de facturation s'appliquent.
Opérations d'écriture d'entités 20 000 gratuites ; pas de maximum
Au-delà du quota gratuit, des taux de facturation s'appliquent.
Opérations de suppression d'entités 20 000 gratuites ; pas de maximum
Au-delà du quota gratuit, des taux de facturation s'appliquent.
Opérations mineures Illimité

Remarque : Les opérations Datastore générées par l'administrateur Datastore et le lecteur Datastore sont comptabilisées dans le quota de votre application.

Déploiements

Vous pouvez déployer chaque application App Engine jusqu'à 10 000 fois par jour.

Lors du déploiement, Cloud Build crée une image de conteneur qui est stockée dans Container Registry. Des frais vous seront facturés si l'espace de stockage total occupé par les images est supérieur à celui inclus dans la version gratuite.

Files

Le quota suivant s'applique au nombre total de fichiers de déploiement d'applications.

Files Maximum
Fichiers par défaut par application 10 000 fichiers
Contactez l'assistance pour demander une augmentation.

Heures d'utilisation d'une instance

L'utilisation des instances est facturée selon leur temps d'activité, à un taux horaire donné.

Des quotas gratuits sont appliqués spécifiquement aux classes d'instances "F" et "B" (également appelées classes d'instances "frontend" et "backend"). Sachez que lorsque vous utilisez les services App Engine, la classe d'instance du service détermine le quota qui s'applique.

Ressource Quota gratuit
Instances "F" 28 heures gratuites par jour
Instances "B" 9 heures gratuites par jour

Les instances-heure sont comptabilisées entre le démarrage et l'arrêt de l'instance, et en fonction du type de scaling défini. Les règles suivantes sont appliquées :

  • Scaling de base ou automatique : le décompte se termine 15 minutes après que l'instance a fini de traiter sa dernière requête.
  • Scaling manuel : le décompte se termine 15 minutes après l'arrêt de l'instance.

Si le nombre d'instances inactives créées par App Engine dépasse le maximum défini dans l'onglet "Paramètres de performances" de la console Google Cloud, les instances-heure des instances excédentaires ne sont pas comptabilisées.

Logs

L'API Logs fait l'objet d'une facturation à l'usage lors de la récupération des données de journal.

L'attribution d'un quota d'ingestion de journaux fait référence aux données des journaux de requête et des journaux d'application pour une application. La journalisation des applications App Engine est fournie par la suite Google Cloud Operations. Consultez les tarifs de la suite Google Cloud Operations pour en savoir plus sur les taux et les limites.

E-mails

App Engine facture l'utilisation des e-mails "par message", en comptant chaque e-mail pour chaque destinataire. Par exemple, l'envoi d'un e-mail à 10 destinataires compte pour 10 messages.

Messages envoyés
Nombre total de messages envoyés par l'application. Sachez que le quota maximal de messages envoyés reste au niveau gratuit jusqu'au paiement de la première facturation de votre application.
Messages administrateur envoyés
Nombre total de messages envoyés par l'application à ses administrateurs. (La taille de chaque e-mail administrateur, y compris les en-têtes, les pièces jointes et le corps du message, est limitée à 16 ko).
Données du corps du message envoyées
Quantité de données envoyées dans le corps des e-mails.
Pièces jointes envoyées
Nombre total de pièces jointes envoyées avec les e-mails.
Données envoyées en pièces jointes
Quantité de données envoyées en tant que pièces jointes d'e-mails.
Ressource Limite quotidienne par défaut Fréquence maximale
Destinataires contactés par e-mail 100 messages 8 messages/minute
Administrateurs contactés par e-mail 5 000 e-mails 24 e-mails/minute
Données du corps du message envoyées 60 Mo 340 ko/minute
Pièces jointes envoyées 2 000 pièces jointes 8 pièces jointes/minute
Données envoyées en pièces jointes 100 Mo 10 Mo/minute

Vous pouvez ajouter jusqu'à 50 expéditeurs autorisés pour l'API Mail.

Envoyer des messages au-delà du quota de messages quotidien

Si votre application nécessite des quotas plus élevés pour l'envoi de messages, vous pouvez utiliser un fournisseur de messagerie tiers tel que SendGrid, Mailjet ou Mailgun.

Requêtes

Bande passante sortante (facturable)

Quantité de données envoyées par l'application en réponse à des requêtes.

Par exemple :

  • Les données diffusées en réponse à des requêtes sécurisées et non sécurisées par des serveurs d'applications, des serveurs de fichiers statiques ou le Blobstore
  • Les données envoyées dans les e-mails
  • Les données des requêtes HTTP sortantes envoyées par le service de récupération d'URL
Bande passante entrante

Quantité de données reçues par l'application à partir des requêtes. La taille d'une requête HTTP entrante ne peut pas être supérieure à 32 Mo.

Par exemple :

  • Les données reçues par l'application dans les requêtes sécurisées et non sécurisées
  • Les importations vers le blobstore
  • Les données reçues en réponse aux requêtes HTTP par le service de récupération d'URL
Bande passante sortante sécurisée
Quantité de données envoyées par l'application via une connexion sécurisée en réponse à des requêtes.
Bande passante entrante sécurisée
Quantité de données reçues par l'application via une connexion sécurisée à partir des requêtes.

Les quotas gratuits pour l'API Search sont indiqués dans le tableau ci-dessous. Reportez-vous à la documentation sur Java, Python et Go pour obtenir une description détaillée de chaque type d'appel de l'API Search.

Les ressources de l'API Search sont facturées selon les prix de la grille tarifaire.

Ressource ou appel d'API Quota gratuit
Stockage total (documents et index) 0,25 Go
Requêtes 1 000 requêtes par jour
Ajout de documents aux index 0,01 Go par jour

Dans la section "Quota" de la console de l'application, vous trouverez un décompte brut des requêtes de l'API. Sachez que si vous indexez plusieurs documents dans un même appel, le nombre d'appels augmente en fonction du nombre de documents.

Pour assurer la fiabilité du service, l'API Search impose les limites suivantes :

  • 100 minutes cumulées de temps d'exécution des requêtes par minute, dans une application et un index
  • 15 000 documents ajoutés/supprimés par minute
Une limite de 10 Go de stockage par index est également appliquée. Si une application tente de dépasser cette limite, une erreur de quota insuffisant est générée. Cette limite peut être augmentée jusqu'à 200 Go. Pour ce faire, vous devez envoyer une demande depuis la page App Engine Search de Google Cloud Console.

Remarque : Bien que ces limites soient appliquées à la minute, la console Google Cloud affiche les totaux quotidiens pour chacune d'elles. Les clients ayant souscrit une formule d'assistance Silver, Gold ou Platinum peuvent demander une augmentation des limites de débit en contactant leur conseiller au sein de l'équipe d'assistance.

File d'attente de tâches

Appels à l'API Task Queue
Nombre de fois où l'application a appelé l'API Task Queue pour mettre en file d'attente une tâche.
Nombre de tâches stockées dans l'API Task Queue
Nombre total de tâches que l'application a mises en file d'attente et qui ne sont pas encore exécutées.
Nombre d'octets des tâches stockées dans l'API Task Queue
Nombre d'octets consommés par les tâches que l'application a mises en file d'attente et qui ne sont pas encore exécutées.

Lorsqu'une tâche est exécutée, les requêtes associées sont comptabilisées dans les quotas de requêtes de l'application.

Ces limites s'appliquent à toutes les files d'attente de tâches :

Ressource Limite quotidienne Fréquence maximale
Appels à l'API Task Queue 1 000 000 000 N/A
Appels de gestion à l'API Task Queue (via la console Google Cloud) 10 000 n/a
Ressource Limite par défaut
Nombre de tâches stockées dans l'API Task Queue 10 000 000 000
Nombre d'octets des tâches stockées dans l'API Task Queue Aucune
Nombre maximal de files d'attente (files d'attente d'envoi et de retrait incluses, mais pas la file d'attente par défaut) 100 files d'attente

Remarque : Une fois une tâche exécutée ou supprimée, l'espace de stockage qu'elle utilisait est libéré. Votre quota de stockage est régulièrement mis à jour et peut ne pas correspondre immédiatement à l'espace récupéré. Vous pouvez configurer une limite du nombre d'octets de tâches stockées en ajustant la configuration de votre file d'attente. Pour en savoir plus, consultez la documentation sur Python, Java, Go ou PHP.

Les limites suivantes s'appliquent aux files d'attente de tâches en fonction de leur type :

Limites de la file d'attente d'envoi
Taille maximale de la tâche100 ko
Vitesse d'exécution d'une file d'attente500 appels de tâches par seconde et par file d'attente
Décompte/ETA maximal pour une tâche30 jours à partir de la date et de l'heure actuelles
Nombre maximal de tâches pouvant être ajoutées à un lot100 tâches
Nombre maximal de tâches pouvant être ajoutées à une transaction5 tâches
Nombre maximal par défaut de files d'attente de tâches100 files d'attente Contactez l'assistance pour demander une augmentation.
Limites de la file d'attente de retrait
Taille maximale de la tâche1 Mo
Décompte/ETA maximal pour une tâche30 jours à partir de la date et de l'heure actuelles
Nombre maximal de tâches pouvant être ajoutées à un lot100 tâches
Nombre maximal de tâches pouvant être ajoutées à une transaction 5 tâches
Nombre maximal de tâches que vous pouvez louer en une seule opération 1 000 tâches
Volume maximal de charge utile lors de la location d'un lot de tâches32 Mo
Nombre maximal par défaut de files d'attente de tâches100 files d'attente Contactez l'assistance pour demander une augmentation.

Cron

Les quotas suivants s'appliquent spécifiquement aux tâches Cron.

Tâches Cron
Nombre de tâches Cron.
Ressource Limite par défaut
Tâche Cron 250 tâches Cron

URL Fetch

Appels à l'API URL Fetch
Nombre de fois où l'application a accédé au service de récupération d'URL pour effectuer une requête HTTP ou HTTPS.
Données URL Fetch envoyées
Quantité de données envoyées au service de récupération d'URL dans les requêtes.
Données URL Fetch reçues
Quantité de données reçues du service de récupération d'URL dans les réponses. Elle est également comptabilisée dans le quota de bande passante entrante.
Ressource Limite quotidienne Fréquence maximale
Appels à l'API UrlFetch 860 000 000 appels 660 000 appels/minute
Données UrlFetch envoyées 4,5 To 3 600 Mo/minute
Données UrlFetch reçues 4,5 To 3 600 Mo/minute