Sprunghaft steigende Nachfrage nach Ihren Softwarelösungen – eigentlich ein Grund zur Freude, oder? Meistens schon. Beim Public-Cloud-Hosting gibt es jedoch einen häufig übersehenen Stolperstein, der Ihr Unternehmen lahmlegen oder sogar einen Ausfall auslösen kann: Limits und Quotas.
Lassen Sie sich nicht im entscheidenden Moment überraschen
Bei DoiT International betreuen wir weltweit Tausende Organisationen als Cloud-Partner und FinOps-Softwareanbieter. Unsere Cloud-Architekten bearbeiten Monat für Monat Zehntausende Kundenanfragen – und ein Muster taucht dabei immer wieder auf: Quota-Limits werden zu spät erkannt. Die Folge sind hektische Hilferufe, um die Bearbeitung von Quota-Erhöhungen beim Cloud-Anbieter zu beschleunigen.

Eingegangene Support-Anfragen unserer Kunden für Quota-Erhöhungen
Seit über einem Jahrzehnt haben wir uns einem Ziel verschrieben: die wahren Versprechen der Cloud einzulösen – Einfachheit, Elastizität und Effizienz. Um unseren Kunden bei diesem wiederkehrenden Problem zu helfen, haben wir Quota-Monitoring und Alerting in unsere Multi-Cloud-Plattform, die DoiT Console, integriert.

Beispiel: Quota-Monitoring in der DoiT Console für AWS-Kunden
Leider sind noch nicht alle Public-Cloud-Nutzer auch DoiT-Kunden. Glücklicherweise hat aber auch das Team bei Google diese Herausforderung erkannt und ein Open-Source-Projekt namens "Quota Monitoring Solution (QMS)" veröffentlicht.
Googles Open-Source Quota Monitoring Solution
Das GitHub-Repository enthält zwar eine Schritt-für-Schritt-Anleitung – dieser Artikel bringt Sie aber noch schneller ans Ziel. Ausführlichere Erläuterungen zu jedem Schritt finden Sie in der Dokumentation des Repositorys.
In weniger als zwanzig Minuten richten Sie mit ein paar gcloud- und terraform-Befehlen im Terminal ein Dashboard wie das untenstehende ein – und passen das Alerting anschließend an die Anforderungen Ihrer Organisation an.

Looker Studio Dashboard mit Ihrer Quota-Nutzung auf Org-, Folder-, Region- oder Projektebene
Funktionen
Quelle: Google
Architektur
Quelle: Google
Dieser Artikel führt Sie durch folgende Schritte:
- QMS-Umgebung einrichten und konfigurieren
- QMS mit Terraform installieren
- Looker Studio Dashboard einrichten
Los geht's!
Voraussetzungen
gcloud-Befehle im Terminal oder in der Cloud Shell ausführen können
Sie können den Service zwar manuell in der Cloud Console einrichten, vorgesehen ist die Installation und Konfiguration aber über Terminal- und Shell-Befehle. Nutzen Sie dafür entweder Ihren bevorzugten Terminal-Client oder einfach die integrierte Cloud Shell in der GCP Console.
Terraform ausführen können
Sie müssen das Terraform-Kommandozeilentool installieren – entweder lokal oder in der Cloud Shell. Die Konfiguration der Cloud-Infrastruktur und der Serverless Functions wird per Infrastructure as Code (IaC) automatisiert.
IAM-Rollenrechte vergeben können
Bevor es losgeht, benötigen Sie mehrere IAM-Rollen, um ein Monitoring-Projekt und einen Service Account anzulegen sowie dem Service Account Rollen zuzuweisen. Es empfiehlt sich, dass Sie selbst oder jemand in Ihrem Team mit der Rolle "Organization Administrator" sicherstellt, dass Sie über folgende Rollen verfügen:
- Project Creator
- Service Account Creator
- [ Organization | Folder | Project ] IAM Admin
- Service Account Token Creator
1\. QMS-Umgebung einrichten und konfigurieren
Um Ihnen Einrichtung und Konfiguration zu erleichtern, habe ich ein Skript vorbereitet, das Folgendes für Sie übernimmt:
- Anlegen von Monitoring-Projekt, Service Account und Service Account IAM
- Ziel-IAM (Organization oder Folder)
- Terraform-Konfiguration und Anleitung
Führen Sie den folgenden Befehl in Ihrem Terminal oder in der Cloud Shell aus, um das Setup zu starten.
Tipps
- Mit RETURN übernehmen Sie einfach die [Defaults] in den Eingabeaufforderungen
- Halten Sie Ihre Billing-ID (xxxxxx-xxxxxx-xxxxxx) zum Kopieren bereit
bash <(curl -L https://bit.ly/gcp-qms-setup)
Den Quellcode finden Sie hier: https://bit.ly/gcp-qms-setup

Beispielhafte Terminal-Eingabeaufforderungen beim Ausführen des Installationsskripts
2\. QMS mit Terraform installieren
Nach dem initialen Setup fordert Sie das Skript auf, sich zu authentifizieren und Terraform selbst auszuführen. So können Sie den Plan vor dem Anwenden prüfen – und bei Fehlern erneut versuchen.

Beispielhafte Terminal-Ausgabe nach dem Setup-Skript mit den finalen Befehlen für Terraform
Installationsbefehle (ersetzen Sie <your-…> durch die korrekten Werte)
PROJECT_ID=<your-project-id>
SA_EMAIL=<your-sa-email-address>
REGION=<your-region>
# configure gcloud sdk
gcloud config set core/project $PROJECT_ID
# set up short-lived oauth token
gcloud config set auth/impersonate_service_account $SA_EMAIL
export GOOGLE_OAUTH_ACCESS_TOKEN=$(gcloud auth print-access-token)
# run terraform (re-run `terraform plan` and `terraform apply` if errors)
cd quota-monitoring-solution/terraform/example
terraform init
terraform plan
terraform apply
# unset service account impersonation
gcloud config unset auth/impersonate_service_account
# return to project directory
cd ../../../
# start cloud scheduler jobs to begin monitoring quotas
gcloud scheduler jobs run quota-monitoring-cron-job --location $REGION
gcloud scheduler jobs run quota-monitoring-app-alert-config --location $REGION
3\. Looker Studio Dashboard einrichten
Sobald das Setup gelaufen und die App per Terraform installiert ist, richten Sie Ihr Dashboard mit den folgenden Schritten ein – die Reihenfolge ist dabei wichtig, wie ich feststellen musste.
Öffnen Sie das Looker Studio Template
Klicken Sie oben rechts auf das "…"-Menü (drei Punkte) und wählen Sie "Make a copy"

Wenn Sie nach einer Datenquelle gefragt werden, übernehmen Sie die Standardauswahl

In einem weiteren Browser-Tab sehen Sie nun eine Kopie des Looker Studio Dashboard-Templates. Im nächsten Schritt verbinden Sie es mit dem zuvor in Ihrem Projekt angelegten Dataset.
Verbindung zum Dataset herstellen
Das ist erfahrungsgemäß etwas eigenwillig und die Reihenfolge zählt – aber: Wenn es beim ersten Mal nicht klappt, hilft meist ein zweiter Anlauf.

Unten erscheint ein Panel mit einer SQL-Abfrage, die Sie bearbeiten und in der Sie [project ID].[dataset].[table] ersetzen müssen.
Auf der linken Seite werden Projekte aufgelistet – Ihres ist möglicherweise nicht dabei. Suchen Sie danach, und falls die Auswahl nicht automatisch befüllt wird, klicken Sie auf den Tab "Recent Projects" und wählen Sie Ihr Projekt -> Dataset -> Tabelle.

Wechseln Sie zurück zum Test-Query-Tab und prüfen Sie, dass Ihre Project ID weiterhin in der Abfrage steht (und nicht auf den Template-Default zurückgesetzt wurde).

Beispiel: Achten Sie darauf, dass Ihre PROJECT ID an beiden Stellen erscheint
Klicken Sie oben rechts im Panel auf "Reconnect". Bestätigen Sie die Datenquellenänderung und klicken Sie auf "Apply"

Glückwunsch!
Die Daten sollten jetzt im Dashboard erscheinen. Falls nicht, wiederholen Sie die obigen Schritte – das Ganze ist etwas eigenwillig, aber meistens reichen ein paar Anläufe.
Klicken Sie einfach auf "Done", um das Panel zu schließen, und optional auf "View", um Ihr Dashboard zu öffnen.
Monitoring und Alerts konfigurieren
Die Google-Dokumentation beschreibt optionale Anpassungen und Konfigurationen für das Alerting.
So bleiben Sie auf dem Laufenden und erkennen potenzielle Quota-Probleme, bevor daraus Ausfälle werden.