9.4 KiB
KN06 Inhaltsverzeichnis
[TOC]
Challenges
A) Theorie: Scaling up vs. out (vertical vs. horizontal) / Auto Scaling, Load Balancer und High Availability
Ausgangslage:
🔖 Wissen, dass sie für die bevorstehenden Challenges gut nutzen können.
- Theorie-script (noch verlinken)
- Leistungsnachweise (noch verlinken)
B) Lab: Zwei Webserver erstellen und Last mittels Load Balancer gleichmässig verteilen.
Ausgangslage:
🔖 Für dieses Lab verwenden Sie in der AWS Academy den Kurs AWS Academy Introduction to Cloud: Semester 1. In dieser Laborumgebung ist der Zugriff nur auf die AWS-Services beschränkt, die zum Ausführen des Labs erforderlich sind. Wenn Sie versuchen, auf andere Dienste zuzugreifen oder Aktionen auszuführen, die über die in diesem Lab beschriebenen hinausgehen, können Fehler auftreten.
Anleitung:
Für den ersten Challenge der Kompetenz KN06 wechseln Sie ins elfte Modul Module 11 - Load Balancers and Caching. Hier finden Sie die praktische Übung Lab 11 - Load Balancing. Diese ist Schritt für Schritt geleitet.
⚠️ Hinweis:
Die folgenden Challenges bauen auf diesem ersten Lab auf. Versuchen Sie deshalb die Schritte so zu dokumentieren, dass Sie darauf zurückgreifen können.
Modul 11: Lab 11 - Load Balancers and Caching
Das Lab dauert ca. 30'. Führen Sie alle Schritte konzentriert und der Reihe nach durch. Für den Leistungsnachweis zeigen Sie neben der Doku auch noch gleich live, dass der Loadbalancer funktioniert (Browser mehrmals hintereinander reloaden)
Netzwerkschema
Ziel der Übung
🔔 Sie sind in der Lage, folgende Tasks durchzuführen:
- Application Load Balancer (inkl. Target Group) aufsetzen
- Application Load Balancer testen (mit zwei Webservern in verschiedenen Availability Zones)
Leistungsnachweis
- Ablauf nachvollziehbar im eigenen Repository dokumentiert (für nächste Challenges hilfreich).
- Live-Demo beim Coach (Mit mehrfachem "Reload" der Webseite beweisen, dass beide Instanzen angesprochen werden)
- Fachgespräch mit Coach.
Beachten Sie ausserdem die llgemeinen Informationen zu den Abgaben.
Beispiel-Abgabe (Doku):
- Screenshots :
- LoadBalancer: 🔎 Originalbild (oder unten auf erstes Bild klicken)
- Target Group: 🔎 Originalbild (oder unten auf zweites Bild klicken)
1 LoadBalancer | 2 Target Group |
---|---|
- Webserver 1: 🔎 Originalbild (oder unten auf erstes Bild klicken)
- Webserver 2: 🔎 Originalbild (oder unten auf zweites Bild klicken)
3 Webswerver 1 | 4 Webserver 2 |
---|---|
C) Lab: Auto Scaling Group erstellen und anwenden
Ausgangslage:
🔖 Für dieses Lab verwenden Sie in der AWS Academy das Learner Lab.
In diesem Challenge werden Sie eine Auto Scaling Group erstellen und später beim Erstellen von neuen EC2-Instanzen nutzen. Der Load Balancer aus dem letzten Challenge und die Auto Scaling Group können unabhängig voneinder eingesetzt werden. Gemeinsam Kombiniert sind diese beiden Dienste allerdings unschlagbar und in einer High Availability Umgebung nicht wegzudenken.
Momentan aber schauen wir diese beiden Dienste losgelöst voneinander an. Im folgenden Auftrag geht es deshalb nur um die Vorzüge des Auto Scalers. Er stellt sicher, dass meine Ressourcen immer dem gewünschten Zustand (Desired state) entsprechen. Im folgenden Challenge setzen wir diese Dienst so auf, dass immer mindestens zwei EC2-Instanzen laufen. Falls eine Instanz wegfällt (z.B. versehntlich terminiert, SW-Issue oder technischer Defekt) wird automatisch eine neue Instanz hochgefahren.
Kombiniert man diesen Dienst mit dem Loadbalancer aus dem letzten Challenge, kann man sicherstellen, dass der Service eine um einiges höhere Verfügbarkeit erhält. Beim Ausfall einer Site (z.B. Datacenter Stromausfall) wird der Traffic automatisch auf die andere Site umgeleitet. Zusätzlich kann man diesen Dienst auch noch ergänzten mit Metrics. Z.B. Falls die CPU-Auslastung einen Grenzwert überschreitet, soll dynamisch eine weitere Instanz hochgefahren werden. Das ganze funktioniert auch umgekehrt. Falls die CPU-Auslastung unter den Grenzwert fällt, wird die zusätzliche Instanz automatisch terminiert. Man spricht in diesem Fall von Elasticity. Im Gegensatz zum Begriff Scalability (z.B. Einbau einer weiteren SSD) kann die Plattform "on-demand" Ressourcen hinzufügen oder entfernen.
Anleitung:
Als erstes werden Sie ein Launch Template erstellen.
Schritt 1: Launch template erstellen:
Setzen Sie als erstes ein Launch-Template auf. Wählen Sie dazu links in der Navigation Bar unter Instances
den Buttom Create Launch template
aus. Dann konfigurieren Sie das LaunchTemplate mit folgenden Parametern:
- Launch template Name: KN06_XXX_LaunchTemplate (XXX = Gemäss Namenskonvention)
- Application and OS Image:
Amazon Linux 2023 AMI (AWS)
- Instance type:
t2.micro
- Key-pair name:
Don't include in launch template
- Network settings:
- Subnet
Don't include in launch template
- Security-Groups
M346-XXX-Web-Access
auswählen
- Subnet
- Advanced Details (unter User data):
- diesen Code eingeben (Copy/Paste). Bitte darauf achten, dass nur der Code eingegeben wird. Die Erklärungen helfen Ihnen lediglich, den Code zu verstehen. Später, beim Leistungsnachweis, wird von Ihnen erwartet, dass Sie diesen bis ins Detail erklären können. |
- Buttom Create launch template anklicken: (Template wird erstellt)
- Buttom View launch template anklicken: (Kontrolle)
Schritt 2: Auto Scaling Group erstellen:
Wählen Sie wieder links in der Navigation Bar unter Auto Scaling
das Unterverzeichnis Auto Scaling Groups
aus. Dann klicken Sie auf den orangen Buttom Create Auto Scaling group
. Danach erscheint eine neue Seite mit dem Titel Choos launch template, welches Sie wie folgt ausfüllen:
- Name:
- Auto Scaling group name:
KN06_XXX_AutoScalingGroup
- Launch Template:
KN06_XXX_LaunchTemplate
- Auto Scaling group name:
...sonst nichts ändern und mit Next bestätigen. Es erscheint eine neue Seite mit dem Titel Choose instance launch options, welches Sie wie folgt ausfüllen:
- Launch template: 🔎 Originalbild (oder unten auf erstes Bild klicken)
- Launch options: 🔎 Originalbild (oder unten auf zweites Bild klicken)
1 Launch template: Korrekte VPC und beide Public Subnets auswählen | 2 Launch options: No load balancer |
---|---|
- 1 Nun wird noch die Group size definiert. Wieviele Instanzen im gewünschten-, maximalen und minimalen Zustand laufen sollen.
2 Die Scaling policy (Dynamische Anpassung on demand) wird in diesem Challenge nicht genutzt. Deshalb auf None lassen.
- Mit der Bestätigung
Create Auto Scaling Group
die Auto Scaling Group erstellen.
Schritt 3: Kontrolle
- Activity history anschauen: Hier sieht man, dass die Auto Scaling Group bereits aktiv eingegriffen hat. Es wurden zwei EC2-Instanzen gemäss den ganz am Anfang definierten Informationen im Launch template gelauncht (Increasing the capacity from 0 to 2). | Kontrolle: Sinnesgemäss sollten die beiden Instanzen in unterschiedlichen Availability Zones liegen. Überprüfen wir kurz, ob das so ist:
- 1.) 1. EC2 Instanz (PublicIP: 3.82.198.9) : 🔎 Originalbild (oder unten auf erstes Bild klicken)
2.) 2. EC2 Instanz (PublicIP: 3.89.71.0): 🔎 Originalbild (oder unten auf zweites Bild klicken)
1 EC2 Instanz | 2 Launch options: No load balancer |
---|---|