Cuotas

Una aplicación de App Engine puede consumir recursos hasta alcanzar determinadas cuotas. Puedes ver el consumo diario de tus aplicaciones en la página de detalles de las cuotas en Google Cloud Console.

Tipos de cuotas

Los siguientes tipos de cuotas son válidos para las aplicaciones de App Engine:

  • Las cuotas gratuitas proporcionan a las aplicaciones una cantidad de cada recurso que puede usarse sin cargo. Cuando una aplicación supera una cuota gratuita, se te facturará el uso adicional que hagas de ese recurso.

    Las cuotas gratuitas solo se proporcionan para el entorno estándar.

  • Las cuotas diarias tienen como fin proteger la integridad del sistema de App Engine, ya que garantizan que ninguna aplicación individual pueda consumir recursos en forma tan excesiva que perjudique a otras apps. Si sobrepasas estos límites, aparecerá un mensaje de error. Las cuotas diarias se actualizan todos los días a la medianoche (hora del Pacífico).
  • Las cuotas por minuto evitan que las aplicaciones consuman la totalidad de los recursos en períodos muy reducidos y, además, impiden que otras apps acaparen por completo cualquier recurso en particular. Si una aplicación consume un recurso demasiado rápido y agota una cuota por minuto, aparecerá el mensaje “Limitado” junto a la cuota correspondiente en la página Cuotas de Cloud Console. Se denegarán las solicitudes de recursos que alcancen el límite máximo por minuto.

Los propietarios de proyectos y los administradores de facturación pueden habilitar la facturación para un proyecto determinado.

Cuando habilitas la facturación para tu aplicación, aumentan los límites de seguridad de la aplicación. Consulta la sección Recursos para obtener más detalles.

Consulta la sección ¿Qué ocurre cuando se agota un recurso? para obtener detalles acerca de lo que sucede cuando se supera una cuota y cómo manejar las condiciones que se imponen por exceder este límite.

Sugerencia: Las cuotas máximas por minuto son lo suficientemente altas para niveles de tráfico elevados y permiten manejar un aumento repentino en el tráfico cuando, por ejemplo, tu sitio aparece mencionado en un artículo periodístico. Si crees que una cuota en particular no cumple con este requisito, envía tus comentarios en la Herramienta de seguimiento de errores. Ten en cuenta que enviar comentarios no es una solicitud para aumentar tu cuota, pero nos ayudará a comprender qué cuota podría ser demasiado baja en casos de uso general.

Si esperas niveles de tráfico extremadamente altos, o por alguna razón tu aplicación requiere cuotas particularmente altas (p. ej., debido al lanzamiento significativo del producto o grandes pruebas de carga), te recomendamos que te registres en un paquete de asistencia.

Cómo se reabastecen los recursos

App Engine hace un seguimiento del uso que tu aplicación hace de los recursos en relación con las cuotas del sistema. App Engine restablece todas las mediciones de los recursos al comienzo de cada día natural (salvo los datos almacenados, que siempre representan la cantidad de almacenamiento de datos en uso).

Las cuotas diarias se reabastecen a medianoche (hora del Pacífico). Las cuotas por minuto se actualizan cada 60 segundos.

Qué ocurre cuando se agota un recurso

Cuando una aplicación consume por completo un recurso asignado, este deja de estar disponible hasta que se reabastezca la cuota. Esto podría implicar que tu aplicación no funcione hasta el reabastecimiento.

En el caso de los recursos que son necesarios para iniciar una solicitud, cuando se agota el recurso, la conducta predeterminada de App Engine es mostrar un código de error HTTP 403 o 503 para responder a la solicitud en lugar de llamar al controlador de solicitudes. Los siguientes recursos tienen este comportamiento:

  • Ancho de banda (de entrada y salida)
  • Horas de instancia

Sugerencia: Puedes configurar tu aplicación para que entregue una página de error personalizada cuando se exceda una cuota. Si quieres obtener detalles, consulta la referencia del archivo de configuración para Python (2.7, 3), Java, Go, PHP (5.5, 7) o Node.js.

En el caso de los demás recursos, se produce una excepción cada vez que la aplicación intenta consumir un recurso después de que este se agota. La aplicación puede capturar esta excepción y hacerse cargo de ella, por ejemplo, mostrando un mensaje que le explique el error al usuario. En la API de Python, esta excepción es apiproxy_errors.OverQuotaError. En la API para Java, esta excepción es com.google.apphosting.api.ApiProxy.OverQuotaException. En la API de GO, la función appengine.IsOverQuota informa si un error representa una falla en una llamada a la API debido a que la cuota disponible es insuficiente.

En el siguiente ejemplo, se muestra cómo detectar el OverQuotaError, que puede aumentarse a través del método SendMessage() cuando se supera una cuota basada en un correo electrónico:

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.')

¿Tu aplicación supera los límites predeterminados? Si necesitas una cuota más alta de correo electrónico, puedes usar SendGrid para enviar un correo electrónico. Si necesitas que se aumente cualquier otra cuota y tienes un paquete de asistencia Plata, Oro o Platino, puedes comunicarte con tu representante de asistencia para solicitar un aumento de los límites de capacidad de procesamiento.

Cuotas para el entorno flexible de App Engine

Cuando implementas una aplicación en el entorno flexible de App Engine, se consumen algunos recursos de Google Cloud Platform. Es posible que no puedas modificar estos recursos, pero igualmente se descontarán de tu cuota.

Recursos

Una aplicación puede usar los siguientes recursos hasta alcanzar el límite de la cuota correspondiente. Los recursos que se miden en relación con los límites de facturación se indican de la siguiente forma: (“facturable”). Las cantidades de cada recurso representan una asignación durante un período de 24 horas.

El costo de los recursos adicionales se indica en la página Precios.

Depósito predeterminado de Cloud Storage

El depósito predeterminado de Cloud Storage incluye una cuota gratuita de uso diario, como se muestra a continuación. Este depósito predeterminado gratuito para el proyecto se crea en la página de configuración de App Engine de Google Cloud Console.

Las siguientes cuotas se aplican específicamente al uso del depósito predeterminado. Consulta los precios de los depósitos multirregionales de Cloud Storage para ver una descripción de estas cuotas.

Recurso Límite predeterminado
Datos almacenados en el depósito predeterminado de Cloud Storage Los primeros 5 GB son gratuitos; no se aplica ningún límite máximo.
Operaciones de clase A del depósito predeterminado de Cloud Storage Las primeras 20,000 operaciones por día son gratuitas; no se aplica ningún límite máximo.
Operaciones de clase B del depósito predeterminado de Cloud Storage Las primeras 50,000 operaciones por día son gratuitas; no se aplica ningún límite máximo.
Salida de red del depósito predeterminado de Cloud Storage Es gratuita hasta alcanzar la cuota de ancho de banda saliente; no se aplica ningún límite máximo.

Blobstore

Las siguientes cuotas se aplican específicamente al uso del blobstore.

Datos almacenados en el blobstore
La cantidad total de datos almacenados en el blobstore. Disponible tanto para apps pagadas como gratuitas.
Recurso Límite predeterminado
Datos almacenados en el blobstore Los primeros 5 GB son gratuitos; no se aplica ningún límite máximo.

Almacenamiento de código y datos estáticos

Límite de datos estáticos
En todos los lenguajes, excepto Go, ningún archivo de datos estáticos puede tener más de 32 MB. El límite para Go es de 64 MB.
Almacenamiento total
La cuota de almacenamiento se aplica a la cantidad total de código y datos estáticos almacenados mediante todas las versiones de tu aplicación. El tamaño almacenado total de archivos estáticos y de código se enumera en la tabla del panel principal. Los archivos individuales se muestran en las pantallas Versiones y Backends, respectivamente. A las apps se les cobrará $0.026 por GB al mes por el almacenamiento de código y datos estáticos que supere 1 GB.

Datastore

La cuota de datos almacenados (facturables) se refiere a todos los datos almacenados para la aplicación en Datastore y en el blobstore. Las demás cuotas de la sección “Datastore” de la página de detalles sobre la cuota de Google Cloud Console se refieren específicamente al servicio de Datastore.

Datos almacenados (facturables)

La cantidad total de datos almacenados en las entidades del almacén de datos y los índices correspondientes, y el blobstore.

Es importante tener en cuenta que los datos contenidos en el almacén de datos pueden generar gastos considerables. Estos gastos dependen de la cantidad y los tipos de propiedades asociadas. Además, incluyen el espacio que usan los índices integrados y personalizados. Cada entidad guardada en el almacén de datos requiere los siguientes metadatos:

  • La clave de la entidad, que incluye el tipo, el ID o el nombre de la clave, así como las claves de las entidades principales de las que depende.
  • El nombre y valor de cada propiedad. Dado que el almacén de datos no tiene esquema, el nombre de cada propiedad debe almacenarse con el valor de la propiedad de cada entidad.
  • Las filas de los índices integrados y personalizados que hacen referencia a esa entidad. Cada fila contiene el tipo y la clave de la entidad, así como una cantidad variable de valores de propiedades, según la definición del índice.
Cantidad de índices
Es la cantidad de índices de Datastore que existen para la aplicación. Esto incluye los índices creados anteriormente que ya no aparecen en la configuración de la aplicación, pero que no se borraron. Consulta la página de límites de Datastore para obtener detalles adicionales sobre los límites.
Operaciones de escritura
Es la cantidad total de operaciones de escritura de Datastore.
Operaciones de lectura
Es la cantidad total de operaciones de lectura de Datastore.
Operaciones pequeñas
Es la cantidad total de operaciones pequeñas de Datastore. Las operaciones pequeñas incluyen las llamadas para asignar ID de Datastore o las búsquedas que solo requieren la clave.
Recurso Límite predeterminado
Datos almacenados (facturables) 1 GB gratis; no se aplica ningún límite máximo.
Cuando se supera la cuota gratuita, se aplican tarifas de facturación.
Cantidad de índices 200
Operaciones de lectura de entidades 50,000 gratis; no se aplica ningún límite máximo.
Cuando se supera la cuota gratuita, se aplican tarifas de facturación.
Operaciones de escritura de entidades 20,000 gratis; no se aplica ningún límite máximo.
Cuando se supera la cuota gratuita, se aplican tarifas de facturación.
Operaciones de eliminación de entidades 20,000 gratis; no se aplica ningún límite máximo.
Cuando se supera la cuota gratuita, se aplican tarifas de facturación.
Operaciones pequeñas Ilimitadas

Nota: Las operaciones de Datastore que generan el Administrador de Datastore y el Visualizador de Datastore se descuentan de la cuota de tu aplicación.

Implementaciones

Puedes realizar hasta 10,000 implementaciones por día en cada aplicación de App Engine.

Cuando realizas una implementación, Cloud Build compila una imagen de contenedor que se almacena en Container Registry. Se generarán cargos si el espacio de almacenamiento total que ocupan las imágenes supera el nivel gratuito.

Horas de instancia

El uso de instancias se factura por el tiempo de actividad de las instancias a una tarifa por hora determinada.

Las clases de instancias “F” y “B” (también conocidas como clases de instancias de “frontend” y de “backend”) tienen cuotas gratuitas independientes. Ten en cuenta que, cuando usas servicios de App Engine, la clase de instancia del servicio determina cuál de estas cuotas se aplica.

Recurso Cuota gratuita
Instancias de clase “F” 28 horas gratuitas por día
Instancias de clase “B” 9 horas gratuitas por día

La acumulación de horas de instancia comienza cuando se inicia una instancia y finaliza de acuerdo con lo que se describe a continuación, según el tipo de escalamiento que se especifique para la instancia:

  • Ajuste de escala automático o básico: la acumulación finalizará quince minutos después de que una instancia termine de procesar la última solicitud.
  • Ajuste de escala manual: la acumulación finalizará quince minutos después de que se desactive una instancia.

Si la cantidad de instancias inactivas creadas por App Engine supera el máximo especificado en la pestaña Configuración de rendimiento de Cloud Console, las instancias adicionales no acumularán horas de instancia.

Registros

La API de Logs se mide cuando se recuperan los datos de registro.

La asignación de transferencia de registros hace referencia a los registros de solicitud y a los datos de registro de una aplicación. Logging para aplicaciones de App Engine se proporciona mediante Google Cloud's operations suite. Consulta los precios de Google Cloud's operations suite para obtener más información sobre las tarifas y los límites.

Correo electrónico

App Engine factura el uso del correo electrónico “por mensaje”, para lo cual cuenta cada correo electrónico enviado a cada destinatario. Por ejemplo, si envías un correo electrónico a diez personas, se cuenta como 10 mensajes.

