Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
REL07-BP03 Abrufen von Ressourcen bei Feststellung, dass für eine Workload mehr Ressourcen benötigt werden
Eine der wertvollsten Funktionen von Cloud Computing ist die Fähigkeit, Ressourcen dynamisch bereitzustellen.
In herkömmlichen On-Premises-Computerumgebungen müssen Sie im Voraus genügend Kapazität identifizieren und bereitstellen, um Zeiten mit höchster Auslastung bewältigen zu können. Dies ist ein Problem, da es teuer ist und die Verfügbarkeit gefährdet sein kann, wenn Sie die Spitzenkapazitätsanforderungen des Workloads unterschätzen.
In der Cloud ist dies nicht notwendig. Hier können Sie die Rechen-, Datenbank- und sonstigen Ressourcenkapazitäten nach Bedarf bereitstellen, um den aktuellen und prognostizierten Bedarf zu decken. Automatisierte Lösungen wie Amazon EC2 Auto Scaling und Application Auto Scaling können Ressourcen basierend auf von Ihnen angegebenen Metriken online für Sie bereitstellen. Dies kann den Skalierungsprozess einfacher und vorhersehbarer machen. Ihre Workloads sind jetzt erheblich zuverlässiger, da sichergestellt wird, dass Ihnen jederzeit genügend Ressourcen zur Verfügung stehen.
Gewünschtes Ergebnis: Sie konfigurieren die automatische Skalierung von Rechenleistung und anderen Ressourcen, um den Bedarf zu decken. Sie sorgen in Ihren Skalierungsrichtlinien für ausreichend Spielraum, damit Datenverkehrsspitzen aufgefangen werden können, während zusätzliche Ressourcen online geschaltet werden.
Typische Anti-Muster:
-
Sie stellen eine feste Anzahl von skalierbaren Ressourcen bereit.
-
Sie wählen eine Skalierungsmetrik, die nicht dem tatsächlichen Bedarf entspricht.
-
Sie bieten in Ihren Skalierungsplänen nicht genügend Spielraum, um Nachfragespitzen Rechnung zu tragen.
-
Ihre Skalierungsrichtlinien erhöhen die Kapazität zu spät, dadurch kommt es zu einer Erschöpfung der Kapazitäten und zu einem schlechten Service, während zusätzliche Ressourcen online geschaltet werden.
-
Sie konfigurieren die minimale und maximale Anzahl an Ressourcen nicht korrekt, was zu Skalierungsfehlern führt.
Vorteile der Einführung dieser bewährten Methode: Ausreichend Ressourcen zur Deckung des aktuellen Bedarfs sind entscheidend, um eine hohe Verfügbarkeit Ihres Workloads zu gewährleisten und Ihre definierten Servicelevel-Ziele (SLOs) einzuhalten. Durch die automatische Skalierung können Sie die richtige Menge an Rechen-, Datenbank- und sonstigen Ressourcen bereitstellen, die Ihr Workload benötigt, um den aktuellen und prognostizierten Bedarf zu decken. Sie müssen den Spitzenkapazitätsbedarf nicht ermitteln und Ressourcen nicht statisch zuweisen, um dem Bedarf gerecht zu werden. Sie haben vielmehr die Möglichkeit, bei steigendem Bedarf mehr Ressourcen zuzuweisen und bei einem Rückgang des Bedarfs Ressourcen zu deaktivieren, um die Kosten zu senken.
Risikostufe bei fehlender Befolgung dieser bewährten Methode: Mittel
Implementierungsleitfaden
Stellen Sie zunächst fest, ob die Workload-Komponente für die automatische Skalierung geeignet ist. Diese Komponenten werden als horizontal skalierbar bezeichnet, da sie dieselben Ressourcen bereitstellen und sich identisch verhalten. Beispiele für horizontal skalierbare Komponenten sind EC2-Instances, die gleich konfiguriert sind, Aufgaben von Amazon Elastic Container Service (ECS)
Weitere replizierte Ressourcen können Datenbanklesereplikate, Amazon-DynamoDB-Tabellen
Bei containerbasierten Architekturen müssen Sie möglicherweise auf zwei verschiedene Arten skalieren. Zunächst müssen Sie möglicherweise die Container skalieren, die horizontal skalierbare Services bereitstellen. Zweitens müssen Sie möglicherweise die Rechenressourcen skalieren, um Platz für neue Container zu schaffen. Für jede Ebene gibt es unterschiedliche automatische Skalierungsmechanismen. Um ECS-Aufgaben zu skalieren, können Sie Application Auto Scaling verwenden. Um Kubernetes-Pods zu skalieren, können Sie Horizontal Pod Autoscaler (HPA)
Wählen Sie als Nächstes aus, wie Sie die automatische Skalierung durchführen möchten. Es gibt drei Hauptoptionen: metrikbasierte Skalierung, geplante Skalierung und prädiktive Skalierung.
Metrikbasierte Skalierung
Bei der metrikbasierten Skalierung werden Ressourcen auf der Grundlage des Werts einer oder mehrerer Skalierungsmetriken bereitgestellt. Eine Skalierungsmetrik entspricht dem Bedarf Ihres Workloads. Eine gute Methode, um geeignete Skalierungsmetriken zu ermitteln, besteht darin, Lasttests in einer Nicht-Produktionsumgebung durchzuführen. Halten Sie während der Lasttests die Anzahl skalierbarer Ressourcen konstant und erhöhen Sie die Nachfrage langsam (z. B. Durchsatz, Parallelität oder simulierte Benutzer). Suchen Sie dann nach Metriken, die sich bei steigender Nachfrage erhöhen (oder verringern) und sich umgekehrt bei sinkender Nachfrage verringern (oder erhöhen). Zu den typischen Skalierungsmetriken gehören die CPU-Auslastung, die Tiefe der Arbeitswarteschlange (z. B. einer Amazon SQS
Anmerkung
AWS hat beobachtet, dass bei den meisten Anwendungen die Speicherauslastung in der Aufwärmphase der Anwendung zunimmt und dann einen konstanten Wert erreicht. Wenn die Nachfrage sinkt, bleibt die Speicherauslastung in der Regel erhöht und geht nicht parallel zurück. Da die Speicherauslastung in beiden Richtungen nicht dem Bedarf entspricht, also nicht mit dem Bedarf steigt und fällt, sollten Sie es sich genau überlegen, bevor Sie diese Metrik für die automatische Skalierung auswählen.
Die metrikbasierte Skalierung ist eine latente Operation. Es kann mehrere Minuten dauern, bis die Nutzungsmetriken auf Auto-Scaling-Mechanismen übertragen werden. Diese Mechanismen warten in der Regel auf ein deutliches Signal für eine erhöhte Nachfrage, bevor sie reagieren. Wenn der Autoscaler dann neue Ressourcen erstellt, kann es zusätzliche Zeit dauern, bis diese voll funktionsfähig sind. Aus diesem Grund ist es wichtig, dass Sie Ihre Skalierungsmetrikziele nicht zu nahe an der Vollauslastung festlegen (z. B. 90 % CPU-Auslastung). Ansonsten besteht die Gefahr, dass die vorhandene Ressourcenkapazität ausgeschöpft wird, bevor zusätzliche Kapazität verfügbar ist. Um eine optimale Verfügbarkeit zu erreichen, können die Ziele für die Ressourcennutzung typischerweise zwischen 50 und 70 % liegen, je nach Bedarfsmuster und Zeitaufwand für die Bereitstellung zusätzlicher Ressourcen.
Geplante Skalierung
Bei der geplanten Skalierung werden Ressourcen basierend auf dem Kalender oder der Tageszeit bereitgestellt oder entfernt. Sie wird häufig für Workloads mit vorhersehbarem Bedarf verwendet, wenn es beispielsweise zu den Geschäftszeiten an Wochentagen oder bei Verkaufsveranstaltungen zu einer Spitzenauslastung kommt. Sowohl Amazon EC2 Auto Scaling als auch Application Auto Scaling unterstützen die geplante Skalierung. Der Cron Scaler
Prädiktive Skalierung
Die prädiktive Skalierung verwendet Machine Learning, um Ressourcen automatisch basierend auf der erwarteten Nachfrage zu skalieren. Bei der prädiktiven Skalierung wird der historische Wert einer von Ihnen angegebenen Nutzungsmetrik analysiert und ihr zukünftiger Wert kontinuierlich prognostiziert. Der prognostizierte Wert wird dann verwendet, um die Ressource nach oben oder unten zu skalieren. Amazon EC2 Auto Scaling kann eine prädiktive Skalierung durchführen.
Implementierungsschritte
-
Ermitteln Sie, ob die Workload-Komponente für die automatische Skalierung geeignet ist.
-
Finden Sie heraus, welche Art von Skalierungsmechanismus für den Workload am besten geeignet ist: metrikbasierte Skalierung, geplante Skalierung oder prädiktive Skalierung.
-
Wählen Sie den geeigneten automatischen Skalierungsmechanismus für die Komponente aus. Verwenden Sie Amazon EC2 Auto Scaling für Amazon-EC2-Instances. Verwenden Sie Application Auto Scaling für andere AWS-Services. Für Kubernetes-Pods (wie z. B. solche, die in einem Amazon-EKS-Cluster ausgeführt werden) können Sie Horizontal Pod Autoscaler (HPA) oder Kubernetes Event-Driven Autoscaling (KEDA) in Betracht ziehen. Für Kubernetes- oder EKS-Knoten sollten Sie Karpenter und Cluster Auto Scaler (CAS) in Betracht ziehen.
-
Führen Sie für die metrikbasierte oder geplante Skalierung Lasttests durch, um die geeigneten Skalierungsmetriken und Zielwerte für Ihren Workload zu ermitteln. Ermitteln Sie für die geplante Skalierung die benötigte Ressourcenanzahl zu den von Ihnen ausgewählten Daten und Uhrzeiten. Ermitteln Sie die maximale Anzahl an Ressourcen, die benötigt werden, um die erwartete Verkehrsspitze zu bewältigen.
-
Konfigurieren Sie den Autoscaler auf der Grundlage der oben gesammelten Informationen. Weitergehende Informationen finden Sie in der Dokumentation zum Auto-Scaling-Service. Stellen Sie sicher, dass die Ober- und Untergrenze für die Skalierung korrekt konfiguriert sind.
-
Vergewissern Sie sich, dass die Skalierungskonfiguration wie erwartet funktioniert. Führen Sie Lasttests in einer Nicht-Produktionsumgebung durch, beobachten Sie, wie das System reagiert und nehmen Sie gegebenenfalls Anpassungen vor. Wenn Sie Auto Scaling in der Produktion aktivieren, konfigurieren Sie entsprechende Alarme, damit Sie über unerwartetes Verhalten informiert werden.
Ressourcen
Zugehörige Dokumente: