App Engine-Kosten verwalten

Mit App Engine bezahlen Sie nur für Ressourcen, die Sie über das kostenlose Kontingent hinaus nutzen. Nachdem das kostenlose Kontingent überschritten ist, werden Ihre Kosten entsprechend der Menge an Traffic skaliert, die Ihre Anwendung empfängt.

Sie können die Kosten Ihrer App Engine-Anwendung begrenzen, indem Sie eine der folgenden Methoden anwenden:

  • Maximale Anzahl von Instanzen angeben
  • Budgetbenachrichtigungen erstellen
  • Anwendung manuell deaktivieren
  • Anwendung programmatisch deaktivieren

Maximale Anzahl von Instanzen angeben

Da die App Engine-Kosten in der Regel anhand der Menge an Traffic skaliert werden, die Ihre Anwendung empfängt, können Sie Ihre Kosten begrenzen, indem Sie die Anzahl der Instanzen beschränken, die App Engine erstellen kann.

Wenn Sie das Maximum auf eine Instanz festlegen, bleibt die Instanzstundennutzung in der Regel innerhalb der kostenlosen Stufe. Wenn Sie jedoch das Maximum zu niedrig festlegen, hat Ihre Anwendung möglicherweise nicht genügend Instanzen, um eingehende Anfragen adäquat zu verarbeiten.

Um die maximale Anzahl von Instanzen anzugeben, verwenden Sie die Einstellung max_instances in der app.yaml-Datei Ihrer Anwendung.

Budgetbenachrichtigungen erstellen

Durch Budgetbenachrichtigungen werden Sie informiert, wenn Ihre Kosten einen von Ihnen festgelegten Schwellenwert überschreiten. Wenn Sie eine Benachrichtigung erhalten, können Sie die Kosten begrenzen, indem Sie den Wert der Einstellung max_instances verringern oder Ihre Anwendung deaktivieren.

Informationen zu den ersten Schritten mit Budgetbenachrichtigungen finden Sie unter Budgetbenachrichtigungen festlegen.

Umfang einer Budgetbenachrichtigung auswählen

Sie können Budgetbenachrichtigungen für die Gesamtkosten aller Google Cloud-Dienste in einem oder mehreren Projekten erstellen oder nur für die Kosten von App Engine.

Um eine Budgetbenachrichtigung nur für Kosten von App Engine zu erstellen, wählen Sie im Feld „Produkte“ der Budgetbenachrichtigung App Engine aus. Die Benachrichtigung wird ausgelöst, wenn die Gesamtkosten aller App Engine-Ressourcen den von Ihnen angegebenen Betrag überschreiten, dazu gehören:

  • Instanzstunden in der App Engine-Standardumgebung
  • Instanzstunden und RAM in der flexiblen App Engine-Umgebung
  • Gebündelte App Engine-Dienste

Eine vollständige Liste der kostenpflichtigen App Engine-Ressourcen finden Sie unter App Engine-SKUs.

Anwendung manuell deaktivieren

Wenn Sie Ihre Anwendung vorübergehend deaktivieren, wird sie nicht mehr bereitgestellt und es fallen keine Gebühren für ihre Bereitstellung an. Alle Daten- und Konfigurationseinstellungen Ihrer Anwendung bleiben unverändert. Wenn Sie die Anwendung wieder ausführen möchten, können Sie sie aktivieren.

Solange die Anwendung deaktiviert ist, schlagen Anfragen an die Anwendung fehl. Möglicherweise fallen weiterhin Kosten für andere Google Cloud-Produkte an. Wenn Ihr Projekt beispielsweise das kostenlose Kontingent für Cloud Storage überschreitet, fallen weiterhin Speichergebühren an.

Weitere Informationen finden Sie unter Anwendung deaktivieren.

Anwendung programmatisch deaktivieren

Sie können Budgetbenachrichtigungen, Pub/Sub und Cloud Functions verwenden, um Ihre Anwendung automatisch zu deaktivieren, wenn Ihre Kosten einen von Ihnen festgelegten Grenzwert überschreiten.

Ähnlich wie bei der manuellen Deaktivierung einer Anwendung gilt dabei:

  • Alle Daten- und Konfigurationseinstellungen Ihrer Anwendung bleiben unverändert.
  • Wenn Sie Ihre Anwendung wieder ausführen möchten, können Sie sie aktivieren.
  • Anfragen an Ihre Anwendung schlagen fehl, solange die Anwendung deaktiviert ist.
  • Während Ihre Anwendung deaktiviert ist, können Ihnen weiterhin Kosten durch andere Google Cloud-Produkten entstehen.

So deaktivieren Sie Ihre Anwendung programmatisch:

  1. Erstellen Sie eine Budgetbenachrichtigung, die eine Benachrichtigung an ein Pub/Sub-Thema sendet Weitere Informationen finden Sie unter Programmatische Benachrichtigungen verwalten.

    Wenn Sie eine Budgetbenachrichtigung nur für Kosten von App Engine erstellen möchten, wählen Sie im Feld „Produkte“ des Budgets App Engine aus. Informationen zu den Ressourcen, die diese Benachrichtigung auslösen können, finden Sie unter Budgetbenachrichtigungen erstellen.

  2. Erstellen Sie in Cloud Functions eine Funktion, die vom Pub/Sub-Thema ausgelöst wird. Weitere Informationen finden Sie unter Cloud Functions-Funktion erstellen.

    Beim Erstellen der Funktion:

    1. Verwenden Sie den folgenden Quellcode:

      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. Fügen Sie der Datei requirements.txt der Funktion die folgenden Abhängigkeiten hinzu:

      google-api-python-client==2.87.0
    3. Geben Sie unter Auszuführende Funktion limit_use_appengine ein.

    4. Klicken Sie auf Umgebungsvariablen, Netzwerk, Zeitlimits und mehr.

    5. Wählen Sie ein Dienstkonto aus, das die Rolle App Engine-Administrator hat. Das App Engine-Standarddienstkonto hat diese Rolle standardmäßig.

  3. Funktion testen

Wenn die Budgetbenachrichtigung ausgelöst wird, wird eine E-Mail an Nutzer in Ihrem Cloud-Rechnungskonto gesendet und die Funktion beginnt, Ihre Anwendung zu deaktivieren. Dieser Vorgang kann einige Minuten dauern.

Prüfen Sie im App Engine-Dashboard, ob die Funktion erfolgreich ausgeführt wurde. Oben auf dem Bildschirm wird eine Meldung mit dem Hinweis angezeigt, dass Ihre Anwendung deaktiviert ist.

Weiter zum App Engine-Dashboard

Wenn Ihre App wieder Anfragen verarbeiten soll, rufen Sie Anwendungseinstellungen auf und klicken Sie auf Anwendung aktivieren.

Zu den Anwendungseinstellungen