Mensajes enviados
Es la cantidad total de mensajes que envió la aplicación. Ten en cuenta que la cuota máxima de mensajes enviados se mantiene dentro del nivel gratuito hasta que se haya liquidado el primer cargo a tu aplicación.
Mensajes enviados a administradores
Es la cantidad total de mensajes que la aplicación envió a sus administradores. El límite de tamaño total para cada correo electrónico enviado a los administradores, incluidos el encabezado, los archivos adjuntos y el cuerpo del mensaje, es de 16 KB.
Datos enviados en el cuerpo del mensaje
Es la cantidad de datos que se enviaron en el cuerpo de los mensajes de correo electrónico. Esto también se considera dentro de la cuota de ancho de banda saliente.
Archivos adjuntos enviados
Es la cantidad total de archivos adjuntos enviados junto con los mensajes de correo electrónico.
Datos de archivos adjuntos enviados
Es la cantidad de datos entregados como archivos adjuntos de mensajes de correo electrónico. Esto también se considera dentro de la cuota de ancho de banda saliente.
Recurso Límite predeterminado diario Frecuencia máxima
Destinatarios contactados por correo electrónico 100 mensajes 8 mensajes/minuto
Administradores contactados por correo electrónico 5,000 correos electrónicos 24 correos electrónicos/minuto
Datos enviados en el cuerpo del mensaje 60 MB 340 KB/minuto
Archivos adjuntos enviados 2,000 archivos adjuntos 8 archivos adjuntos/minuto
Datos de archivos adjuntos enviados 100 MB 10 MB/minuto

Puedes agregar un máximo de 50 remitentes autorizados en la API de Mail.

Envía correos electrónicos más allá de la cuota diaria

Si tu aplicación necesita cuotas más altas para enviar correos electrónicos, puedes usar un proveedor de correo de terceros, como SendGrid, Mailjet o Mailgun, que tienen cuotas más altas.

Solicitudes

Ancho de banda saliente (facturable)

Es la cantidad de datos que envió la aplicación en respuesta a solicitudes.

Incluye lo siguiente:

  • datos entregados en respuesta a solicitudes seguras o no seguras de los servidores de la aplicación, de servidores de archivos estáticos o del blobstore
  • datos entregados en mensajes de correo electrónico
  • datos en solicitudes HTTP de salida que envió el servicio de recuperación de URL
Ancho de banda de entrada

La cantidad de datos que recibió la aplicación a partir de solicitudes. Cada solicitud HTTP entrante puede tener un máximo de 32 MB.

Incluye lo siguiente:

  • datos recibidos por la aplicación en solicitudes seguras o no seguras
  • archivos subidos al blobstore
  • datos recibidos en respuesta a solicitudes HTTP del servicio de recuperación de URL
Ancho de banda saliente seguro
La cantidad de datos que envió la aplicación mediante una conexión segura en respuesta a solicitudes. El ancho de banda saliente seguro también se considera dentro de la cuota de ancho de banda saliente.
Ancho de banda de entrada seguro
La cantidad de datos que recibió la aplicación mediante una conexión segura a partir de solicitudes. El ancho de banda de entrada seguro también se considera dentro de la cuota de ancho de banda de entrada.
Recurso Límite diario Frecuencia máxima
Ancho de banda saliente (facturable, incluye HTTPS) 1 GB sin cargo; máximo de 14,400 GB 10 GB/minuto
Ancho de banda entrante (incluye HTTPS) Ninguno Ninguna

La siguiente tabla presenta las cuotas gratuitas que se aplican a la Búsqueda. Consulta la documentación específica de Java, Python y Go para obtener una descripción detallada de cada tipo de llamada de Búsqueda.

Los recursos de la API de Search se cobran con base en las tarifas que figuran en el programa de precios.

Recurso o llamada a la API Cuota gratuita
Almacenamiento total (índices y documentos) 0.25 GB
Consultas 1,000 consultas por día
Agregar documentos a los índices 0.01 GB por día

La sección de la cuota en la consola de la aplicación muestra un recuento sin procesar de la cantidad de solicitudes a la API. Ten en cuenta que cuando indexas varios documentos en una sola llamada, el recuento de llamadas aumenta en función de la cantidad de documentos.

La API de Search impone los siguientes límites a fin de garantizar la fiabilidad del servicio:

  • 100 minutos totales de ejecución de consultas por minuto, dentro de una app y un índice
  • 15,000 documentos agregados/borrados por minuto
Además, se aplica un límite de 10 GB de almacenamiento por índice. Cuando una aplicación intenta superar esta cantidad, se muestra un error de cuota insuficiente. Este límite se puede aumentar hasta 200 GB mediante el envío de una solicitud desde la página App Engine Search de Google Cloud Console.

Nota: Si bien estos límites se hacen cumplir por minuto, Cloud Console muestra los totales diarios de cada uno. Los clientes con asistencia de nivel Plata, Oro o Platino pueden comunicarse con su representante de asistencia para solicitar el aumento de los límites de capacidad de procesamiento.

Lista de tareas en cola

Llamadas a la API de lista de tareas en cola
Es la cantidad total de veces que la aplicación llamó a la API de lista de tareas en cola para poner una tarea en la cola.
Recuento de tareas almacenadas en la lista de tareas en cola
Es la cantidad total de tareas que puso en cola la aplicación y todavía no se ejecutaron.
Bytes de tareas almacenadas en la lista de tareas en cola
Son los bytes consumidos por las tareas que puso en cola la aplicación y todavía no se ejecutaron.

Cuando se ejecuta una tarea, las solicitudes asociadas se toman en cuenta dentro de las cuotas de solicitudes de la aplicación.

Los siguientes límites se aplican a todas las listas de tareas en cola:

Recurso Límite diario Frecuencia máxima
Llamadas a la API de lista de tareas en cola 1,000,000,000 N/A
Llamadas de administración de la lista de tareas en cola (a través de Cloud Console) 10,000 N/A
Recurso Límite predeterminado
Recuento de tareas almacenadas en la lista de tareas en cola 10,000,000,000
Bytes de tareas almacenadas en la lista de tareas en cola Ninguno
Cantidad máxima de listas (incluye las listas de extracción y de aplicaciones en cola, pero no la lista predeterminada) 100 listas

Nota: Una vez que una tarea se ejecuta o se borra, el almacenamiento que usa se libera. Tu cuota de almacenamiento se actualiza a intervalos regulares y podría no mostrar el espacio recuperado de forma inmediata. Para configurar el límite de bytes de tareas almacenados, puedes ajustar tu configuración de listas. Consulta la documentación de Python, Java, Go o PHP para obtener más detalles.

Según el tipo, se aplican los siguientes límites a las listas de tareas en cola:

Límites de listas de aplicaciones en cola
Tamaño máximo por tarea100 KB
Velocidad de ejecución de la lista500 invocaciones de tareas por segundo, por lista
Cuenta regresiva/tiempo previsto de llegada máximo para una tarea30 días a partir de la fecha y hora actuales
Cantidad máxima de tareas que pueden agregarse en un lote100 tareas
Cantidad máxima de tareas que pueden agregarse en una transacción5 tareas
Cantidad máxima predeterminada de listas de tareas en cola100 listas; comunícate con el personal de asistencia para solicitar un aumento
Límites de listas de extracción
Tamaño máximo por tarea1 MB
Cuenta regresiva/tiempo previsto de llegada máximo para una tarea30 días a partir de la fecha y hora actuales
Cantidad máxima de tareas que pueden agregarse en un lote100 tareas
Cantidad máxima de tareas que pueden agregarse en una transacción5 tareas
Cantidad máxima de tareas que pueden solicitarse en una sola operación1,000 tareas
Tamaño máximo de la carga útil cuando se solicita un lote de tareas32 MB
Cantidad máxima predeterminada de listas de tareas en cola100 listas; comunícate con el personal de asistencia para solicitar un aumento

Cron

Las siguientes cuotas se aplican específicamente a los trabajos cron.

Trabajos cron
Es la cantidad de trabajos cron.
Recurso Límite predeterminado
Trabajo cron 250 trabajos cron

Recuperación de URL

Llamadas a la API de UrlFetch
Es el total de veces que la aplicación accedió al servicio de recuperación de URL para realizar una solicitud HTTP o HTTPS.
Datos enviados de UrlFetch
Es la cantidad de datos que se enviaron al servicio de recuperación de URL en las solicitudes. También se considera en la cuota de ancho de banda saliente.
Datos recibidos de UrlFetch
Es la cantidad de datos recibidos del servicio de recuperación de URL en forma de respuesta. También se considera en la cuota de ancho de banda de entrada.
Recurso Límite diario Frecuencia máxima
Llamadas a la API de UrlFetch 860,000,000 llamadas 660,000 llamadas/minuto
Datos enviados de UrlFetch 4.5 TB 3,600 MB/minuto
Datos recibidos de UrlFetch 4.5 TB 3,600 MB/minuto