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 Sie bei Ihren Anwendungen von folgenden Vorteilen:

  • Bessere Fehlertoleranz. Amazon EC2 Auto Scaling erkennt, wenn eine Instance fehlerhaft ist, beendet sie und startet eine andere Instance, um die fehlerhafte zu ersetzen. Sie können Amazon EC2 Auto Scaling auch so konfigurieren, dass mehrere Availability Zones genutzt werden. Wenn eine Availability Zone ausfällt, startet Amazon EC2 Auto Scaling die Instances in einer anderen, um den Ausfall zu kompensieren.

  • Bessere Verfügbarkeit. Mit Amazon EC2 Auto Scaling können Sie sicherstellen, dass für Ihre Anwendung immer genügend Kapazität zur Verarbeitung des aktuellen Datenverkehrs verfügbar ist.

  • Bessere Kostenkontrolle. Amazon EC2 Auto Scaling passt die Kapazität je nach Bedarf dynamisch an. Da Sie für die Nutzung von EC2-Instances zahlen, sparen Sie Kosten, wenn Sie sie nur bei Bedarf starten und wieder beenden, sobald Sie sie nicht mehr brauchen.

Beispiel: Abdecken des Variablenbedarfs

Wir möchten Ihnen einige der Vorteile von Amazon EC2 Auto Scaling anhand einer einfachen Webanwendung zeigen, die in AWS ausgeführt wird. 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 dieser Anwendung Amazon EC2 Auto Scaling hinzufügen, bietet sich eine dritte Möglichkeit. 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, bezahlen Sie nur für die Instances, die Sie tatsächlich 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 bei Bedarf anpasst.

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. Die einzelnen Kopien Ihrer Anwendung werden auf identischen EC2-Instances (Cloud-Servern) gehostet, die die Kundenanfragen jeweils bearbeiten.

Amazon EC2 Auto Scaling verwaltet das Starten und Beenden dieser EC2-Instances für Sie. 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 Ausfallsicherheit in Amazon EC2 Auto Scaling.

Eine Availability Zone wird durch den AWS-Region Code gefolgt von einer Buchstabenkennung identifiziert (z. B.us-east-1a). Wenn Sie die VPC und Subnetze erstellen, anstatt die Standard-VPC zu verwenden, können Sie eines oder mehrere Subnetze in jeder Availability Zone definieren. Jedes Subnetz muss sich vollständig innerhalb einer Availability Zone befinden und darf nicht mehrere Zonen umfassen. Weitere Informationen finden Sie unter Wie funktioniert Amazon VPC im Benutzerhandbuch für Amazon VPC.

Wenn Sie eine Auto-Scaling-Gruppe erstellen, müssen Sie die VPC und die Subnetze auswählen, in denen Sie die Auto-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, in der Availability Zone mit den wenigsten Instances neue Instances zu starten. Wenn mehrere Subnetze in einer Availability Zone verwendet werden, wählt Amazon EC2 Auto Scaling das Subnetz der Availability Zone nach dem Zufallsprinzip aus. Falls dies fehlschlägt, versucht Amazon EC2 Auto Scaling so lange, die Instances in einer anderen Availability Zone zu starten, bis dies gelingt.

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 die Availability Zone wiederhergestellt ist, gleicht Amazon EC2 Auto Scaling die Auto-Scaling-Gruppe automatisch neu 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 kann dies kompensieren und das Gleichgewicht der Availability Zones wiederherstellen. 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 Wiederherstellen des Gleichgewichts von Instances startet Amazon EC2 Auto Scaling neue Instances, bevor die alten beendet werden. Auf diese Weise beeinträchtigt ein Wiederherstellen des Gleichgewichts die Leistung und Verfügbarkeit Ihrer Anwendung nicht.

Da Amazon EC2 Auto Scaling vor dem Beenden der vorherigen Instances versucht, neue zu starten, kann das Wiederherstellen des Gleichgewichts beeinträchtigt und sogar gänzlich unterbrochen werden, falls die angegebene maximale Kapazität nahezu oder gänzlich erreicht ist.

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 benachrichtigt, dass eine Spot-Instance einem erhöhten Unterbrechungsrisiko ausgesetzt ist. 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.