[002a]: ./x_res/002_Lab11_Acad_Beweis_600.png
[002b]: ./x_res/002_Lab11_Acad_Beweis_ORIG.png
[001a]: ./x_res/001_Lab11_Acad_Beweis_600.png
[001b]: ./x_res/001_Lab11_Acad_Beweis_ORIG.png
[003a]: ./x_res/003_Lab11_Webzugriff1_600.png
[003b]: ./x_res/003_Lab11_Webzugriff1_ORIG.png
[004a]: ./x_res/004_Lab11_Webzugriff2_600.png
[004b]: ./x_res/004_Lab11_Webzugriff2_ORIG.png
# KN06 Inhaltsverzeichnis
[TOC]
## Challenges
### A) Theorie: Scaling up vs. out (vertical vs. horizontal) / Auto Scaling, Load Balancer und High Availability
#### Ausgangslage:
:bookmark: 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:
:bookmark: 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.
:warning: **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
![Schema](./x_res/01_Application_Loadbalancer_1000.png) |
#### Ziel der Übung
:bell: 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](../Abgaben.md).
##### Beispiel-Abgabe (Doku):
- Screenshots :
1. LoadBalancer: :mag_right: [Originalbild][001b] _(oder unten auf erstes Bild klicken)_
2. Target Group: :mag_right: [Originalbild][002b] _(oder unten auf zweites Bild klicken)_
1 LoadBalancer | 2 Target Group
:---:|:---:
[![1. Loadbalancer][001a]][001b] | [![2. TargetGroup][002a]][002b]
1. Webserver **1**: :mag_right: [Originalbild][003b] _(oder unten auf erstes Bild klicken)_
2. Webserver **2**: :mag_right: [Originalbild][004b] _(oder unten auf zweites Bild klicken)_
3 Webswerver 1 | 4 Webserver 2
:---:|:---:
[![3. Webserver 1][003a]][003b] | [![4. Webserver 2][004a]][004b]
### C) Lab: Auto Scaling Group erstellen und anwenden
#### Ausgangslage:
:bookmark: 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.
##### 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
- Advanced Details (unter User data):
- [**diesen Code**](https://gitlab.com/ser-cal/m346-scripts/-/blob/main/KN06/user-data-az.md?ref_type=heads) 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.
![Schema](./x_res/10_User-data_1000.png) |
##### Auto Scaling Group erstellen:
Wählen Sie wieder links in der **Navigation Bar** unter **`Auto Scaling`** das Unterverzeichnis **`Auto Scaling Groups`** aus. Dann konfigurieren Sie das LaunchTemplate mit folgenden Parametern: