[10]: https://git-scm.com/downloads
![TBZ Banner](../../x_gitres/tbz_logo.png)
# Inhaltsverzeichnis KN02 Challenge A)
### Erster Teil-Challenge
[TOC]
## Ausgangslage:
Verwenden Sie für den folgenden Teil-Challenge (bestehend aus zwei Labs) das AWS Academy *"**Learner Lab**"*. Ab jetzt arbeiten Sie **immer** im **Learner Lab** - **Ausser explizit anders angegeben.**
- Der **erste** Teil-Challenge von **KN02 A)** heisst **EC2 Einstieg**. Dieses Lab ist der erste Kompetenznachweis von Challenge **A)**. Sie erstellen erstmals eine **EC2 Instanz** und ergänzen diese mit einem einfachen **IaC-Code**, der zusätzlich einen Webdienst installiert, aktiviert und eine einfache Webseite mit einem Titel **Modul 346 Challenge KN02a: **CAL** mit den **ersten drei Buchstaben ihres Nachnamens**.
```bash
#!/bin/bash
yum update -y
yum -y install httpd
systemctl enable httpd
systemctl start httpd
echo 'Modul 346 Challenge KN02a: CAL
' > /var/www/html/index.html
```
**:pushpin: Details zum Skript:**
- Dieses Bash-Skript wird mit Root-Benutzerrechten auf dem Gastbetriebssystem der Instanz ausgeführt.
- Es wird automatisch ausgeführt, wenn die Instanz zum ersten Mal startet.
- Das Skript führt folgende Aktionen aus:
- Aktualisiert den Server
- Installiert einen **Apache Webserver (httpd)**
- Konfiguriert den Webserver so, dass er automatisch beim Booten startet
- Startet den Webserver
- Erstellt eine einfache Webseite
#### 8. Task: Überprüfen Sie die Instanz und starten Sie diese
**:radio_button: Schritt 13: Instanz starten**
- Wählen Sie am Ende des **Summary**-Panels auf der rechten Seite des Bildschirms das orange Feld **Launch instance**.
- Sie werden eine **Success message** (Erfolgsnachricht) sehen.
**:radio_button: Schritt 14: Alle Instanzen anzeigen**
- Wählen Sie das orange Feld **View all instances**.
- Die Instanz wird zunächst im **Pending**-Zustand angezeigt, was bedeutet, dass sie gestartet wird. Der Zustand ändert sich dann auf **Running**, was anzeigt, dass die Instanz mit dem Booten begonnen hat. Es kann einige Minuten dauern, bis die Instanz hochgefahren ist.
**:radio_button: Schritt 15: Details zur Instanz überprüfen**
- Wählen Sie die Instanz **Web Server 1** aus und überprüfen Sie die Informationen im Tab **Details**, der im unteren Bereich angezeigt wird.
- Beachten Sie, dass die Instanz eine **öffentliche IPv4-Adresse** hat. Sie können diese IP-Adresse verwenden, um von außerhalb mit der Instanz zu kommunizieren.
**:radio_button: Schritt 16: Warten auf den vollständigen Start**
- Bevor Sie fortfahren, warten Sie, bis Ihre Instanz Folgendes anzeigt:
- **Instance state:** Running
- **Status check:** 2/2 checks passed
**:pushpin: Hinweis:**
Dies kann einige Minuten in Anspruch nehmen. Wählen Sie das **Aktualisieren**-Symbol oben auf der Seite alle 30 Sekunden oder so, um schneller über den neuesten Status der Instanz informiert zu werden.
#### 9. Task: Greifen Sie auf Ihre EC2-Instanz zu
Als Sie Ihre EC2-Instanz gestartet haben, haben Sie ein Skript bereitgestellt, das einen Webserver installiert und eine einfache Webseite erstellt hat. In diesem Task werden Sie versuchen, auf den Inhalt des Webservers zuzugreifen.
**:radio_button: Schritt 17: Öffentliche IPv4-Adresse kopieren**
- Kopieren Sie den Wert der **Public IPv4 address** Ihrer Instanz aus dem Tab **Details** in Ihre Zwischenablage.
**:pushpin: Hinweis:**
Eine öffentliche Adresse bedeutet, dass die Instanz von Internet aus erreichbar ist. Jede Instanz, die eine öffentliche IP-Adresse erhält, erhält auch einen externen DNS-Hostnamen, zum Beispiel: **ec2-xxx-xxx-xxx-xxx.compute-1.amazonaws.com**. AWS löst einen externen DNS-Hostnamen in die öffentliche IP-Adresse der Instanz auf, wenn die Kommunikation von außerhalb ihrer VPC kommt. Wenn die Kommunikation von innerhalb der VPC erfolgt, wird der DNS-Hostnamen in die private IPv4-Adresse aufgelöst.
**:radio_button: Schritt 18: Im Webbrowser zugreifen**
- Öffnen Sie einen neuen Tab in Ihrem Webbrowser, fügen Sie die öffentliche IP-Adresse, die Sie gerade kopiert haben, ein und drücken Sie die Eingabetaste.
**:pushpin: Hinweis:**
Die Webseite wird nicht geladen. Sie müssen die **Security Group** (Sicherheitsgruppe) noch mit einer **Inbound rule** ergänzen, um auf die Seite zugreifen zu können.
#### 10. Task: Aktualisieren Sie die Security Group
Sie können nicht auf Ihren Webserver zugreifen, da die Sicherheitsgruppe den eingehenden Datenverkehr über **Port 80**, der für HTTP-Webanfragen verwendet wird, nicht zulässt. In dieser Aufgabe aktualisieren Sie die Sicherheitsgruppe.
**:radio_button: Schritt 19: Zur EC2-Management-Konsole zurückkehren**
- Kehren Sie zum Browser-Tab der EC2-Management-Konsole zurück.
**:radio_button: Schritt 20: Sicherheitsgruppen auswählen**
- Wählen Sie im linken Navigationsbereich unter **Network & Security** die Option **Security Groups**.
**:radio_button: Schritt 21: Webserver-Sicherheitsgruppe auswählen**
- Wählen Sie die Sicherheitsgruppe **Web Server** aus, die Sie beim Start Ihrer EC2-Instanz erstellt haben.
**:radio_button: Schritt 22: Eingehende Regeln anzeigen**
- Wählen Sie im unteren Bereich den Tab **Inbound rules**.
#### 11. Task: Inbound rule erstellen
**:radio_button: Schritt 23: Eingehende Regeln bearbeiten**
- Wählen Sie **Edit inbound rules** und dann **Add rule**.
**:radio_button: Schritt 24: Konfigurieren Sie die Regel**
- Konfigurieren Sie folgendes:
- **Type:** HTTP
- **Source:** Anywhere-IPv4
- Wählen Sie **Save rules**.
**:pushpin: Hinweis:** Die neue eingehende HTTP-Regel erstellt einen Eintrag für IPv4-IP (0.0.0.0/0) und IPv6-IP-Adressen (::/0).
#### 12. Task: Regel testen
**:radio_button: Schritt 25: Zur vorherigen Registerkarte zurückkehren**
- Kehren Sie zu dem Tab zurück, den Sie verwendet haben, um eine Verbindung zum Webserver herzustellen.
**:radio_button: Schritt 26: Seite aktualisieren**
- Aktualisieren Sie die Seite.
- Die Seite sollte die Nachricht **Modul 346 Challenge KN02a: ** anzeigen.
#### Lab abgeschlossen
Herzlichen Glückwunsch! Sie haben das Lab abgeschlossen.
**:radio_button: Schritt 27: Abmelden von der AWS Management Console**
- Melden Sie sich von der AWS Management Console ab.
- Klicken Sie in der oberen rechten Ecke der Seite auf Ihren Benutzernamen
- Wählen Sie **Sign out**.
**:radio_button: Schritt 28: Labor beenden**
- Wählen Sie **End Lab** im **Learner Lab** und bestätigen Sie mit **Yes**, dass Sie das Labor beenden möchten.
#### Ziel der Übung
:bell: Erste Hands-on Erfahrung mit dem AWS Service **EC2** (Elastic Compute Cloud)
##### Leistungsnachweis
- [ ] HTML-Seite, inkl. URL
- [ ] Liste der EC2-Instanzen
- [ ] Details der *Web Server*-Instanz (öffentliche IP sichtbar)
- [ ] Security-Group: Liste der Inbound-Regeln.
Beachten Sie ausserdem die [allgemeinen Informationen zu den Abgaben](../../Abgaben.md).
#### b) 2. Lab - S3 Einstieg
Führen Sie alle Schritte durch. Sie erstellen die Screenshots der verschiedenen Bereiche für Ihre Abgabe **nachdem** Sie **alle** Schritte des Challenges durchgeführt haben.
#### Ziel der Übung
:bell: Erste Hands-on Erfahrung mit dem AWS Service **S3** (Object Storage)
##### Leistungsnachweis
- [ ] Liste der Buckets.
- [ ] HTML-Seite, inkl. URL.
- [ ] Liste der Dateien im Bucket.
- [ ] Eigenschaften von "Static website hosting".
Beachten Sie ausserdem die [allgemeinen Informationen zu den Abgaben](../../Abgaben.md).
----
ALLES WAS HIER KOMMT, AM ENDE LÖSCHEN
##### Leistungsnachweis
- [ ] Erstellen Sie Screenshots der **drei** Webseiten (mit sichtbaren URLs).
- [ ] Differenziert und nachvollziehbar im persönlichen Repository dokumentiert.
- [ ] Fachgespräch mit Coach.
Beachten Sie ausserdem die [allgemeinen Informationen zu den Abgaben](../Abgaben.md).
##### Beispiel-Abgabe:
- Screenshots der drei URLs:
Apache | PHP | DB-User
:---:|:---:|:---:|
![Apache](./x_res/03a_apache_300.png) | ![PHP](./x_res/03b_apache_300.png) | ![User](./x_res/03c_user_300.png)
---
> [⇧ **Zurück zu KN02**](../KN02.md)
---
> [⇧ **Zurück zur Hauptseite**](https://gitlab.com/ser-cal/M346)
---