COST09-BP03 Dynamische Bereitstellung von Ressourcen
Ressourcen werden geplant bereitgestellt. Dies kann bedarfsbasiert sein, z. B. durch Auto Scaling, oder zeitbasiert, wobei der Bedarf vorhersehbar ist und Ressourcen basierend auf der Zeit bereitgestellt werden. Diese Methoden führen zur geringsten Anzahl an Über- oder Unterversorgungen.
Risikostufe bei fehlender Befolgung dieser Best Practice: Niedrig
Implementierungsleitfaden
Es gibt verschiedene Möglichkeiten für AWS-Kunden, die für ihre Anwendungen verfügbaren Ressourcen zu erhöhen und Ressourcen bereitzustellen, um der Nachfrage gerecht zu werden. Eine dieser Optionen ist die Verwendung von AWS Instance Scheduler, der das Starten und Stoppen von Amazon Elastic Compute Cloud (Amazon EC2)- und (Amazon Relational Database Service) Amazon RDS-Instances automatisiert. Die andere Option ist die Verwendung von AWS Auto Scaling, mit der Sie Ihre Computing-Ressourcen automatisch an die Anforderungen Ihrer Anwendung oder Ihres Services anpassen können. Wenn Sie Ressourcen bedarfsgerecht bereitstellen, zahlen Sie nur für die Ressourcen, die Sie tatsächlich nutzen. So senken Sie die Kosten, indem Sie Ressourcen bereitstellen, wenn sie benötigt werden, und sie beenden, wenn sie nicht mehr benötigt werden.
Mit dem AWS Instance Scheduler

Kostenoptimierung mit AWS Instance Scheduler
Mit AWS Systems Manager Quick Setup können Sie mithilfe einer einfachen Benutzeroberfläche auch ganz einfach Zeitpläne für Ihre Amazon EC2-Instances in Ihren Konten und Regionen konfigurieren. Sie können Amazon EC2- oder Amazon RDS-Instances mit dem AWS Instance Scheduler planen und bestehende Instances stoppen und starten. Sie können jedoch keine Instances stoppen und starten, die Teil Ihrer Auto Scaling-Gruppe (ASG) sind oder die Services wie Amazon Redshift oder Amazon OpenSearch Service verwalten. Auto Scaling-Gruppen haben ihre eigene Planung für die Instances in der Gruppe und diese Instances werden erstellt.
Mit AWS Auto Scaling
Für die Skalierung Ihrer Auto Scaling-Gruppe haben Sie mehrere Skalierungsoptionen:
-
Beibehaltung der aktuellen Instance-Levels zu jeder Zeit
-
Manuelles Skalieren
-
Skalieren auf der Grundlage eines Zeitplans
-
Skalieren nach Bedarf
-
Verwenden vorausschauender Skalierung
Auto Scaling-Richtlinien unterscheiden sich und können in dynamische und geplante Skalierungsrichtlinien unterteilt werden. Dynamische Richtlinien sind für manuelle oder dynamische Skalierung, die geplant oder prädiktiv sein kann. Sie können Skalierungsrichtlinien für dynamische, geplante und prädiktive Skalierung verwenden. Sie können auch Metriken und Alarme von Amazon CloudWatch
Verwenden Sie AWS Auto Scaling oder implementieren Sie die Skalierung in Ihren Code mit den AWS APIs oder SDKs
Elastic Load Balancing (Elastic Load Balancing)
Typische Metriken können Amazon EC2-Standardmetriken sein, z. B. CPU-Auslastung, Netzwerkdurchsatz und Elastic Load Balancing-beobachtete Anforderungs- und Antwortlatenz. Wenn möglich, sollten Sie eine Metrik verwenden, die auf das Kundenerlebnis hinweist. In der Regel handelt es sich um eine benutzerdefinierte Metrik, die aus Anwendungscode innerhalb Ihres Workloads stammen kann. Um in diesem Dokument zu erläutern, wie die Nachfrage dynamisch gedeckt werden kann, werden wir Auto Scaling in zwei Kategorien einteilen, nämlich nachfragebasierte und zeitbasierte Angebotsmodelle, und uns eingehend mit den einzelnen Modellen befassen.
Nachfragebasiertes Angebot: Nutzen Sie die Elastizität der Cloud, um Ressourcen bereitzustellen, die sich ändernden Anforderungen gerecht werden, indem Sie sich auf den Nachfragestatus nahezu in Echtzeit verlassen. Verwenden Sie für nachfragebasierte Bereitstellung APIs oder Servicefunktionen, um die Menge der Cloud-Ressourcen in Ihrer Architektur programmgesteuert zu variieren. Auf diese Weise können Sie Komponenten in Ihrer Architektur skalieren und die Anzahl der Ressourcen in Bedarfsspitzenzeiten zur Aufrechterhalten der Leistung erhöhen und die Kapazität zur Reduzierung der Kosten herabsetzen, wenn der Bedarf abklingt.

Bedarfsbasierte dynamische Skalierungsrichtlinien
-
Einfache/schrittweise Skalierung: Überwacht Metriken und fügt Instances gemäß den vom Kunden manuell definierten Schritten hinzu oder entfernt sie.
-
Zielverfolgung: Ein thermostatähnlicher Steuermechanismus, der automatisch Instances hinzufügt oder entfernt, um die Metriken an einem vom Kunden definierten Ziel zu halten.
Beim Aufbau der Architektur mit einem bedarfsbasierten Ansatz sollten Sie die folgenden beiden wichtigen Aspekte berücksichtigen: 1. Machen Sie sich damit vertraut, wie schnell Sie neue Ressourcen bereitstellen müssen. 2. Machen Sie sich damit vertraut, dass sich die Größe der Marge zwischen Angebot und Nachfrage ändern wird. Sie müssen darauf vorbereitet sein, das Intervall der Änderung in Bezug auf die Nachfrage zu verarbeiten, und auch Ressourcenfehler einkalkulieren.
Zeitbasiertes Angebot: Ein zeitbasierter Ansatz richtet die Ressourcenkapazität an Bedarfen aus, die prognostizierbar sind oder zeitlich gut definiert werden können. Dieser Ansatz ist in der Regel nicht abhängig vom Nutzungsgrad der Ressourcen. Mit einem zeitbasierten Ansatz können Sie sicherstellen, dass Ressourcen zu dem Zeitpunkt zur Verfügung stehen, zu dem sie benötigt werden, und ohne Verzögerung aufgrund von Startverfahren und System- oder Konsistenzprüfungen bereitgestellt werden können. Durch die Verwendung eines zeitbasierten Ansatzes können Sie zusätzliche Ressourcen hinzufügen oder die Kapazität in Spitzenzeiten erhöhen.

Zeitbasierte Skalierungsrichtlinien
Sie können geplantes oder vorausschauendes Auto Scaling verwenden, um einen zeitbasierten Ansatz zu implementieren. Workloads können zu bestimmten Zeiten auf Basis eines Zeitplans auf- oder abskaliert werden, z. B. zu Beginn der Geschäftszeiten. Dadurch sind ausreichende Ressourcen verfügbar, wenn die Benutzer ankommen oder die Nachfrage steigt. Die vorausschauende Skalierung verwendet Muster zum Aufskalieren, während bei der geplanten Skalierung vordefinierte Zeiten für die Aufskalierung verwendet werden. Sie können auch eine Strategie der attributbasierten Auswahl des Instance-Typs (ABS) in Auto Scaling-Gruppen einsetzen und so die Instance-Anforderungen in Form einer Gruppe von Attributen ausdrücken, z. B. vCPU, Arbeitsspeicher und Speicher. Darüber hinaus können Sie automatisch Instance-Typen neuerer Generationen verwenden, sobald sie veröffentlicht werden, und mit Amazon EC2 Spot-Instances auf eine größeres Speicherangebot zugreifen. Amazon EC2-Flotte und Amazon EC2 Auto Scaling wählen Instances aus, die den angegebenen Attributen entsprechen, und starten diese. So müssen Sie Instance-Typen nicht mehr manuell auswählen.
Sie können die AWS-APIs und SDKs
Beim Aufbau der Architektur mit einem zeitbasierten Ansatz sollten Sie die beiden folgenden wichtigen Aspekte berücksichtigen: 1: Wie konsistent ist das Nutzungsmuster? 2. Wie wirken sich Musteränderungen aus? Sie können die Treffergenauigkeit für Prognosen durch die Überwachung Ihrer Workloads und die Verwendung von Business Intelligence erhöhen. Wenn Sie signifikante Änderungen im Nutzungsmuster erkennen, können Sie die Zeiten ändern, um eine Deckung zu gewährleisten.
Implementierungsschritte
-
Konfigurieren der geplanten Skalierung: Für vorhersehbare Änderungen des Bedarfs kann die zeitbasierte Skalierung die richtige Anzahl an Ressourcen in einem angemessenen Zeitraum bereitstellen. Es ist auch nützlich, wenn die Ressourcenerstellung und -konfiguration nicht schnell genug ist, um bei Bedarf auf Änderungen zu reagieren. Mithilfe der Workload-Analyse konfigurieren Sie die geplante Skalierung mithilfe von AWS Auto Scaling. Zur Konfiguration der zeitbasierten Planung können Sie die vorausschauende Skalierung der geplanten Skalierung verwenden, um im Vorfeld die Anzahl der Amazon EC2-Instances in Ihren Auto Scaling-Gruppen entsprechend den erwarteten oder prognostizierbaren Lastveränderungen zu erhöhen.
-
Konfigurieren der vorausschauenden Skalierung: Mit der vorausschauenden Skalierung können Sie im Voraus die Amazon EC2-Instances in Ihrer Auto Scaling-Gruppe anhand von täglichen und wöchentlichen Mustern in Datenverkehrsflüssen erhöhen. Wenn Sie regelmäßige Spitzen beim Datenverkehr sowie Anwendungen haben, die lange brauchen, um zu starten, sollten Sie die vorausschauende Skalierung in Betracht ziehen. Die vorausschauende Skalierung kann Ihnen helfen, schneller zu skalieren, indem die Kapazität vor der prognostizierten Last initialisiert wird, im Gegensatz zur dynamischen Skalierung, die nur reaktiv ist. Wenn die Benutzer Ihre Workloads beispielsweise mit Beginn der Geschäftszeiten nutzen und sie nach Geschäftsschluss nicht mehr brauchen, kann die vorausschauende Skalierung die Kapazität vor den Geschäftszeiten erhöhen. Die Verzögerung, die bei der dynamischen Skalierung entsteht, bis sie auf den veränderten Datenverkehr reagiert, entfällt somit.
-
Konfigurieren von dynamischem Auto Scaling: Verwenden Sie Auto Scaling, um die Skalierung auf der Grundlage von aktiven Workload-Metriken zu konfigurieren. Verwenden Sie die Analyse und konfigurieren Sie Auto Scaling so, dass es auf den richtigen Ressourcenebenen gestartet wird. Achten Sie darauf, dass der Workload in der erforderlichen Zeit skaliert wird. Mit nur einer Auto Scaling-Gruppe können Sie eine Flotte von On-Demand-Instances und Spot-Instances starten und automatisch skalieren. Sie erhalten nicht nur Rabatte für Spot-Instances, sondern können auch Reserved Instances oder einen Savings Plan nutzen, um ermäßigte Tarife gegenüber den normalen Preisen für On-Demand-Instances zu erhalten. Durch die Kombination dieser Faktoren sparen Sie Kosten für Amazon EC2-Instances und können die gewünschte Skalierung und Leistung für Ihre Anwendung festlegen.
Ressourcen
Zugehörige Dokumente:
-
Scale the size of your Auto Scaling group (Skalieren der Größe Ihrer Auto Scaling-Gruppe)
Zugehörige Videos:
Zugehörige Beispiele: