En esta página se describen los ajustes de facturación en caso de que se use el comportamiento de autoescalado predeterminado de Cloud Run. Consulta Comportamiento de la facturación con el escalado manual para ver otras consideraciones si usas el escalado manual.
Hay dos opciones de facturación en los servicios de Cloud Run:
Facturación basada en solicitudes (opción predeterminada): las instancias de Cloud Run solo se cobran cuando procesan solicitudes, cuando se inician y cuando se cierran. Consulta más información sobre el ciclo de vida de las instancias. Este ajuste se llamaba anteriormente CPU solo asignada durante el procesamiento de solicitudes.
Facturación basada en instancias: las instancias de Cloud Run se cobran durante todo su ciclo de vida, incluso cuando no hay solicitudes entrantes. La facturación basada en instancias puede ser útil para ejecutar tareas en segundo plano de corta duración y otras tareas de procesamiento asíncronas. Esta opción antes se llamaba CPU siempre asignada.
Si eliges la facturación basada en solicitudes, se te cobrará por solicitud y solo cuando la instancia procese una solicitud. Si eliges la facturación basada en instancias, se te cobrará durante todo el ciclo de vida de la instancia. Consulta las tablas de precios de Cloud Run para obtener más información.
Recommender analiza automáticamente el tráfico que ha recibido tu servicio de Cloud Run durante el último mes y te recomendará que cambies de la facturación basada en solicitudes a la facturación basada en instancias si esta opción es más económica.
Impacto de la asignación de CPU
La configuración de facturación que elijas afectará a la forma en que se asigna la CPU.
- Con la facturación basada en solicitudes, la CPU solo se asigna durante el procesamiento de solicitudes.
- Con la facturación basada en instancias, la CPU se asigna durante todo el ciclo de vida de la instancia del contenedor.
Cómo elegir la configuración de facturación adecuada
Elegir la configuración de facturación adecuada para tu caso práctico depende de varios factores, como los patrones de tráfico, la ejecución en segundo plano y el coste, que se describen en las siguientes secciones.
Consideraciones sobre los patrones de tráfico
- Se recomienda la facturación basada en solicitudes cuando el tráfico entrante es esporádico, con picos o con ráfagas.
- Se recomienda la facturación basada en instancias cuando el tráfico entrante es constante y varía lentamente.
Consideraciones sobre la ejecución en segundo plano
Si seleccionas la facturación basada en instancias, se asigna CPU incluso fuera del procesamiento de solicitudes, lo que te permite ejecutar tareas en segundo plano de corta duración y otras tareas de procesamiento asíncronas después de devolver respuestas. Por ejemplo:
- Aprovechando los agentes de monitorización, como OpenTelemetry, que pueden ejecutarse en segundo plano.
- Usando goroutines de Go, async de Node.js, hilos de Java y corrutinas de Kotlin.
- Usar frameworks de aplicaciones que dependan de funciones de programación o de segundo plano integradas.
Las instancias inactivas, incluidas las que se mantienen activas con un número mínimo de instancias, se pueden cerrar en cualquier momento. Si necesitas terminar las tareas pendientes antes de que se cierre el contenedor, puedes interceptar SIGTERM para dar a la instancia 10 segundos de margen antes de que se detenga.
Considera la posibilidad de usar Cloud Tasks para ejecutar tareas asíncronas. Cloud Tasks vuelve a intentar automáticamente las tareas fallidas y admite tiempos de ejecución de hasta 30 minutos.
Consideraciones sobre el coste
Si usas la facturación basada en solicitudes, la facturación basada en instancias puede ser más económica si:
- Tu servicio de Cloud Run está procesando un gran número de solicitudes actuales a un ritmo bastante constante.
- No se ven muchas instancias inactivas al consultar la métrica de número de instancias.
Puedes usar la calculadora de precios para estimar las diferencias de costes.
Consideraciones sobre el autoescalado
De forma predeterminada, Cloud Run escala automáticamente el número de instancias de contenedor.
En el caso de los servicios configurados con la facturación basada en solicitudes, Cloud Run autoescala el número de instancias en función del uso de la CPU solo durante el procesamiento de las solicitudes.
En el caso de los servicios con facturación basada en instancias, Cloud Run ajusta automáticamente el número de instancias en función de la utilización de la CPU durante todo el ciclo de vida de la instancia de contenedor, excepto cuando se escala a cero o desde cero, en cuyo caso solo se utilizan las solicitudes.
Consulta la sección sobre escalado manual para ver otras consideraciones si usas el escalado manual en lugar de la función de escalado automático de Cloud Run.
Consideraciones sobre la facturación basada en instancias
Aunque la opción de facturación esté configurada como facturación basada en instancias, el autoescalado de Cloud Run sigue activo y puede finalizar instancias si no son necesarias para gestionar el tráfico entrante o la utilización de la CPU fuera de las solicitudes. Una instancia nunca permanecerá inactiva durante más de 15 minutos después de procesar una solicitud, a menos que se mantenga activa mediante instancias mínimas.
Si se combina la facturación basada en instancias con un número de instancias mínimas, se obtiene un número de instancias en funcionamiento con acceso completo a los recursos de CPU, lo que permite usar casos prácticos de procesamiento en segundo plano. Cuando se usa este patrón, Cloud Run aplica el escalado automático de instancias aunque un servicio esté usando la CPU fuera de cualquier solicitud.
Si usas sondeos de comprobación de estado, debes usar la facturación basada en instancias para cada sondeo. Consulta los sondeos de comprobación del estado de los contenedores para obtener información sobre la facturación.
Roles obligatorios
Para obtener los permisos que necesitas para configurar e implementar servicios de Cloud Run, pide a tu administrador que te conceda los siguientes roles de gestión de identidades y accesos:
-
Desarrollador de Cloud Run (
roles/run.developer
) en el servicio Cloud Run -
Usuario de cuenta de servicio (
roles/iam.serviceAccountUser
) en la identidad de servicio
Si vas a desplegar un servicio o una función a partir de código fuente, también debes tener otros roles concedidos en tu proyecto y en la cuenta de servicio de Cloud Build.
Para ver una lista de los roles y permisos de gestión de identidades y accesos asociados a Cloud Run, consulta los artículos sobre roles de gestión de identidades y accesos de Cloud Run y permisos de gestión de identidades y accesos de Cloud Run. Si tu servicio de Cloud Run interactúa con APIs, como las bibliotecas de cliente de Cloud, consulta la guía de configuración de la identidad del servicio.Google Cloud Para obtener más información sobre cómo conceder roles, consulta los artículos sobre permisos de implementación y gestión del acceso.
Configurar y actualizar la facturación
Cualquier cambio en la configuración conlleva la creación de una nueva revisión. Las revisiones posteriores también recibirán automáticamente este ajuste de configuración, a menos que hagas cambios explícitos para modificarlo.
Si seleccionas la facturación basada en instancias, debes especificar al menos 512 MiB de memoria.
Puedes cambiar la configuración de facturación mediante la Google Cloud consola, la CLI de gcloud o un archivo YAML cuando crees un servicio o despliegues una revisión:
Consola
En la Google Cloud consola, ve a Cloud Run:
Seleccione Servicios en el menú y haga clic en Implementar contenedor para configurar un servicio nuevo. Si vas a configurar un servicio que ya tienes, haz clic en él y, a continuación, en Editar y desplegar nueva revisión.
Si va a configurar un servicio nuevo, rellene la página de configuración inicial del servicio.
Selecciona una opción de facturación en Facturación. Seleccione facturación basada en solicitudes para que se le cobre por sus instancias solo durante el procesamiento de solicitudes. Selecciona Facturación basada en instancias para que se te cobre por la duración completa de las instancias.
Haz clic en Crear o en Implementar.
gcloud
Puedes actualizar la configuración de facturación. Para configurar la facturación basada en instancias de un servicio concreto, sigue estos pasos:
gcloud run services update SERVICE --no-cpu-throttling
Sustituye SERVICE por el nombre de tu servicio.
Para configurar la facturación basada en solicitudes, sigue estos pasos:
gcloud run services update SERVICE --cpu-throttling
También puedes definir la configuración de facturación durante la implementación. Para cambiar la configuración de facturación a la facturación basada en instancias, sigue estos pasos:
gcloud run deploy --image IMAGE_URL --no-cpu-throttling
Para cambiar la configuración de facturación a la facturación basada en solicitudes, sigue estos pasos:
gcloud run deploy --image IMAGE_URL --cpu-throttling
Sustituye IMAGE_URL por una referencia a la imagen de contenedor. Por ejemplo, us-docker.pkg.dev/cloudrun/container/hello:latest
. Si usas Artifact Registry, el repositorio REPO_NAME ya debe estar creado. La URL sigue el formato LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
.
YAML
Si va a crear un servicio, puede saltarse este paso. Si va a actualizar un servicio, descargue su configuración YAML:
gcloud run services describe SERVICE --format export > service.yaml
Actualice el atributo
cpu
:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: template: metadata: annotations: run.googleapis.com/cpu-throttling: 'BOOLEAN' name: REVISION
Haz los cambios siguientes:
- SERVICE: el nombre de tu servicio de Cloud Run
- BOOLEAN:
true
para definir la facturación por solicitud ofalse
para definir la facturación por instancia. - REVISION con un nuevo nombre de revisión o elimínelo (si está presente). Si proporcionas un nuevo nombre de revisión, debe cumplir los siguientes criterios:
- Empieza por
SERVICE-
- Contiene solo letras minúsculas, números y
-
- No termina con
-
- No supera los 63 caracteres
- Empieza por
Crea o actualiza el servicio con el siguiente comando:
gcloud run services replace service.yaml
Terraform
Para saber cómo aplicar o quitar una configuración de Terraform, consulta Comandos básicos de Terraform.
Añade lo siguiente a un recursogoogle_cloud_run_v2_service
en tu configuración de Terraform:Ver la configuración de facturación
Para ver la configuración de facturación actual de tu servicio de Cloud Run, sigue estos pasos:
Consola
En la Google Cloud consola, ve a Cloud Run:
Haz clic en el servicio que te interese para abrir la página Detalles del servicio.
Haz clic en la pestaña Revisiones.
En el panel de detalles de la derecha, el ajuste de facturación se encuentra en la pestaña General.
gcloud
Usa el siguiente comando:
gcloud run services describe SERVICE
Busca el ajuste Billing en la configuración devuelta.