Dieses Prinzip im Bereich Kostenoptimierung des Google Cloud-Architektur-Frameworks enthält Empfehlungen zur Planung und Bereitstellung von Ressourcen, die den Anforderungen und Verbrauchsmustern Ihrer Cloud-Arbeitslasten entsprechen.
Grundsatzübersicht
Wenn Sie die Kosten Ihrer Cloud-Ressourcen optimieren möchten, müssen Sie die Ressourcenanforderungen und Lastmuster Ihrer Arbeitslasten genau kennen. Dieses Verständnis ist die Grundlage für ein gut definiertes Kostenmodell, mit dem Sie die Gesamtbetriebskosten (TCO) vorhersagen und die Kostentreiber während der Cloud-Einführung identifizieren können. Wenn Sie Cloud-Ausgaben proaktiv analysieren und prognostizieren, können Sie fundierte Entscheidungen über die Bereitstellung, Nutzung und Kostenoptimierung von Ressourcen treffen. Mit diesem Ansatz können Sie die Cloud-Ausgaben steuern, eine Überprovisionierung vermeiden und dafür sorgen, dass die Cloud-Ressourcen den dynamischen Anforderungen Ihrer Arbeitslasten und Umgebungen entsprechen.
Empfehlungen
Beachten Sie die folgenden Empfehlungen, um die Nutzung von Cloud-Ressourcen effektiv zu optimieren.
Umgebungsspezifische Ressourcen auswählen
Jede Bereitstellungsumgebung hat unterschiedliche Anforderungen an Verfügbarkeit, Zuverlässigkeit und Skalierbarkeit. Entwickler bevorzugen beispielsweise möglicherweise eine Umgebung, in der sie Anwendungen schnell bereitstellen und für kurze Zeiträume ausführen können, für die aber keine Hochverfügbarkeit erforderlich ist. Eine Produktionsumgebung erfordert dagegen in der Regel eine hohe Verfügbarkeit. Um die Auslastung Ihrer Ressourcen zu maximieren, sollten Sie standortspezifische Anforderungen basierend auf Ihren Geschäftsanforderungen definieren. In der folgenden Tabelle sind Beispiele für umgebungsspezifische Anforderungen aufgeführt.
Umgebung | Voraussetzungen |
Produktion |
|
Entwicklung und Tests |
|
Andere Umgebungen (z. B. Staging- und QA-Umgebungen) |
|
Arbeitslastspezifische Ressourcen auswählen
Für jede Ihrer Cloud-Arbeitslasten gelten möglicherweise unterschiedliche Anforderungen an Verfügbarkeit, Skalierbarkeit, Sicherheit und Leistung. Um die Kosten zu optimieren, müssen Sie die Ressourcenauswahl an die spezifischen Anforderungen jeder Arbeitslast anpassen. Beispielsweise erfordert eine zustandslose Anwendung möglicherweise nicht dasselbe Maß an Verfügbarkeit oder Zuverlässigkeit wie ein zustandsorientiertes Backend. In der folgenden Tabelle finden Sie weitere Beispiele für arbeitslastspezifische Anforderungen.
Arbeitslasttyp | Anforderungen an die Arbeitslast | Ressourcenoptionen |
Geschäftskritisch | Kontinuierliche Verfügbarkeit, robuste Sicherheit und hohe Leistung | Premiumressourcen und verwaltete Dienste wie Spanner für Hochverfügbarkeit und globale Konsistenz von Daten |
Nicht kritisch | Kosteneffiziente Infrastruktur mit automatischer Skalierung | Ressourcen mit grundlegenden Funktionen und sitzungsspezifische Ressourcen wie Spot-VMs. |
Ereignisgesteuert | Dynamische Skalierung basierend auf der aktuellen Nachfrage nach Kapazität und Leistung | Serverlose Dienste wie Cloud Run und Cloud Run-Funktionen |
Experimentelle Arbeitslasten | Kostengünstige und flexible Umgebung für schnelle Entwicklung, Iteration, Tests und Innovationen | Ressourcen mit grundlegenden Funktionen, sitzungsspezifische Ressourcen wie Spot-VMs und Sandbox-Umgebungen mit definierten Ausgabenlimits. |
Ein Vorteil der Cloud besteht darin, dass Sie die für eine bestimmte Arbeitslast am besten geeignete Rechenleistung nutzen können. Einige Arbeitslasten werden entwickelt, um die Vorteile von Prozessorbefehlssätzen zu nutzen, andere möglicherweise nicht. Benchmarken und profilieren Sie Ihre Arbeitslasten entsprechend. Kategorisieren Sie Ihre Arbeitslasten und treffen Sie arbeitslastspezifische Ressourcenentscheidungen. Wählen Sie beispielsweise geeignete Maschinenfamilien für Compute Engine-VMs aus. So lassen sich Kosten optimieren, Innovationen ermöglichen und die für Ihre Arbeitslasten erforderliche Verfügbarkeit und Leistung aufrechterhalten.
Im Folgenden finden Sie Beispiele für die Implementierung dieser Empfehlung:
- Für geschäftskritische Arbeitslasten, die weltweit verteilte Nutzer bedienen, sollten Sie Spanner verwenden. Spanner macht komplexe Datenbankimplementierungen überflüssig, da die Zuverlässigkeit und Konsistenz von Daten in allen Regionen gewährleistet wird.
- Bei Arbeitslasten mit schwankenden Auslastungsgraden können Sie mit Autoscaling dafür sorgen, dass keine Kosten anfallen, wenn die Auslastung niedrig ist, und gleichzeitig eine ausreichende Kapazität für die aktuelle Auslastung aufrechterhalten. Sie können das Autoscaling für viele Google Cloud-Dienste konfigurieren, darunter Compute Engine-VMs, GKE-Cluster (Google Kubernetes Engine) und Cloud Run. Wenn Sie das Autoscaling einrichten, können Sie maximale Skalierungslimits festlegen, damit die Kosten innerhalb der angegebenen Budgets bleiben.
Regionen anhand der Kostenanforderungen auswählen
Prüfen Sie die verfügbaren Google Cloud-Regionen für Ihre Cloud-Arbeitslasten sorgfältig und wählen Sie Regionen aus, die Ihren Kostenzielen entsprechen. Die Region mit den niedrigsten Kosten bietet möglicherweise nicht die optimale Latenz oder erfüllt nicht Ihre Nachhaltigkeitsanforderungen. Treffen Sie fundierte Entscheidungen dazu, wo Sie Ihre Arbeitslasten bereitstellen, um das gewünschte Gleichgewicht zu erreichen. Mit der Google Cloud-Regionsauswahl können Sie die Vor- und Nachteile von Kosten, Nachhaltigkeit, Latenz und anderen Faktoren besser nachvollziehen.
Integrierte Optionen zur Kostenoptimierung verwenden
Google Cloud-Produkte bieten integrierte Funktionen, mit denen Sie die Ressourcennutzung optimieren und die Kosten kontrollieren können. In der folgenden Tabelle sind Beispiele für Funktionen zur Kostenoptimierung aufgeführt, die Sie in einigen Google Cloud-Produkten verwenden können:
Produkt | Funktion „Kostenoptimierung“ |
Compute Engine |
|
GKE |
|
Cloud Storage |
|
BigQuery |
|
Google Cloud VMware Engine |
|
Ressourcenfreigabe optimieren
Um die Auslastung der Cloud-Ressourcen zu maximieren, können Sie mehrere Anwendungen oder Dienste in derselben Infrastruktur bereitstellen und dabei die Sicherheits- und andere Anforderungen der Anwendungen erfüllen. So können Sie beispielsweise in Entwicklungs- und Testumgebungen dieselbe Cloud-Infrastruktur verwenden, um alle Komponenten einer Anwendung zu testen. In der Produktionsumgebung können Sie jede Komponente auf einem separaten Ressourcenpool bereitstellen, um die Auswirkungen bei Vorfällen einzudämmen.
Im Folgenden finden Sie Beispiele für die Implementierung dieser Empfehlung:
- Eine einzelne Cloud SQL-Instanz für mehrere nicht produktionsbezogene Umgebungen verwenden
- Sie können mehreren Entwicklungsteams die gemeinsame Nutzung eines GKE-Cluster ermöglichen, indem Sie die Funktion Flotte – Teamverwaltung in GKE Enterprise mit geeigneten Zugriffssteuerungen verwenden.
- Mit GKE Autopilot können Sie kostenoptimierende Verfahren wie Bin-Packing und Autoscaling nutzen, die in GKE standardmäßig implementiert sind.
- Mit GPU-Freigabestrategien wie GPUs mit mehreren Instanzen, GPUs mit Zeitfreigabe und NVIDIA MPS können Sie bei KI- und ML-Arbeitslasten Kosten für GPUs sparen.
Referenzarchitekturen entwickeln und verwalten
Erstellen und pflegen Sie ein Repository mit Referenzarchitekturen, die auf die Anforderungen verschiedener Bereitstellungsumgebungen und Arbeitslasttypen zugeschnitten sind. Um den Design- und Implementierungsprozess für einzelne Projekte zu optimieren, können die Blueprints von einem Team wie einem Cloud Center of Excellence (CCoE) zentral verwaltet werden. Projektteams können geeignete Blueprints anhand klar definierter Kriterien auswählen, um für architektonische Konsistenz und die Anwendung von Best Practices zu sorgen. Für Anforderungen, die für ein Projekt spezifisch sind, sollten das Projektteam und das zentrale Architekturteam gemeinsam neue Referenzarchitekturen entwerfen. Sie können die Referenzarchitekturen in der gesamten Organisation freigeben, um den Wissensaustausch zu fördern und das Repository der verfügbaren Lösungen zu erweitern. Dieser Ansatz sorgt für Konsistenz, beschleunigt die Entwicklung, vereinfacht die Entscheidungsfindung und fördert die effiziente Ressourcennutzung.
Sehen Sie sich die Referenzarchitekturen an, die Google für verschiedene Anwendungsfälle und Technologien zur Verfügung stellt. Diese Referenzarchitekturen enthalten Best Practices für die Ressourcenauswahl, -größe, -konfiguration und -bereitstellung. Mit diesen Referenzarchitekturen können Sie Ihren Entwicklungsprozess beschleunigen und von Anfang an Kosten sparen.
Kostendisziplin mithilfe von Organisationsrichtlinien durchsetzen
Sie können Organisationsrichtlinien verwenden, um die verfügbaren Google Cloud-Standorte und ‑Produkte einzuschränken, die Teammitglieder verwenden können. Mit diesen Richtlinien sorgen Sie dafür, dass Teams kosteneffiziente Lösungen verwenden und Ressourcen an Standorten bereitstellen, die Ihren Zielen zur Kostenoptimierung entsprechen.
Realistische Budgets schätzen und finanzielle Grenzen festlegen
Erstellen Sie detaillierte Budgets für jedes Projekt, jede Arbeitslast und jede Bereitstellungsumgebung. Die Budgets müssen alle Aspekte des Cloud-Betriebs abdecken, einschließlich Infrastrukturkosten, Softwarelizenzen, Personal und prognostiziertem Wachstum. Legen Sie klare Ausgabenlimits oder -grenzwerte für Projekte, Dienstleistungen oder bestimmte Ressourcen fest, um eine Überschreitung des Budgets zu vermeiden und Ihre finanziellen Ziele zu erreichen. Überwachen Sie die Cloud-Ausgaben regelmäßig im Hinblick auf diese Limits. Mit proaktiven Benachrichtigungen zu Kontingenten können Sie potenzielle Kostenüberschreitungen frühzeitig erkennen und rechtzeitig Korrekturmaßnahmen ergreifen.
Neben Budgets können Sie auch Kontingente und Limits verwenden, um die Kostendisziplin zu wahren und unerwartete Ausgabenspitzen zu vermeiden. Sie können die Ressourcennutzung detailliert steuern, indem Sie Kontingente auf verschiedenen Ebenen festlegen, z. B. für Projekte, Dienste und sogar bestimmte Ressourcentypen.
Im Folgenden finden Sie Beispiele für die Implementierung dieser Empfehlung:
- Kontingente auf Projektebene: Legen Sie Ausgabenlimits oder Ressourcenkontingente auf Projektebene fest, um allgemeine finanzielle Grenzen festzulegen und den Ressourcenverbrauch für alle Dienste im Projekt zu steuern.
- Dienstspezifische Kontingente: Konfigurieren Sie Kontingente für bestimmte Google Cloud-Dienste wie Compute Engine oder BigQuery, um die Anzahl der Instanzen, CPUs oder Speicherkapazitäten zu begrenzen, die bereitgestellt werden können.
- Ressourcentypspezifische Kontingente: Sie können Kontingente auf einzelne Ressourcentypen wie Compute Engine-VMs, Cloud Storage-Buckets, Cloud Run-Instanzen oder GKE-Knoten anwenden, um deren Nutzung einzuschränken und unerwartete Kostenüberschreitungen zu vermeiden.
- Kontingentbenachrichtigungen: Sie erhalten Benachrichtigungen, wenn die Kontingentnutzung (auf Projektebene) einen bestimmten Prozentsatz des Maximalwerts erreicht.
Wenn Sie Kontingente und Limits in Verbindung mit Budgetierung und Überwachung verwenden, können Sie einen proaktiven und mehrschichtigen Ansatz für die Kostenkontrolle entwickeln. So können Sie dafür sorgen, dass Ihre Cloud-Ausgaben innerhalb der festgelegten Grenzen bleiben und Ihren Geschäftszielen entsprechen. Denken Sie daran, dass diese Kostenkontrollen nicht dauerhaft oder starr sind. Damit die Kostensteuerung den aktuellen Branchenstandards entspricht und Ihre sich ändernden Geschäftsanforderungen widerspiegelt, müssen Sie die Einstellungen regelmäßig überprüfen und an neue Technologien und Best Practices anpassen.