Gestionar los costes de App Engine

Con App Engine, solo pagas por los recursos que usas por encima de las cuotas gratuitas. Una vez que superes las cuotas gratuitas, tus costes se ajustarán a la cantidad de tráfico que reciba tu aplicación.

Para limitar los costes de tu aplicación de App Engine, puedes usar cualquiera de los siguientes mecanismos:

  • Especificar el número máximo de instancias
  • Crear alertas de presupuesto
  • Inhabilitar tu aplicación manualmente
  • Inhabilitar tu aplicación de manera programática

Especificar el número máximo de instancias

Como los costes de App Engine suelen escalarse en función del volumen de tráfico que recibe tu aplicación, puedes limitar los costes limitando el número de instancias que puede crear App Engine.

Si estableces el máximo en 1 instancia, normalmente el uso de horas de instancia se mantendrá dentro del nivel gratuito. Sin embargo, si el valor máximo es demasiado bajo, es posible que tu aplicación no tenga suficientes instancias para atender adecuadamente las solicitudes entrantes.

Para especificar el número máximo de instancias, usa el max_instancesajuste del archivo app.yaml de tu aplicación.

Crear alertas de presupuesto

Las alertas de presupuesto envían una notificación cuando los costes superan el umbral que hayas especificado. Cuando recibas una notificación, puedes limitar los costes reduciendo el valor del ajuste max_instances o inhabilitando tu aplicación.

Para empezar a usar las alertas de presupuesto, consulta el artículo Configurar alertas de presupuesto.

Seleccionar el ámbito de una alerta de presupuesto

Puedes crear alertas de presupuesto para el coste total de todos los Google Cloud servicios de uno o varios proyectos, o solo para el coste de App Engine.

Para crear una alerta de presupuesto solo para los costes de App Engine, en el campo Productos de la alerta de presupuesto, selecciona App Engine. La alerta se activará cuando el coste total de todos los recursos de App Engine supere el importe que especifiques, incluidos los siguientes:

  • Horas de instancia en el entorno estándar de App Engine
  • Horas de instancia y RAM en el entorno flexible de App Engine
  • Servicios agrupados de App Engine

Para ver la lista completa de recursos de App Engine facturables, consulta los SKUs de App Engine.

Inhabilitar tu aplicación manualmente

Si inhabilitas tu aplicación, dejará de atender solicitudes y no se te cobrarán cargos relacionados con el servicio de la aplicación. Todos los datos y ajustes de configuración de la aplicación se conservarán. Cuando quieras volver a ejecutarla, podrás habilitarla.

Mientras la aplicación esté inhabilitada, las solicitudes a tu aplicación fallarán. Es posible que sigas recibiendo cargos de otros productos de Google Cloud . Por ejemplo, si tu proyecto ha superado la cuota gratuita de Cloud Storage, seguirás incurriendo en cargos por el almacenamiento.

Para obtener más información, consulta Inhabilitar una aplicación.

Inhabilitar tu aplicación de manera programática

Puedes usar las alertas de presupuesto, Pub/Sub y las funciones de Cloud Run para inhabilitar automáticamente tu aplicación cuando los costes superen el umbral que especifiques.

Al igual que cuando se inhabilita una aplicación manualmente:

  • Todos los datos y ajustes de configuración de tu aplicación se mantienen sin cambios.
  • Cuando quieras volver a ejecutar la aplicación, puedes habilitarla.
  • Las solicitudes a tu aplicación fallarán mientras esté inhabilitada.
  • Es posible que sigas recibiendo cargos de otros Google Cloud productos mientras tu aplicación esté inhabilitada.

Para inhabilitar tu aplicación de forma programática, sigue estos pasos:

  1. Crea una alerta de presupuesto que envíe una notificación a un tema de Pub/Sub. Para obtener más información, consulta el artículo Gestionar notificaciones programáticas.

    Para crear una alerta de presupuesto solo para los costes de App Engine, en el campo Productos del presupuesto, selecciona App Engine. Para obtener información sobre los recursos que pueden activar esta alerta, consulta Crear alertas de presupuesto.

  2. En Cloud Run Functions, crea una función que se active con el tema de Pub/Sub. Para obtener más información, consulta el artículo Crear una función de Cloud.

    Al crear la función, haz lo siguiente:

    1. Usa el siguiente código fuente:

      import base64
      import json
      import os
      from googleapiclient import discovery
      APP_NAME = os.getenv("GCP_PROJECT")
      
      
      def limit_use_appengine(data, context):
          pubsub_data = base64.b64decode(data["data"]).decode("utf-8")
          pubsub_json = json.loads(pubsub_data)
          cost_amount = pubsub_json["costAmount"]
          budget_amount = pubsub_json["budgetAmount"]
          if cost_amount <= budget_amount:
              print(f"No action necessary. (Current cost: {cost_amount})")
              return
      
          appengine = discovery.build("appengine", "v1", cache_discovery=False)
          apps = appengine.apps()
      
          # Get the target app's serving status
          target_app = apps.get(appsId=APP_NAME).execute()
          current_status = target_app["servingStatus"]
      
          # Disable target app, if necessary
          if current_status == "SERVING":
              print(f"Attempting to disable app {APP_NAME}...")
              body = {"servingStatus": "USER_DISABLED"}
              apps.patch(appsId=APP_NAME, updateMask="serving_status", body=body).execute()
      
      
    2. Añade las siguientes dependencias al archivo requirements.txt de tu función:

      google-api-python-client==2.131.0
    3. En Función que ejecutar, introduce limit_use_appengine.

    4. Haz clic en Variables de entorno, redes, tiempos de espera y más.

    5. Selecciona una cuenta de servicio que tenga el rol Administrador de App Engine. La cuenta de servicio predeterminada de App Engine tiene este rol de forma predeterminada.

  3. Prueba la función.

Cuando se activa la alerta de presupuesto, se envía un correo a los usuarios de tu cuenta de facturación de Cloud y tu función empieza a inhabilitar tu aplicación. Este proceso puede tardar unos minutos en completarse.

Para verificar que la función se ha ejecutado correctamente, consulta el panel de control de App Engine. Aparecerá un mensaje en la parte superior para indicar que tu aplicación está inhabilitada.

Ir al panel de control de App Engine

Si quieres que tu aplicación siga atendiendo solicitudes, ve a Configuración de la aplicación y haz clic en Habilitar aplicación.

Ve a Configuración de la aplicación.