Erste Schritte mit AWS EC2 Autoscaling

Laufen einer Website oder Anwendung muss nicht teuer sein. Tatsächlich gibt es Möglichkeiten, Ressourcen zu sparen und dennoch Benutzern ein großartiges Erlebnis zu bieten. Ein Beispiel hierfür ist AWS EC2 Autoscaling.

EC2 Auto Scaling ist ein Dienst, der Ihnen dabei helfen kann, die Kapazität Ihres Amazon EC2 automatisch entsprechend den von Ihnen definierten Bedingungen zu skalieren. In diesem Tutorial erfahren Sie, wie Sie eine grundlegende EC2 Auto Scaling-Konfiguration auf AWS für Ihre Anwendungen einrichten und anwenden.

Lesen Sie weiter und stellen Sie sicher, dass Ihre Anwendung immer über Ressourcen verfügt, ohne mehr zu zahlen, als Sie benötigen!

Voraussetzungen

Dieses Tutorial enthält praktische Demonstrationen. Um mitzumachen, benötigen Sie ein AWS-Konto, und ein kostenloses Konto im Free-Tier würde ausreichen.

Erstellen einer Startvorlage

Bevor Sie zu AWS EC2 Auto Scaling übergehen, benötigen Sie zunächst eine Möglichkeit, eine EC2-Instanz zu starten, eine Startvorlage (ähnlich wie Startkonfiguration). Eine Startvorlage enthält alle Informationen, die zum Starten einer EC2-Instanz erforderlich sind, wie z. B. der Instanztyp, das Subnetz und die Sicherheitsgruppen.

AWS empfiehlt die Verwendung einer Startvorlage, da sie mehr Flexibilität und erweiterte Funktionen bietet als eine Startkonfiguration. EC2 Auto Scaling verwendet eine Startvorlage, um neue Instanzen beim Skalieren nach oben zu starten.

Um eine Startvorlage zu erstellen:

1. Öffnen Sie Ihren bevorzugten Webbrowser und melden Sie sich bei der AWS Management Console an.

2. Suchen Sie in der Suchleiste nach EC2-Startvorlagen und wählen Sie unter Funktionen die Option Startvorlagen aus. Dadurch wird die Seite für EC2-Startvorlagen geöffnet.

Opening the launch templates page

3. Wählen Sie anschließend eine Region aus der Dropdown-Liste (oben rechts) aus und klicken Sie auf „Startvorlage erstellen“, um die Erstellung einer Startvorlage zu initiieren.

Sie können die automatische Skalierung in jeder Region verwenden, die EC2 Auto Scaling unterstützt, aber dieses Tutorial verwendet US East (N. Virginia).

Initiating creating a launch template

4. Konfigurieren Sie nun den Namen und die Beschreibung der neuen Startvorlage wie folgt:

  • Name der Startvorlage – erforderlich – Geben Sie einen Namen für Ihre Startvorlage ein (ec2-autoscaling-template-demo). Der Name muss innerhalb der Region eindeutig sein, darf nicht länger als 128 Zeichen sein und darf keine Sonderzeichen außer Bindestrichen (-), Unterstrichen (_) und Punkten (.) enthalten.
  • Beschreibung der Vorlagenversion – Geben Sie eine Beschreibung für Ihre Startvorlage ein (ec2 autoscaling template demo), die nicht länger als 255 Zeichen sein darf.
  • Auto Scaling-Anleitung – Aktivieren Sie die Option Geben Sie Anleitungen an, um mir beim Einrichten einer Vorlage zu helfen, die ich mit EC2 Auto Scaling verwenden kann, um die Auto-Scaling-Anleitung zu aktivieren. Diese Option erleichtert das Erstellen einer Startvorlage, die mit EC2 Auto Scaling kompatibel ist.
Configuring a launch template

5. Scrollen Sie zum Abschnitt Inhalt der Startvorlagen und wählen Sie Anwendungs- und Betriebssystemimages für Ihre Startvorlage mit folgenden Optionen aus:

  • Anwendungs- und Betriebssystemimages (Amazon Machine Image) – Wählen Sie ein Startimage für Ihre Vorlage aus, aber dieses Tutorial verwendet ein Amazon Linux 2 AMI. Ihre EC2-Instanzen werden auf Basis des ausgewählten Startimages gestartet.

Sie können jedes Startimage auswählen, das Sie bevorzugen, aber ein Amazon Linux 2 AMI wird empfohlen, da es für die Free Tier geeignet ist.

  • Architektur – Wählen Sie eine Architektur für Ihre Vorlage aus, aber dieses Tutorial verwendet x86-64 (64-Bit).
Providing launch template contents

6. Legen Sie anschließend den Instanztyp und den Schlüsselpaar (Anmeldung) für Ihre Startvorlage wie folgt fest:

  • Instanztyp – Wählen Sie den Instanztyp für Ihre Vorlage aus. Die Wahl dieses Tutorials ist jedoch t2.micro, da es für die Free Tier geeignet ist.

Berücksichtigen Sie beim Auswählen eines Instanztyps andere Faktoren wie CPU- und Speicheranforderungen, da einige Instanztypen mehr kosten als andere.

  • Schlüsselpaar (Anmeldung) – Wählen Sie Nicht in Startvorlage einschließen, da dies für das automatische Skalieren nicht erforderlich ist.

Wenn ein Schlüsselpaar angegeben ist, startet EC2 Auto Scaling Ihre Instanzen mit dem Schlüsselpaar.

Selecting an Instance type, and Key par (login)

7. Unter Netzwerkeinstellungen wählen Sie die Option Vorhandene Sicherheitsgruppe auswählen und geben Sie eine Sicherheitsgruppen-Einstellung für Ihre EC2-Instanzen an. Dadurch startet EC2 Auto Scaling Ihre Instanzen mit dieser Sicherheitsgruppe.

Beachten Sie, dass Sie die Option Sicherheitsgruppe erstellen wählen können, wenn Sie eine neue Sicherheitsgruppe für Ihre EC2-Instanzen erstellen möchten.

Selecting an existing security groups

8. Behalten Sie die anderen Standardeinstellungen bei und klicken Sie auf Launchvorlage erstellen (unten rechts) unter der Zusammenfassungs-Schaltflächenliste, um Ihre Startvorlage zu erstellen.

Creating the new launch template

9. Klicken Sie abschließend unter dem Abschnitt Erstellen einer Auto Scaling-Gruppe aus Ihrer Vorlage auf Auto Scaling-Gruppe erstellen, um fortzufahren.

Schließen Sie die Launchvorlagenseite nicht, da Sie Ihre Auto Scaling-Gruppe im nächsten Abschnitt nacheinander erstellen werden.

Initiating creating an Auto Scaling group

Erstellen einer AWS EC2 Auto Scaling-Gruppe

Da Sie jetzt eine EC2-Startvorlage haben, müssen Sie eine AWS EC2 Auto Scaling-Gruppe erstellen, um Ihre EC2-Instanz zu enthalten. AWS EC2 Auto Scaling verfügt über Funktionen, die es Ihnen ermöglichen, Ersatz-Health-Checks und Skalierungsrichtlinien zu verwenden.

Sie können eine Auto Scaling-Gruppe mit mehreren Instanzen erstellen, wenn Sie möchten. In diesem Tutorial erstellen Sie jedoch eine einzelne Instanz-Auto Scaling-Gruppe, um zu demonstrieren, wie Auto Scaling funktioniert.

1. Konfigurieren Sie die Auto Scaling-Gruppe mit den folgenden Schritten, während Sie sich noch auf der Seite Launchvorlage erstellen befinden:

  • – Auto Scaling Gruppenname – Geben Sie einen Namen für Ihre Auto Scaling Gruppe ein (ec2-autoscaling-group-demo). Der Name muss eindeutig innerhalb Ihrer AWS-Region sein und darf maximal 255 Zeichen lang sein.
  • – Startvorlage – Wählen Sie Ihre EC2-Startvorlage aus der Dropdown-Liste aus (ec2-autoscaling-template-demo).
  • Klicken Sie auf Weiter, um fortzufahren.
Naming the AWS EC2 Auto Scaling group

– Als nächstes lassen Sie alle Standardeinstellungen unverändert, wählen jedoch eine vorhandene VPC und Subnetz für Ihre Auto Scaling Gruppe aus, und klicken Sie auf Weiter, um fortzufahren.

Durch die Festlegung dieser Einstellungen weiß Ihre Auto Scaling Gruppe, wo Ihre EC2-Instanzen gestartet werden sollen.

Selecting an existing VPC and subnet for your Auto Scaling group

– Behalten Sie die Standardeinstellungen bei und klicken Sie auf Weiter, um fortzufahren.

Leaving other default settings

– Konfigurieren Sie nun die Gruppengröße Ihrer Auto Scaling Gruppe wie folgt:

Capacity Limit Details
Desired 1 Set the number of instances you want in your Auto Scaling group. The desired capacity must be greater than or equal to the minimum capacity and less than or equal to the maximum capacity.
Minimum 1 Set the minimum number of instances in your Auto Scaling group. The value must be greater than or equal to 1 and less than or equal to the maximum capacity.
Maximum 1 Set the maximum number of instances you want in your Auto Scaling group.
Specifying the Auto Scaling group’s capacity

– Scrollen Sie nach unten, behalten Sie die Standardeinstellungen bei, und klicken Sie auf Überspringen, um zu überprüfen, um fortzufahren.

  • – Skalierungsrichtlinien – Behalten Sie die Option „Keine“ ausgewählt, da Sie eine einfache Skalierungsrichtlinie verwenden werden. Diese Richtlinie erhöht die gewünschte Kapazität Ihrer Auto Scaling Gruppe um eine EC2-Instanz, wenn die ältere Instanz in der Gruppe beendet wurde.
  • – Instanz-Skalierungsschutz – Behalten Sie diese Option deaktiviert, da Sie sie in diesem Tutorial nicht benötigen. Durch Aktivieren dieser Option können Sie steuern, ob Ihre Auto Scaling Gruppe Ihre Instanz beim Skalieren in beenden kann.
Keeping details settings for scaling policies and instance scale-in protection

– Überprüfen Sie abschließend Ihre Einstellungen für die Auto Scaling Gruppe, und klicken Sie unten rechts auf Auto Scaling Gruppe erstellen, um Ihre Auto Scaling Gruppe zu erstellen.

Creating the Auto Scaling group

Sobald erstellt, sehen Sie Ihre Auto Scaling-Gruppe wie unten dargestellt aufgeführt.

Verifying the newly-created Auto Scaling group

Testen einer AWS EC2 Auto Scaling-Gruppe

Super! Sie haben es geschafft, eine AWS EC2 Auto Scaling-Gruppe zu erstellen, um Ihre EC2-Instanz zu enthalten. Aber wie wissen Sie, ob Ihre Auto Scaling-Gruppe funktioniert?

Sie werden überprüfen, ob Ihre AWS EC2 Auto Scaling-Gruppe eine EC2-Instanz gestartet hat. Diese Instanz ist die, die Sie (gewünschte Kapazität) im vierten Schritt des Abschnitts „Erstellen einer AWS EC2 Auto Scaling-Gruppe“ angegeben haben.

1. Aktivieren Sie das Kontrollkästchen neben Ihrer neu erstellten Auto Scaling-Gruppe und klicken Sie auf die Registerkarte Aktivität, um alle Aktivitäten in Ihrer Auto Scaling-Gruppe anzuzeigen.

Unter dem Abschnitt Aktivitätsverlauf unten sehen Sie die Beschreibung des aktuellsten Ereignisses in Ihrer Auto Scaling-Gruppe. In diesem Fall lautet die Beschreibung Starten einer neuen EC2-Instanz, mit dem erfolgreichen Status und der Instanz-ID (i-09b699064f6e06070).

Kopieren Sie die Instanz-ID, da Sie sie im folgenden Schritt zur Überprüfung Ihrer Instanz benötigen werden.

Viewing your activity history.

2. Navigieren Sie zum EC2-Dashboard und vergleichen Sie die Instanz-ID, die Sie im ersten Schritt kopiert haben, mit allen laufenden Instanzen.

Wenn beide Instanz-IDs übereinstimmen, zeigt dies an, dass Ihre Auto Scaling-Gruppe erfolgreich eine EC2-Instanz gestartet hat.

Comparing the instance ID

3. Gehen Sie zurück zur Auto Scaling-Gruppe-Seite, klicken Sie auf die Registerkarte Instanzverwaltung und Sie sehen alle Informationen zu Ihren EC2-Instanzen an einem Ort. Die wichtigste Information auf dieser Registerkarte ist:

  • Die Spalte Lebenszyklus – Sie können sehen, dass die EC2-Instanz in Ihrer Auto Scaling-Gruppe den Status InService hat, was bedeutet, dass die Instanz verfügbar ist, um Anfragen zu verarbeiten.
  • Die Spalte Gesundheitsstatus – Sie können sehen, dass der Gesundheitscheck-Status Ihrer EC2-Instanz Gesund ist, was darauf hindeutet, dass die Instanz alle Gesundheitschecks besteht.

Beenden einer EC2-Instanz

Jetzt, da Sie überprüft haben, dass Ihre Auto Scaling-Gruppe funktioniert, können Sie die Auto Scaling-Gruppe weiter testen, indem Sie die EC2-Instanz darin beenden. Denken Sie daran, dass das Beenden einer Instanz in der Gruppe dazu führt, dass die Auto Scaling-Gruppe automatisch eine neue EC2-Instanz als Ersatz startet.

In realen Fällen würden Sie eine Auto Scaling-Gruppe verwenden, um automatisch auf sich ändernde Bedingungen zu reagieren. Wann? Zum Beispiel ist einer Ihrer NGINX-Webserver überlastet und steht kurz davor, auszufallen.

Aber vorerst werden Sie Ihre Auto Scaling-Gruppe testen, indem Sie die EC2-Instanz manuell beenden, um zu simulieren, was passieren würde, wenn eine Instanz ausfällt.

1. Navigieren Sie zu Ihren Instanzen und aktivieren Sie das Kontrollkästchen neben der Instanz, um sie auszuwählen.

Nach der Auswahl klicken Sie auf das Dropdown-Menü Instanzstatus → Instanz beenden, um die ausgewählte Instanz zu beenden.

Terminating an EC2 instance

2. Klicken Sie anschließend auf Beenden, wenn Sie aufgefordert werden, das Beenden der Instanz zu bestätigen.

Confirming instance termination.

Nachfolgend finden Sie eine Nachricht, die anzeigt, dass die EC2-Instanz erfolgreich beendet wurde.

Die Standard-Abkühlungszeit für eine Auto Scaling-Gruppe beträgt 300 Sekunden (5 Minuten), was bedeutet, dass es der Auto Scaling-Gruppe mindestens fünf Minuten dauern wird, um eine neue Instanz zu starten, nachdem Sie die alte beendet haben.

Verifying successful instance termination

3. Überprüfen Sie schließlich die Aktivitätshistorie in der Auto Scaling-Gruppe, während Sie auf die neue Instanz warten.

Wie unten gezeigt, sehen Sie, dass automatisch eine neue EC2-Instanz gestartet wurde. Dieser Output bestätigt, dass Ihre Auto Scaling-Gruppe wie erwartet funktioniert.

Checking a new EC2 instance is launched automatically

Fazit

Die Last für Ihre Anwendung zu bewältigen, ist ein wesentlicher Bestandteil, um sie reibungslos am Laufen zu halten. Glücklicherweise können Sie mit AWS EC2 Auto Scaling sicherstellen, dass Ihre Anwendung immer über die benötigten Ressourcen verfügt, um sich an wechselnde Verkehrsbedingungen anzupassen.

Und in diesem Tutorial haben Sie gelernt, wie Sie eine Auto Scaling-Gruppe erstellen, Instanzen in die Gruppe starten und die Gruppe entsprechend den sich ändernden Bedingungen skalieren. Zu diesem Zeitpunkt können Sie nun selbstbewusst AWS EC2 Auto Scaling-Gruppen für Ihre Anwendungen erstellen.

Mit diesem neu gewonnenen Wissen, warum nicht Auto-Scaling-Gruppen mit AWS CloudFormation erstellen, um noch mehr Komfort zu haben? Sie werden sich später danken, wenn Ihre Last steigt und Sie sich nicht darum kümmern müssen, manuell mehr Ressourcen bereitzustellen!

Source:
https://adamtheautomator.com/ec2-autoscaling/