Las instancias son las unidades de computación que usa App Engine para escalar automáticamente tu aplicación. En un momento dado, tu aplicación puede ejecutarse en una o varias instancias, y las solicitudes se distribuyen entre todas ellas.
Tus instancias con escalado manual deberían ejecutarse indefinidamente, pero no hay ninguna garantía de tiempo de actividad, ya que las instancias pueden finalizarse antes de tiempo debido a errores o reiniciarse para las actualizaciones. Los fallos de hardware o software que provocan una finalización anticipada o reinicios frecuentes pueden producirse sin previo aviso y pueden tardar bastante tiempo en resolverse.
Todas las instancias flexibles se pueden reiniciar semanalmente si hay actualizaciones disponibles. Esta programación no está garantizada. Durante los reinicios, las actualizaciones críticas y compatibles con versiones anteriores se implementan automáticamente en el sistema operativo subyacente. La imagen de tu aplicación seguirá siendo la misma aunque se reinicie.
Comprobaciones del estado
App Engine envía solicitudes periódicas de comprobación de estado para confirmar que una instancia está en ejecución y para comprobar que una instancia se ha iniciado por completo y está lista para aceptar solicitudes entrantes. De forma predeterminada, estas comprobaciones del estado están habilitadas y se conocen como comprobaciones del estado divididas. Una instancia que recibe una comprobación del estado debe responder a la comprobación en un intervalo de tiempo determinado.
Si necesitas ampliar el comportamiento predeterminado de las comprobaciones del estado divididas a tu aplicación, puedes personalizar el archivo app.yaml
para configurar dos tipos de comprobaciones del estado:
- Las comprobaciones de actividad detectan que una instancia de VM y su contenedor están en ejecución. Si una instancia de VM no supera la comprobación de actividad, se reinicia automáticamente. Las comprobaciones de actividad pueden fallar debido a los umbrales y los intervalos de tiempo configurados, o bien porque el contenedor se ha bloqueado.
- Las comprobaciones de preparación detectan si una instancia de VM está lista para aceptar solicitudes entrantes. Si una instancia de VM no supera la comprobación de disponibilidad, significa que no ha terminado de iniciarse y no está lista para recibir solicitudes. Cuando la instancia de VM supera la comprobación de disponibilidad y ha completado su inicio, se añade al grupo de instancias disponibles.
Consulta más información sobre el comportamiento de las comprobaciones del estado divididas en la guía Migrar a las comprobaciones del estado divididas.
A medida que la instancia pasa por estas comprobaciones de estado, los registros de App Engine pueden indicar que la instancia se encuentra en uno de los siguientes estados:
- Saludable. La instancia ha recibido las solicitudes de comprobación del estado y las está procesando. El estado correcto indica que la instancia tiene más de 820 MB de espacio en disco disponible y que debería responder a una comprobación del estado con el código de estado HTTP
200
. - Nociva. La instancia ha rechazado las solicitudes de comprobación del estado y no ha respondido a un número específico de solicitudes consecutivas de comprobación del estado. App Engine sigue enviando solicitudes de comprobación del estado y reinicia la instancia si una instancia en mal estado no responde a un número predeterminado de comprobaciones del estado consecutivas.
- Lameduck. Se ha programado el apagado o el reinicio de la instancia.
Durante los cierres, la instancia finaliza las solicitudes en curso y rechaza las nuevas. La aplicación devuelve un código
503
para indicar que la instancia no puede gestionar solicitudes. Antes de que una instancia se apague o se reinicie, la secuencia de comandos de apagado tiene un periodo de tiempo limitado para ejecutarse y no se puede configurar para que sea más corto o más largo. - App Lameduck. La instancia se está preparando para servir tráfico. La aplicación devuelve un código
503
para indicar que la instancia no puede gestionar solicitudes. Cuando una instancia de VM haya completado el inicio y esté lista para atender el tráfico, su estado será correcto y procesará las solicitudes. Si una instancia de VM no se inicia a tiempo, su estado cambia a "No disponible" y se elimina.
Tanto el comportamiento de lameduck como el de aplicación lameduck forman parte de un proceso normal por el que pasa la instancia de VM.
Monitorizar el uso de recursos
La página Instancias de la Google Cloud consola te permite ver el rendimiento de tus instancias. Puedes ver el uso de memoria y CPU de cada instancia, el tiempo de actividad, el número de solicitudes y otras estadísticas. También puedes iniciar manualmente el proceso de apagado de cualquier instancia.
NTP con el entorno flexible de App Engine
El entorno flexible de App Engine tiene servicios de protocolo de tiempo de red (NTP) que usan servidores NTP de Google. Sin embargo, los servicios NTP del entorno flexible no se pueden editar.
Ubicación de la instancia
Las instancias se ubican automáticamente por región geográfica según la configuración del proyecto.
Escalado de instancias
Mientras se ejecuta una aplicación, las solicitudes entrantes se dirigen a una instancia nueva o a una ya existente del servicio o la versión correspondientes. Cada versión activa debe tener al menos una instancia en ejecución, y el tipo de escalado de un servicio o una versión controla cómo se crean instancias adicionales.
Puedes especificar el tipo de escalado en el archivo app.yaml
de tu aplicación.
De forma predeterminada, tu aplicación usa el escalado automático, lo que significa que App Engine gestionará el número de instancias inactivas.
- Escalado automático
- El escalado automático crea instancias en función de la tasa de solicitudes, las latencias de respuesta y otras métricas de la aplicación. Puede especificar umbrales para cada una de estas métricas, así como un número mínimo de instancias que deben estar en ejecución en todo momento, configurando el elemento
automatic_scaling
.
- Escalado manual
- El escalado manual especifica el número de instancias que se ejecutan de forma continua, independientemente del nivel de carga. Esto permite realizar tareas como inicializaciones complejas y aplicaciones que dependen del estado de la memoria a lo largo del tiempo.
Gestionar servicios
En función del tipo de escalado de tu instancia, puedes gestionar servicios y versiones en la consola de Google Cloud o en Google Cloud CLI.
Detener una versión
Cada versión de App Engine se ejecuta en una o varias instancias, en función del tráfico que hayas configurado para que gestione.
Haga clic en la pestaña para ver las instrucciones sobre cómo usar la herramienta que elija:
Consola
Para detener o inhabilitar una versión de tu servicio, sigue estos pasos:
Ve a la página Versiones de App Engine en la consola de Google Cloud :
Selecciona una versión de la tabla y haz clic en Detener.
gcloud
Ejecuta lo siguiente:
gcloud app versions stop --service=SERVICE VERSION
Sustituye:
- SERVICE con el nombre de tu servicio.
- VERSION con el nombre de la versión de tu servicio.
Eliminar un servicio
Cada servicio se puede configurar para que use diferentes entornos de ejecución y funcione con ajustes de rendimiento distintos. No puedes eliminar el servicio predeterminado. Si eliminas un servicio, también se eliminarán todas las versiones que tenga en tu proyecto.
Haga clic en la pestaña para ver las instrucciones sobre cómo usar la herramienta que elija:
Consola
Para eliminar un servicio, sigue estos pasos:
Ve a la página Servicios de App Engine en la Google Cloud consola:
Selecciona un servicio de la tabla y haz clic en Eliminar.
gcloud
Ejecuta lo siguiente:
gcloud app services delete SERVICE
Sustituye:
- SERVICE con el nombre de tu servicio.