16 KiB
KN04 Inhaltsverzeichnis
[TOC]
Intro
Beachten Sie die allgemeinen Informationen zu den Abgaben.
Wir nutzen Amazon Web Services oder abgekürt AWS. Alles was wir hier umsetzen, bieten allerdings auch andere public cloud Anbieter (z.B. Microsoft Azure, Google Cloud Platform oder Linode).
Challenges
A) S3 Bucket erstellen und Objekte darin ablegen (Beginner)
Ausgangslage:
Amazon S3 ist ein Object Store. Die Daten werden in Form von "Objekten" gespeichert. Ein Objekt in S3 besteht aus den eigentlichen Daten (z. B. eine Bilddatei) und Metadaten (z. B. den Zeitstempel der Erstellung). Diese Objekte werden in sogenannten "Buckets" organisiert.
In diesem Auftrag werden Sie genau gleich, wie bereits in der Übung KN02 Lab4.2 einen eigenen S3-Bucket erstellen und ein Bild darin ablegen. Dieses Bild müssen sie so berechtigen, dass alle darauf zugreifen können.
Die Verwaltung von Objekten bietet mehrere Vorteile:
- Zuverlässige Datenspeicherung: Amazon S3 bietet eine hohe Verfügbarkeit und Haltbarkeit für gespeicherte Daten. Die Dateien werden automatisch auf mehreren Servern und Standorten repliziert, was Schutz vor Datenverlust bietet.
- Skalierbarkeit und Flexibilität: S3 ermöglicht das Speichern und Abrufen von Daten jeder Grösse. Dies ist ideal für das Hochladen von Bildern, Videos und anderen Mediendateien. Zudem können Sie problemlos weitere Buckets erstellen, wenn der Bedarf wächst.
Anleitung:
Schritt 1: Bucket erstellen
- Öffnen Sie die AWS Management Console.
- Navigieren Sie zur S3-Dashboardseite.
- Klicken Sie auf "Create bucket".
- "Bucket name" eingeben. Achtung: Muss "unique" sein.
- Public Access gewähren (Häckchen entfernen) und bestätigen, dass einverstanden (Häckchen hinzufügen)
- Bucket erstellen (create)
Schritt 2: Permissions (Berechtigungen) für den Bucket setzen
- Damit Sie später von überall her auf dieses Bild zugreifen können, muss eine entsprechende Bucket policy erstellt werden.
- Bucket policy erstellen (Edit). Vorsicht: Unter Resource am Ende des ARN-Pfades das /* nicht vergessen.
- Bucket policy definieren (Allow-Regel für PublicRead einsetzen) gemäss Bild unten.
Schritt 3: File hochladen
- Unter Objects Klicken Sie auf Upload.
- Es erscheint ein Window mit der Aufforderung Datei hochladen. Sie können dann mit Add files entsprechende Dateien (in unserem Fall ein Bild) hochladen.
- Merken Sie sich die URL. Diese kann unter Properties nachgeschaut werden (wird bei der nächsten Übunge gebraucht)
Ziel der Übung
🔔 Sie wissen, wie man einen S3 Bucket erstellt, diesem Berechtigungen zuweist und sogenannte Objects darin ablegt. Objects können Bilder, Audiodateien, Scripts oder andere Dateiformate sein. Jedes einzelne Objekt besitzt einen einzigartigen ARN (Amazon Resource Name) - also einen eindeutigen Identifikator. Das heisst, dass ein Objekt individuell berechtigt werden kann und weltweit einzigartig ist. Ein Object-Store hat allerdings keine Hierarchie (Ordnerstruktur) und ist deshalb auch nicht für jeden Zweck einsetzbar. Überlegen Sie sich deshalb auch, in welchen Fällen diese Speicherart eher unvorteilhaft ist.
Leistungsnachweis
- Das hochgeladene Bild kann über die Object URL in einem beliebigen Webbrowser angezeigt werden.
- Differenziert und nachvollziehbar im persönlichen Repository dokumentiert.
- Fachgespräch mit Coach.
Beachten Sie ausserdem die allgemeinen Informationen zu den Abgaben.
⚠️ Hinweis: In der nächsten Übung wird dieses Bild nochmals benötigt. Sie bauen dann mit einem cloud-init Script einen Webserver und erzeugen darin eine PHP-Seite, welche das Bild auf einer Webseite anzeigt. Bitte erst nach der Abgabe von KN04 löschen.
B) Mit "Cloud-init" einen Webserver aufsetzen mit Zugriff auf Bild im S3-Bucket (Advanced)
Ausgangslage:
In diesem Auftrag werden Sie eine Amazon EC2-Instanz mit einem Cloud-Init-Script aufzusetzen. Schwerpunkt ist der Content dieses IaC-Scripts, welchen Sie mit Know-how aus der letzten Übung und ein bisschen Hilfe (siehe unten) selber zusammenbauen. Das Script wird eine Ubuntu-Instanz mit einem Apache Webserver installieren und darauf die PHP-Webseite test.php einrichten, die das bereitgestellte Bild aus dem Amazon S3-Bucket einbettet.
Anleitung
Verwenden Sie den folgenden Inhalt für das Cloud-init Script. Gehen Sie Zeile für Zeile durch und ergänzen/korrigieren Sie diese wo nötig. Unter dem zweiten write_files erstellen Sie dann das PHP-File namens test.php nach Ihrem persönlichen Geschmack - passend zum Bild, das sie hochgeladen haben.
⚠️ Hinweis: Achten Sie darauf, dass im Bereich des zweiten write_files auch die Einzüge (indendations) nicht stimmen. Das führt dazu, dass das Script nicht sauber durchläuft, falls dies nicht überarbeitet wird.
#cloud-config
users:
- name: <Ergänzen>
sudo: <Ergänzen>
groups: <Ergänzen>
home: <Ergänzen>
shell: <Ergänzen>
ssh_authorized_keys:
- ssh-rsa <Public-Key> <Name_des_Keybesitzers>
disable_root: <Ergänzen>
package_update: true
packages:
- <Ergänzen>
- <Ergänzen>
- <Ergänzen>
- <Ergänzen>
- <Ergänzen>
write_files:
- content: |
<?php phpinfo(); ?>
path: /var/www/html/info.php
permissions: '0644'
write_files: # Ab hier wird das gesuchte PHP-File erstellt
- content: |
<?php
$ihrname = "IhrNachname";
?>
<html>
<head>
<title><?php echo $ihrname; ?></title>
</head>
<body>
<h1>Passender Titel</h1>
<br />
<img src="URL des Bildes auf dem S3-Bucket" alt="Bild aus S3-Bucket">
</body>
</html>
path: <Pfad und Name des PHP-Files, gem. Vorgabe oben>
permissions: '0644'
runcmd:
- sudo systemctl <Ergänzen> <Ergänzen>
Schritte
- Öffnen Sie die AWS Management Console.
- EC2 Instanz benennen (Der Begriff KN04 soll darin enthalten sein).
- Amazon Linux AMI (Amazon Machine Image) auswählen.
- Instance type und (bestehendes) Key pair auswählen.
- Bestehende Security Group auswählen (Port 80 inbound offen).
- Cloud-init Script erstellen gem. Vorlage oben (Kernelement dieses Auftrage) und launchen.
- Resultat: Browser öffnen und IP oder DNS-Namen ergänzen mit "test.php" (Bild unten).
Endresultat: PHP-Webseite mit Name des Schülers und eingebettetem Bild
Ziel der Übung
🔔 Verständnisvertiefung für das Deployment von deklarativen Scripts und die gleichzeitige Nutzung von verschiedenen AWS-Services für eine Applikation (in diesem Fall EC2 und S3).
Leistungsnachweis
- Ihre angepasste Cloud-init Konfiguration als Datei im Git-Repository.
- Ein Screenshot der Webseite mit eingebettetem Bild aus S3-Bucket (gem. Beispiel oben).
- Differenziert und nachvollziehbar im persönlichen Repository dokumentiert.
- Fachgespräch mit Coach - Technisch nachvollziehbare Erklärung, wie das Cloud-init Script funktioniert.
Beachten Sie ausserdem die allgemeinen Informationen zu den Abgaben.
C) AWS EC2 Windows 10 Server Instanz mit dynamisch hinzugefügtem EBS Volume (Advanced)
Ausgangslage:
Wenn Sie eine EC2-Instanz erstellen, nutzen Sie für das Betriebssystem ein besonderes Volume (SSD-Speicher). Dieser Speicher wird AWS Elastic Block Storage (EBS) genannt, ist sehr schnell aber auch teuer. SSDs (EBS Volumes) werden deshalb eher dort genutzt, wo Daten schnell verarbeitet werden müssen. Für "gewöhnliche" Dateiablagen bietet AWS Storage-Dienste wie S3 (haben Sie im letzten Auftrag kennengelernt) oder EFS (vergleichbar mit einem NAS) an.
In diesem Challenge erstellen Sie eine Windows-Server EC2-Instanz mit einem MS Windows Server 2022 Base Image. Anschliessend erzeugen Sie ein neues EBS Volume und fügen dieses der Instanz im laufenden Betrieb hinzu. Nachdem sie das eingehängte Volume formatiert haben, können sie dieses als ergänzenden Datenspeicher (Drive D:) verwenden. Führen Sie diese Übung in der AWS-Academy im LearnerLab durch.
Anleitung:
Schritt 1: EC2-Instanz mit Windows 10 Server erstellen
- Öffnen Sie die AWS Management Console.
- Navigieren Sie zur EC2-Dashboardseite.
- Klicken Sie auf "Instanzen starten".
- Wählen Sie Windows, AMI (Amazon Machine Image) Microsoft Windows Server 2022 Base aus.
- Wählen Sie die Instanztyp t2.micro (free tier eligible).
- Bei Key pair Wählen Sie den Namen des früher erstellten Schlüssels (ihr SSH-Key) aus.
- Unter Network settings wählen Sie eine bereits bestehende Security Group aus - diese muss später noch mit einer inbound-rule für RDP ergänzt werden, damit Sie auf die Windows-Instanz zugreifen können.
- Bei Configure Storage können die Defaultwerte übernommen werden.
- Starten Sie die Instanz mit Launch instance.
Schritt 2: Inbound Rule für RDP-Verbindung zuweisen
- Damit Sie später via RDP auf die EC2-Instanz zugreifen können, muss in der ausgewählten Security-Group noch die entsprechende Inbound-Rule für RDP (Port 3389) gesetzt werden.
Schritt 3: RDP-Verbindung zur Windows Instanz und Volume checken
- Bei der Windows-Instanz auf Connect clicken. Sie benötigen für die RDP-Verbindung folgende drei Angaben. Die ersten beiden Angaben werden vorgegeben. Das Password müssen sie sich noch beschaffen.
- Public DNS Name
- Username: Administrator (immer gleich)
- Password
- Wählen Sie RDP client aus und klicken Sie auf Get password.
- Es erscheint ein Window mit der Aufforderung, Ihren private key hochzuladen. Sie haben oben bereits ein Key-pair ausgewählt. Verwenden Sie den dazugehörigen private key (Name.pem).
2. "RDP Client" und "Get password" 3. Private key eingeben um Passwort zu decrypten - Nachdem der private key hochgeladen wurde, mit Decrypt password bestätigen. Nun haben sie alle drei Angaben, die sie für RDP benötigen.
- Öffnen Sie nun auf ihrem Laptop eine Remotedesktopverbindung und geben sie die drei Angaben ein, um eine RDP-Verbindung mit ihrer EC2-Instanz aufzubauen.
- Checken Sie auf Windows nun, welche Drives eingebunden sind - öffnen sie dazu Disk Management - nur der C-Drive ist vorhanden.
Schritt 4: Neues EBS Volume erstellen und an Instanz anhängen
- Wechseln sie zur AWS Management Console.
- Überprüfen Sie zuerst, in welcher AZ Ihre Instanz läuft (das Volume muss in derselben AZ erstellt werden).
- Danach navigieren Sie zur EC2-Dashboardseite.
- Klicken Sie auf "Volumes" im linken Menü.
- Klicken Sie auf Create volume.
- Konfigurieren Sie Größe 20GB und Availability Zone (muss dieselbe sein wie der EC2-Instanz zugewiesen wurde).
- Suchen Sie die neu erstellte Volume-ID in der Liste der Volumes.
- Markieren Sie das neue Volume und klicken Sie auf Actions > Attach volume.
- Wählen Sie die zuvor erstellte Win10-Instanz aus und bestätigen Sie Attach volume.
Schritt 5: EBS Volume im Betriebssystem einbinden, formatieren und verwenden
- Wechseln sie nun wieder zurück zum RDP-Window (Windows10 Server).
- Öffnen Sie das Start-Menü und suchen Sie "Laufwerksverwaltung" (Englisch; Disk Managemet).
- Es ist jetzt eine weitere Disk erkennbar (Unknown / offline).
- Klicken Sie mit der rechten Maustaste auf das neue Volume und wählen Sie Online und danach Initialize Disk.
- Erstellen Sie eine einfache Volume-Konfiguration (sie können alles auf Default lassen).
- Formatieren Sie das Volume mit einem Dateisystem. Innerhalb der neuen Partition mit rechter Maustaste das Pulldown-Menu öffnen und New Simple Volume auswählen.
- Öffnen Sie den Windows Explorer, um auf das neue Volume zuzugreifen und Dateien zu speichern.
- Erstellen Sie im neuen Volume ein Verzeichnis mit dem Namen M346_IhrNachname (im Bild unten als M346_Testordner angegeben).
Ziel der Übung
🔔 Verständnisaufbau, dass man jederzeit dynamisch weitere EBS Volumes erzeugen und bestehenden Instanzen hinzufügen kann, ohne dass diese heruntergefahren werden müssen. Früher (bei den monolithischen Systemen) hätte man für dieses Vorgehen eine Downtime benötigt. Man musste den Server runterfahren, um die physikalische SSD anschliessend einzubauen. Bei produktiven Systemen war dies oftmals nur mit Wochenendarbeit zu realisieren.
Leistungsnachweis
- Sie wissen, wie man einer Security Group eine Inbound Rule hinzufügt (in diesem Fall RDP).
- Sie sind in der Lage via RDP eine Verbindung auf eine EC2-Instanz mit einem laufenden Windows Server Betriebssystem aufzubauen.
- Sie können ein EBS-Volume erzeugen und dieses dynamisch einer laufenden EC2 Instanz anhängen.
- Sie wissen, wie man bei einem Windows Server ein EBS-Volume einbindet, formatiert und als Datenablage nutzt.
- Differenziert und nachvollziehbar im persönlichen Repository dokumentiert.
- Fachgespräch mit Coach.
Beachten Sie ausserdem die allgemeinen Informationen zu den Abgaben.
⚠️ Hinweis: Dieses Volume wird nicht automatisch gelöscht. Sie müssen folgende Schritte durchführen, damit deswegen nach dem Lab keine Kosten anfallen:
- Instanz stoppen oder terminieren (AWS Console unter Instances)
- Volume detachen (AWS Console unter Volumes)
- Volume löschen (AWS Console, Action, Delete volume)
D) Speicherdienste und entsprechende Eigenschaften kennen (Beginner)
Ausgangslage:
Ihre Instanz verwendet nun zwei EBS-Volumes (Block-Storage) und einen S3-Bucket (Object-Storage). Die dritte Storage-Option bei AWS heisst EFS (Elastic File System, File-Storage). Falls Sie bisher noch keinen Input zu diesen drei Storage-Services vom Coach erhalten haben, fragen Sie ihn danach.
Anleitung:
Recherchieren Sie die drei unterschiedlichen Storage-Optionen. Nutzen Sie dafür z.B. ChatGPT und fassen Sie das Thema so zusammen, dass folgende Punkte kurz und knackig abgehandelt werden.
Kategorisieren Sie diese nach den folgenden Eigenschaften und Use-cases:
- Persistenz (Ja/Nein)
- Geschwindigkeit (grobe Unterteilung)
- Sicherheit (insbesondere bei Object-Storage)
- Standort (Region oder Global)
- Weitere Charakteristiken
- Use-case (Ein Anwendungsbeispiel für jeden Storage-Typ)
Ziel der Übung
🔔 Verständnisaufbau für die Stärken und Schwächen der unterschiedlichen Storage-Lösungen von AWS und die jeweils passenden Use-cases.
Leistungsnachweis
- Sie kennen die wesentliche Unterschiede der drei Storage-Optionen (Block-, Object, File-Storage)
- Sie kennen Use-cases für jeden dieser drei Storage-Optionen
- Differenziert und nachvollziehbar im persönlichen Repository dokumentiert.
- Fachgespräch mit Coach.