Ressourcennutzung optimieren

Last reviewed 2024-09-25 UTC

Dieses Prinzip im Bereich „Kostenoptimierung“ des Google Cloud Well-Architected Framework enthält Empfehlungen zur Planung und Bereitstellung von Ressourcen, die den Anforderungen und Nutzungsmustern Ihrer Cloud-Arbeitslasten entsprechen.

Übersicht über die Grundsätze

Um die Kosten Ihrer Cloud-Ressourcen zu optimieren, 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) prognostizieren und Kostentreiber während der Cloud-Einführung identifizieren können. Durch die proaktive Analyse und Prognose von Cloud-Ausgaben können Sie fundierte Entscheidungen zur Ressourcenbereitstellung, ‑nutzung und Kostenoptimierung treffen. Mit diesem Ansatz können Sie die Cloud-Ausgaben kontrollieren, eine Überbereitstellung vermeiden und dafür sorgen, dass die Cloud-Ressourcen an die dynamischen Anforderungen Ihrer Arbeitslasten und Umgebungen angepasst werden.

Empfehlungen

Beachten Sie die folgenden Empfehlungen, um die Nutzung von Cloud-Ressourcen effektiv zu optimieren.

Umgebungsspezifische Ressourcen auswählen

Für jede Bereitstellungsumgebung gelten 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 Zeit ausführen können, benötigen aber keine Hochverfügbarkeit. Andererseits ist in einer Produktionsumgebung in der Regel Hochverfügbarkeit erforderlich. Um die Nutzung Ihrer Ressourcen zu maximieren, sollten Sie umgebungsspezifische Anforderungen auf Grundlage Ihrer Geschäftsanforderungen definieren. In der folgenden Tabelle finden Sie Beispiele für umgebungsspezifische Anforderungen.

Umgebung Voraussetzungen
Produktion
  • Hochverfügbarkeit
  • Vorhersagbare Leistung
  • Betriebliche Stabilität
  • Sicherheit mit robusten Ressourcen
Entwicklung und Tests
  • Kosteneffizienz
  • Flexible Infrastruktur mit Burst-Kapazität
  • Kurzlebige Infrastruktur, wenn keine Datenpersistenz erforderlich ist
Andere Umgebungen (z. B. Staging und QA)
  • Angepasste Ressourcenzuweisung basierend auf umgebungsspezifischen Anforderungen

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 der einzelnen Arbeitslasten anpassen. Eine zustandslose Anwendung erfordert beispielsweise möglicherweise nicht dasselbe Maß an Verfügbarkeit oder Zuverlässigkeit wie ein zustandsbehaftetes Backend. In der folgenden Tabelle finden Sie weitere Beispiele für arbeitslastspezifische Anforderungen.

Arbeitslasttyp Arbeitslastanforderungen Ressourcenoptionen
Geschäftskritisch Kontinuierliche Verfügbarkeit, robuste Sicherheit und hohe Leistung Premium-Ressourcen 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 kurzlebige 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 Functions.
Testarbeitslasten 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 ist die Möglichkeit, die für eine bestimmte Arbeitslast am besten geeignete Rechenleistung zu nutzen. Einige Arbeitslasten sind so entwickelt, dass sie die Befehlssätze von Prozessoren nutzen, andere sind möglicherweise nicht so konzipiert. Führen Sie Benchmarks und Profilerstellung für Ihre Arbeitslasten durch. Kategorisieren Sie Ihre Arbeitslasten und treffen Sie arbeitslastspezifische Ressourcenauswahlen (z. B. Auswahl geeigneter Maschinenfamilien für Compute Engine-VMs). Diese Vorgehensweise trägt dazu bei, Kosten zu optimieren, Innovationen zu ermöglichen und das erforderliche Maß an Verfügbarkeit und Leistung für Ihre Arbeitslasten aufrechtzuerhalten.

Im Folgenden finden Sie Beispiele für die Umsetzung dieser Empfehlung:

  • Für geschäftskritische Arbeitslasten, die global verteilte Nutzer bedienen, sollten Sie Spanner verwenden. Spanner macht komplexe Datenbankbereitstellungen überflüssig, da die Zuverlässigkeit und Konsistenz von Daten in allen Regionen gewährleistet wird.
  • Verwenden Sie für Arbeitslasten mit schwankenden Lasten Autoscaling, um Kosten bei geringer Last zu vermeiden und gleichzeitig genügend Kapazität für die aktuelle Last bereitzustellen. Sie können das Autoscaling für vieleGoogle Cloud -Dienste konfigurieren, darunter Compute Engine-VMs, Google Kubernetes Engine-Cluster (GKE) und Cloud Run. Wenn Sie Autoscaling einrichten, können Sie maximale Skalierungslimits konfigurieren, damit die Kosten innerhalb der angegebenen Budgets bleiben.

Regionen anhand der Kostenanforderungen auswählen

Bewerten Sie die verfügbaren Google CloudRegionen 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 keine optimale Latenz oder erfüllt nicht Ihre Nachhaltigkeitsanforderungen. Treffen Sie fundierte Entscheidungen darüber, wo Sie Ihre Arbeitslasten bereitstellen, um das gewünschte Gleichgewicht zu erreichen. Mit dem Google Cloud Region Picker können Sie die Kompromisse zwischen Kosten, Nachhaltigkeit, Latenz und anderen Faktoren 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 finden Sie Beispiele für Funktionen zur Kostenoptimierung, die Sie in einigen Google Cloud -Produkten verwenden können:

Produkt Funktion zur Kostenoptimierung
Compute Engine
  • Mit Autoscaling können Sie VMs basierend auf der aktuellen Last automatisch hinzufügen oder entfernen.
  • Überprovisionierung vermeiden, indem Sie benutzerdefinierte Maschinentypen erstellen und verwenden
  • die den Anforderungen Ihrer Arbeitslast entsprechen.
  • Für nicht kritische oder fehlertolerante Arbeitslasten können Sie die Kosten mit Spot-VMs senken.
  • In Entwicklungsumgebungen können Sie die Kosten senken, indem Sie die Laufzeit von VMs begrenzen oder VMs anhalten oder beenden, wenn Sie sie nicht benötigen.
GKE
  • Mit Cluster Autoscaler können Sie die Größe von GKE-Clustern automatisch an die aktuelle Auslastung anpassen.
  • Knotenpools basierend auf den Arbeitslastanforderungen automatisch erstellen und verwalten und durch automatische Knotenbereitstellung für eine optimale Ressourcennutzung sorgen.
Cloud Storage
  • Mit der Verwaltung des Objektlebenszyklus können Sie Daten basierend auf dem Alter der Daten oder auf Zugriffsmustern automatisch in kostengünstigere Speicherklassen verschieben.
  • Mit Autoclass können Sie Daten basierend auf Nutzungsmustern dynamisch in die kostengünstigste Speicherklasse verschieben.
BigQuery
  • Mit kapazitätsbasierten Preisen können Sie die Kosten für die Abfrageverarbeitung für Arbeitslasten im Steady State senken.
  • Optimieren Sie die Abfrageleistung und ‑kosten mithilfe von Partitionierungs- und Clustering-Techniken.
Google Cloud VMware Engine
  • Reduzieren Sie die VMware-Kosten mit Strategien zur Kostenoptimierung wie Rabatte für zugesicherte Nutzung, Optimierung des Speicherverbrauchs und Anpassung der Größe von ESXi-Clustern.

Ressourcenteilung optimieren

Um die Auslastung von Cloud-Ressourcen zu maximieren, können Sie mehrere Anwendungen oder Dienste auf derselben Infrastruktur bereitstellen und dabei die Sicherheits- und anderen Anforderungen der Anwendungen erfüllen. In Entwicklungs- und Testumgebungen können Sie beispielsweise dieselbe Cloud-Infrastruktur verwenden, um alle Komponenten einer Anwendung zu testen. In der Produktionsumgebung können Sie jede Komponente auf einer separaten Gruppe von Ressourcen bereitstellen, um die Auswirkungen bei Vorfällen zu begrenzen.

Im Folgenden finden Sie Beispiele für die Umsetzung dieser Empfehlung:

  • Verwenden Sie eine einzelne Cloud SQL-Instanz für mehrere Nichtproduktionsumgebungen.
  • Ermöglichen Sie mehreren Entwicklungsteams, einen GKE-Cluster gemeinsam zu nutzen, indem Sie die Funktion Flotten-Teamverwaltung in GKE mit entsprechenden Zugriffssteuerungen verwenden.
  • Verwenden Sie GKE Autopilot, um von Kostenoptimierungstechniken wie Bin Packing und Autoscaling zu profitieren, die standardmäßig in GKE implementiert sind.
  • Bei KI- und ML-Arbeitslasten können Sie GPU-Kosten sparen, indem Sie GPU-Freigabestrategien wie GPUs mit mehreren Instanzen, GPUs mit Zeitfreigabe und NVIDIA MPS verwenden.

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 zentral von einem Team wie einem Cloud Center of Excellence (CCoE) verwaltet werden. Projektteams können anhand klar definierter Kriterien geeignete Blueprints auswählen, um für architektonische Konsistenz und die Übernahme von Best Practices zu sorgen. Für Anforderungen, die für ein Projekt spezifisch sind, sollten das Projektteam und das zentrale Architekturteam zusammenarbeiten, um neue Referenzarchitekturen zu 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 eine effiziente Ressourcennutzung.

Sehen Sie sich die Referenzarchitekturen an, die Google für verschiedene Anwendungsfälle und Technologien bereitstellt. Diese Referenzarchitekturen enthalten Best Practices für die Auswahl, Größenanpassung, Konfiguration und Bereitstellung von Ressourcen. Mit diesen Referenzarchitekturen können Sie Ihren Entwicklungsprozess beschleunigen und von Anfang an Kosten sparen.

Kostendisziplin mit Organisationsrichtlinien erzwingen

Mit Organisationsrichtlinien können Sie die verfügbaren Google Cloud Standorte und Produkte einschränken, die Teammitglieder verwenden können. Diese Richtlinien tragen dazu bei, dass Teams kostengünstige Lösungen einhalten und Ressourcen an Standorten bereitstellen, die Ihren Kostensenkungszielen entsprechen.

Realistische Budgets schätzen und finanzielle Grenzen festlegen

Erstellen Sie detaillierte Budgets für jedes Projekt, jede Arbeitslast und jede Bereitstellungsumgebung. Achten Sie darauf, dass die Budgets alle Aspekte des Cloud-Betriebs abdecken, einschließlich Infrastrukturkosten, Softwarelizenzen, Personal und erwartetes Wachstum. Um Mehrausgaben zu vermeiden und Ihre finanziellen Ziele zu erreichen, sollten Sie klare Ausgabenlimits oder ‑grenzwerte für Projekte, Dienste oder bestimmte Ressourcen festlegen. Behalten Sie die Cloud-Ausgaben regelmäßig im Blick und vergleichen Sie sie mit diesen Limits. Mit proaktiven Kontingentbenachrichtigungen können Sie potenzielle Kostenüberschreitungen frühzeitig erkennen und rechtzeitig Korrekturmaßnahmen ergreifen.

Zusätzlich zu Budgets können Sie Kontingente und Limits verwenden, um die Kostendisziplin zu wahren und unerwartete Ausgabenspitzen zu vermeiden. Sie können den Ressourcenverbrauch 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 Umsetzung 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 die Speicherkapazität zu begrenzen, die bereitgestellt werden können.
  • Ressourcentypspezifische Kontingente: Wenden Sie Kontingente auf einzelne Ressourcentypen wie Compute Engine-VMs, Cloud Storage-Buckets, Cloud Run-Instanzen oder GKE-Knoten an, um die Nutzung einzuschränken und unerwartete Kostenüberschreitungen zu verhindern.
  • 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 Monitoring verwenden, können Sie einen proaktiven und mehrschichtigen Ansatz zur Kostenkontrolle schaffen. So können Sie sicherstellen, dass Ihre Cloud-Ausgaben innerhalb der festgelegten Grenzen bleiben und mit Ihren Geschäftszielen übereinstimmen. Denken Sie daran, dass diese Kostenkontrollen nicht dauerhaft oder starr sind. Damit die Kostenkontrollen den aktuellen Branchenstandards entsprechen und Ihre sich ändernden Geschäftsanforderungen widerspiegeln, müssen Sie sie regelmäßig überprüfen und anpassen, um neue Technologien und Best Practices zu berücksichtigen.