COST09-BP03 Dynamische Bereitstellung von Ressourcen - AWS Well-Architected Framework

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 dazu, dass die Über- oder Unterversorgung am geringsten ist.

Risikostufe, wenn diese bewährte Methode nicht eingeführt wird: Niedrig

Implementierungsleitfaden

Sie können AWS Auto Scalingverwenden oder die Skalierung in Ihren Code mit der AWS API oder dem SDK einbinden. Dies reduziert Ihre Gesamtkosten für den Workload, da die Betriebskosten durch manuelle Änderungen an Ihrer Umgebung wegfallen, und kann viel schneller durchgeführt werden. Auf diese Weise wird sichergestellt, dass die Workload-Ressourcen jederzeit am besten mit der Nachfrage übereinstimmen.

Nachfragebasiertes Angebot: Nutzen Sie die Elastizität der Cloud, um Ressourcen bereitzustellen, die sich ändernde Anforderungen erfüllen. Nutzen Sie die Vorteile von APIs oder Service-Funktionen, um die Menge der Cloud-Ressourcen in Ihrer Architektur dynamisch zu variieren. Auf diese Weise können Sie Komponenten in Ihrer Architektur skalieren und die Anzahl der Ressourcen in Bedarfsspitzenzeiten zur Aufrechterhalten der Leistung automatisch erhöhen und die Kapazität zur Reduzierung der Kosten herabsetzen, wenn der Bedarf abklingt.

AWS Auto Scaling können Sie Ihre Kapazität anpassen, um eine stabile, vorhersehbare Leistung zu möglichst niedrigen Kosten aufrechtzuerhalten. Es handelt sich um einen vollständig verwalteten und kostenlosen Service, der sich in Amazon Elastic Compute Cloud-Instances (Amazon EC2) und Spot-Flotten, Amazon Elastic Container Service (Amazon ECS), Amazon DynamoDB und Amazon Aurora integrieren lässt.

Auto Scaling bietet eine automatische Ressourcenerkennung, um zu helfen, Ressourcen in Ihrem Workload zu finden, die konfiguriert werden können. Es verfügt über integrierte Skalierungsstrategien zur Optimierung der Leistung, der Kosten oder eines Gleichgewichts zwischen beiden Ressourcen und bietet eine prädiktive Skalierung, um regelmäßig auftretende Spitzen zu unterstützen.

Auto Scaling kann eine manuelle, geplante oder bedarfsbasierte Skalierung implementieren. Sie können auch Metriken und Alarme von Amazon CloudWatch verwenden, um Skalierungsereignisse für Ihren Workload auszulösen. Typische Metriken können Amazon EC2-Standardmetriken sein, z. B. CPU-Auslastung, Netzwerkdurchsatz und von Elastic Load Balancing(ELB) beobachtete Anforderungs-/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.

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.

ELB unterstützt Sie bei der Skalierung durch die Verteilung der Nachfrage auf mehrere Ressourcen. Wenn Sie weitere Ressourcen implementieren, fügen Sie sie dem Load Balancer hinzu, um die Nachfrage zu erfüllen. Elastic Load Balancing unterstützt Amazon EC2-Instances, Container, IP-Adressen und AWS Lambda-Funktionen.

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.

Sie können geplantes Auto Scaling verwenden, um einen zeitbasierten Ansatz zu implementieren. Workloads können zu bestimmten Zeiten auf Basis eines Zeitplans hoch- oder runterskaliert werden, z. B. zu Beginn der Geschäftszeiten, und damit sicherstellen, dass ausreichende Ressourcen verfügbar sind, wenn die Benutzer oder Nachfrage ankommen.

Sie können die AWS-APIs und SDKs und AWS CloudFormation nutzen, um vollständige Umgebungen bei Bedarf bereitzustellen oder zu deaktivieren. Dieser Ansatz eignet sich hervorragend für Entwicklungs- und Testumgebungen, die nur zu Geschäftszeiten oder in bestimmten Zeiträumen ausgeführt werden.

Mit APIs können Sie die Größe der Ressourcen innerhalb einer Umgebung skalieren (Stichwort: vertikales Skalieren). So könnten Sie beispielsweise einen Produktions-Workload hochskalieren, indem Sie die Instance-Größe oder -Klasse ändern. Stoppen und starten Sie dazu die Instance, und wählen Sie eine andere Instance-Größe oder -Klasse aus. Diese Technik kann auch auf andere Ressourcen angewendet werden, z. B. Amazon Elastic Block Store (Amazon EBS), bei denen Sie im laufenden Betrieb die Größe ändern, die Leistung anpassen (IOPS) oder den Volume-Typ ändern können.

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 zeitbasierten Planung: 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.

  • Konfigurieren von Auto Scaling: Verwenden Sie Amazon Auto Scaling, um die Skalierung basierend auf aktiven Workload-Metriken zu konfigurieren. Verwenden Sie die Analyse und konfigurieren Sie Auto Scaling so, dass es auf den richtigen Ressourcenebenen ausgelöst wird. Stellen Sie sicher, dass der Workload in der erforderlichen Zeit skaliert wird.

Ressourcen

Zugehörige Dokumente: