Vorteile von Auto Scaling für die Anwendungsarchitektur - Amazon EC2 Auto Scaling

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.

Vorteile von Auto Scaling für die Anwendungsarchitektur

Das Hinzufügen von Amazon EC2 Auto Scaling zu Ihrer Anwendungsarchitektur ist eine Möglichkeit, die Vorteile der AWS Cloud zu maximieren. Wenn Sie Amazon EC2 Auto Scaling verwenden, profitieren Ihre Anwendungen von den folgenden Vorteilen:

  • Bessere Fehlertoleranz. Amazon EC2 Auto Scaling kann erkennen, wenn eine Instance fehlerhaft ist, sie beenden und eine Instance starten, um sie zu ersetzen. Sie können Amazon EC2 Auto Scaling auch so konfigurieren, dass mehrere Availability Zones verwendet werden. Wenn eine Availability Zone nicht verfügbar ist, kann Amazon EC2 Auto Scaling zum Ausgleich Instances in einer anderen starten.

  • Bessere Verfügbarkeit. Amazon EC2 Auto Scaling hilft sicherzustellen, dass Ihre Anwendung immer über die richtige Kapazität verfügt, um den aktuellen Datenverkehrsbedarf zu bewältigen.

  • Bessere Kostenkontrolle. Amazon EC2 Auto Scaling kann die Kapazität nach Bedarf dynamisch erhöhen und verringern. Da Sie für die EC2 Instances bezahlen, die Sie nutzen, sparen Sie Geld, indem Sie Instances starten, wenn sie benötigt werden, und sie beenden, wenn sie nicht benötigt werden.

Beispiel: Abdecken des Variablenbedarfs

Um einige der Vorteile von Amazon EC2 Auto Scaling zu demonstrieren, ziehen Sie eine einfache Webanwendung in Betracht, die auf läuft AWS. Mit dieser Anwendung können Mitarbeiter Konferenzräume für Meetings suchen. Am Anfang und am Ende der Woche wird diese Anwendung nur wenig genutzt. Mitte der Woche planen mehr Mitarbeiter ihre Meetings, die Anforderungen an die Anwendung erhöhen sich also deutlich.

Das folgende Diagramm zeigt, wie viel Kapazität der Anwendung im Lauf der Woche verwendet wird.

Ein Beispiel des Kapazitätsbedarfs einer Anwendung.

Bisher gab es zwei nur Möglichkeiten, diese Änderungen in der Kapazitätsplanung zu berücksichtigen. Bei der ersten Möglichkeit werden so viele Server hinzugefügt, dass der Kapazitätsbedarf der Anwendung immer gedeckt ist. Diese Möglichkeit hat jedoch einen Nachteil. An machen Tagen benötigt die Anwendung nicht so viel Kapazität. Die zusätzliche Kapazität bleibt ungenutzt und erhöht im Grunde genommen die Kosten für das Ausführen der Anwendung.

Ein Beispiel, das zeigt, wie ineffizient – unter Kostengesichtspunkten – der Kauf von Kapazität ist, die eigentlich nicht benötigt wird.

Bei der zweiten Möglichkeit wird darauf geachtet, dass die Kapazität für den durchschnittlichen Bedarf der Anwendung ausreicht. Diese Möglichkeit ist kostengünstiger, da Sie keine Geräte kaufen, die Sie nur gelegentlich verwenden. Allerdings riskieren Sie eine schlechte Kundenerfahrung, wenn der Bedarf der Anwendung die Kapazität übersteigt.

Ein Beispiel, das zeigt, wie der Kauf von zu wenig Kapazität zu einer schlechten Kundenerfahrung führen kann.

Wenn Sie Amazon EC2 Auto Scaling zu dieser Anwendung hinzufügen, steht Ihnen eine dritte Option zur Verfügung. Sie können der Anwendung bei Bedarf neue Instances hinzufügen und diese wieder beenden, wenn Sie sie nicht mehr benötigen. Da Amazon EC2 Auto Scaling EC2 Instances verwendet, müssen Sie nur für die Instances bezahlen, die Sie nutzen, wenn Sie sie nutzen. Sie verfügen jetzt über eine kosteneffektive Architektur, die eine optimale Kundenerfahrung erzielt und gleichzeitig die Kosten gering hält.

Ein Beispiel, das zeigt, wie Amazon EC2 Auto Scaling die Kapazität nach Bedarf anpassen kann.

Beispiel: Architektur für eine Web-App

Bei den meisten Web-Apps werden mehrere Kopien der App gleichzeitig ausgeführt, um dem Kunden-Datenverkehr gerecht zu werden. Diese mehreren Kopien Ihrer Anwendung werden auf identischen EC2 Instanzen (Cloud-Servern) gehostet, von denen jede Kundenanfragen bearbeitet.

Amazon EC2 Auto Scaling verwaltet den Start und die Beendigung dieser EC2 Instances in Ihrem Namen. Sie definieren eine Reihe von Kriterien (z. B. einen CloudWatch Amazon-Alarm), die bestimmen, wann die Auto Scaling Scaling-Gruppe EC2 Instances startet oder beendet. Das Hinzufügen von Auto-Scaling-Gruppen zur Ihrer Netzwerkarchitektur trägt dazu bei, dass sich die Verfügbarkeit und Fehlertoleranz Ihrer Anwendung verbessern.

Eine grundlegende dreistufige Architektur mit einer Auto-Scaling-Gruppe.

Sie können so viele Auto-Scaling-Gruppen erstellen, wie Sie benötigen. Sie können beispielsweise für jede Ebene eine Auto-Scaling-Gruppe erstellen.

Damit der Datenverkehr zwischen den Instances in Ihren Auto-Scaling-Gruppen aufgeteilt wird, können Sie einen Load Balancer in Ihre Architektur aufnehmen. Weitere Informationen finden Sie unter Elastic Load Balancing.

Beispiel: Aufteilen von Instances in mehrere Availability Zones

Availability Zones sind isolierte Standorte innerhalb in einer gegebenen AWS-Region-Region. Jede Region verfügt über mehrere Availability Zones, die eine hohe Verfügbarkeit für die Region bieten. Availability Zones sind unabhängig, und daher erhöhen Sie die Anwendungsverfügbarkeit, wenn Sie Ihre Anwendung so entwerfen, dass sie mehrere Zonen verwendet. Weitere Informationen finden Sie unter Resilienz bei Amazon EC2 Auto Scaling.

Eine Availability Zone wird durch den AWS-Region Code gefolgt von einer Buchstabenkennung (z. B.us-east-1a) identifiziert. Wenn Sie Ihre Subnetze VPC und nicht die Standardsubnetze erstellenVPC, können Sie in jeder Availability Zone ein oder mehrere Subnetze definieren. Jedes Subnetz muss sich vollständig innerhalb einer Availability Zone befinden und darf nicht mehrere Zonen umfassen. Weitere Informationen finden Sie unter So VPC funktioniert Amazon im VPCAmazon-Benutzerhandbuch.

Wenn Sie eine Auto Scaling Scaling-Gruppe erstellen, müssen Sie die Subnetze VPC und Subnetze auswählen, in denen Sie die Auto Scaling Scaling-Gruppe bereitstellen möchten. Amazon EC2 Auto Scaling erstellt Ihre Instances in den von Ihnen ausgewählten Subnetzen. Jede Instance ist somit einer bestimmten Availability Zone zugeordnet, die von Amazon EC2 Auto Scaling ausgewählt wurde. Wenn Instances gestartet werden, versucht Amazon EC2 Auto Scaling, sie gleichmäßig auf die Zonen zu verteilen, um eine hohe Verfügbarkeit und Zuverlässigkeit zu gewährleisten.

Sie sehen hier einen Überblick über die mehrstufige Architektur, die in drei Availability Zones eingesetzt wird.

Eine typische Auto-Scaling-Gruppe, die auf drei Availability Zones aufgeteilt ist.

Instance-Distribution

Amazon EC2 Auto Scaling versucht automatisch, die gleiche Anzahl von Instances in jeder aktivierten Availability Zone aufrechtzuerhalten. Amazon EC2 Auto Scaling versucht dazu, neue Instances in der Availability Zone mit den wenigsten Instances zu starten. Wenn mehrere Subnetze für die Availability Zone ausgewählt wurden, wählt Amazon EC2 Auto Scaling nach dem Zufallsprinzip ein Subnetz aus der Availability Zone aus. Schlägt der Versuch jedoch fehl, versucht Amazon EC2 Auto Scaling, die Instances in einer anderen Availability Zone zu starten, bis der Versuch erfolgreich ist.

Unter Umständen, in denen eine Availability Zone nicht mehr funktioniert oder nicht mehr verfügbar ist, kann die Verteilung der Instances auf die Availability Zones ungleichmäßig verteilt werden. Wenn sich die Availability Zone erholt, gleicht Amazon EC2 Auto Scaling die Auto Scaling Scaling-Gruppe automatisch aus. Dies geschieht, indem Instances in den aktivierten Availability Zones mit den wenigsten Instances gestartet und Instances an anderer Stelle beendet werden.

Wiederherstellen des Gleichgewichts von Aktivitäten

Neuausgleichsaktivitäten fallen in zwei Kategorien: Neuausgleich der Availability Zone und Neuausgleich der Kapazität.

Neuausgleich der Availability Zone

Nach bestimmten Aktionen kann das Verhältnis der Availability Zones Ihrer Auto-Scaling-Gruppe aus dem Gleichgewicht geraten. Amazon EC2 Auto Scaling kompensiert dies durch eine Neuverteilung der Availability Zones. Folgende Aktionen können ein Wiederherstellen des Gleichgewichts erforderlich machen:

  • Sie ändern die Availability Zones, die Ihrer Auto-Scaling-Gruppe zugeordnet sind.

  • Sie beenden oder trennen Instances explizit, oder versetzen Instances in den Standby-Modus, wodurch die Gruppe aus dem Gleichgewicht gerät.

  • Eine Availability Zone, die bisher zu wenig Kapazität hatte, wurde wiederhergestellt, wodurch jetzt zusätzliche Kapazität zur Verfügung steht.

  • Eine Availability Zone mit einem Spot-Preis, der bisher über Ihrem Höchstpreis lag, liegt jetzt darunter.

Beim Rebalancing startet Amazon EC2 Auto Scaling neue Instances, bevor die vorherigen beendet werden. Auf diese Weise beeinträchtigt ein Wiederherstellen des Gleichgewichts die Leistung und Verfügbarkeit Ihrer Anwendung nicht.

Da Amazon EC2 Auto Scaling versucht, neue Instances zu starten, bevor die vorherigen beendet werden, könnte eine Annäherung an oder in der Nähe der angegebenen maximalen Kapazität die Aktivitäten zur Neuverteilung behindern oder ganz zum Erliegen bringen.

Um dieses Problem zu vermeiden, kann das System beim Wiederherstellen des Gleichgewichts die angegebene maximale Kapazität einer Gruppe vorübergehend überschreiten. Standardmäßig kann dies mit einer Marge von 10 Prozent oder einer Instance geschehen, je nachdem, welcher Wert größer ist. Die Marge wird nur verlängert, wenn die Gruppe die maximale Kapazität erreicht oder fast erreicht und eine Neugewichtung erforderlich ist. Die Kapazität wird nur für die Dauer der Wiederherstellung des Gleichgewichts in der Gruppe erhöht, in der Regel sind dies einige Minuten.

Alternativ können Sie mithilfe einer Wartungsrichtlinie für Instances Schwellenwerte für eine Auto-Scaling-Gruppe festlegen, und die Gruppe kann die Kapazität nur innerhalb dieses Schwellenwertbereichs erhöhen oder verringern. Auf diese Weise können Sie kontrollieren, wie schnell Ihre Gruppe eine erneute Verteilung durchführt. Weitere Informationen finden Sie unter Wartungsrichtlinien für Instances.

Kapazitätsausgleich

Wenn Sie Spot-Instances verwenden, können Sie den Kapazitätsausgleich für Ihre Auto-Scaling-Gruppen aktivieren. Dadurch kann Amazon EC2 Auto Scaling versuchen, eine Spot-Instance zu starten, wenn Amazon EC2 meldet, dass für eine Spot-Instance ein erhöhtes Risiko einer Unterbrechung besteht. Nach dem Start einer neuen Instance wird dann eine frühere Instance beendet. Weitere Informationen finden Sie unter Verwenden des Kapazitätsausgleichs, um Amazon-EC2-Spot-Unterbrechungen zu behandeln.