Después de varios idas y venidas con Google, y horas de leer blogs y mirar informes, finalmente (algo) encontré una explicación de lo que sucedió. Lo publicaré aquí con mis sugerencias para que otras personas no sean víctimas de este problema.
Tenga en cuenta que esto puede parecer obvio para algunos, pero como nuevo usuario de GAE, todo esto era completamente nuevo para mí.
En resumen, cuando se implementa en GAE y se usa el siguiente comando " $ gcloud app deploy ", se crea una nueva versión y la configura como predeterminada, pero también, y lo que es más importante, NO elimina la versión anterior que se implementó.
Puede encontrar más información sobre versiones e instancias aquí: https://cloud.google.com/appengine/docs/standard/python/an-overview-of-app-engine
Entonces, en mi caso, sin saberlo, había creado múltiples versiones de mi aplicación de nodo simple. Estas versiones aún se están ejecutando en caso de que sea necesario cambiar después de un error. Pero estas versiones también requieren instancias, y el valor predeterminado, a menos que se indique en app.yaml, es 2 instancias.
Google dice:
De forma predeterminada, App Engine escala la cantidad de instancias que se ejecutan hacia arriba y hacia abajo para que coincida con la carga, lo que proporciona un rendimiento constante para su aplicación en todo momento, al tiempo que minimiza las instancias inactivas y, por lo tanto, reduce los costos.
Sin embargo, según mi experiencia, este no fue el caso. Como dije anteriormente, presioné mi aplicación de nodo con nodemon, que parece que estaba causando errores.
Al final, siguiendo el tutorial y sin cerrar el proyecto, tuve 4 versiones, cada una con 2 instancias ejecutándose a tiempo completo durante 1,5 meses, atendiendo 0 solicitudes y generando muchos mensajes de error y me costó $ 500.
RECOMENDACIONES SI TODAVÍA QUIERES USAR GAE FLEX ENV:
En primer lugar, configure un presupuesto de facturación y alertas para que no se sorprenda con una factura costosa que se carga automáticamente a su CC: https://cloud.google.com/billing/docs/how-to/budgets
En un entorno de prueba, lo más probable es que no necesite varias versiones, por lo que durante la implementación, use el siguiente comando:
$ gcloud app deploy --version v1
Actualice su app.yaml para forzar solo 1 instancia con recursos mínimos:
runtime: nodejs
env: flex
# This sample incurs costs to run on the App Engine flexible environment.
# The settings below are to reduce costs during testing and are not appropriate
# for production use. For more information, see:
# https://cloud.google.com/appengine/docs/flexible/nodejs/configuring-your-app-with-app-yaml
manual_scaling:
instances: 1
resources:
cpu: 1
memory_gb: 0.5
disk_size_gb: 10
- Establecer límite de gasto diario
Consulte esta publicación de blog para obtener más información: https://medium.com/google-cloud/three-simple-steps-to-save-costs-when-prototyping-with-app-engine-flexible-environment-104fc6736495
Desearía que algunos de estos pasos se hubieran incluido en el tutorial para proteger a aquellos que están tratando de aprender y experimentar, pero no fue así.
Google App Engine Flex env puede ser complicado si no se conocen todos estos detalles. Un amigo me señaló Heroku, que tiene precios fijos y ofertas gratuitas / de pasatiempos. Pude colocar rápidamente una nueva aplicación de nodo allí, ¡y funcionó a la perfección!
https://www.heroku.com/pricing
Aprender esta lección "sólo" me costó $ 500, pero espero que esto ayude a otros que buscan en Google App Engine Flex Env.