NPE: Uitrollen van een container op Amazon Web Services¶
Doel¶
In de eerste opdrachten leer je hoe je een VM from scratch kan aanmaken, een bestaande VM kan importeren, en hoe je Docker kan installeren en gebruiken binnen een Linux VM.
Voor het deel NPE (niet-periodegebonden evaluatie) bouwen we hierop voort, en is het de bedoeling dat je een eenvoudige Docker container uitrolt bovenop een geselecteerd cloudplatform, namelijk Amazon Web Services (via AWS Academy).
In tegenstelling tot de vorige opdrachten moet je voor deze opdracht het resultaat indienen. Dit zal beoordeeld worden en telt mee voor 10% van het eindcijfer voor dit opleidingsonderdeel. Het niet indienen van het resultaat resulteert in een 0 voor deze 10%, waardoor je hoogstens nog een 18 op 20 kan behalen voor dit opleidingsonderdeel. Deze opdracht kan niet hernomen worden in de tweede zittijd; je neemt jouw score mee naar de tweede zittijd.
Opdracht¶
Hieronder vind je een overzicht van de opdracht. Lees eerst de volledige opdracht aandachtig door voordat je eraan begint. Idealiter start je met werken aan de NPE nadat je alle opdrachten van het hoofdstuk Docker hebt voltooid. Je hebt dan voldoende kennis om deze opdracht succesvol af te ronden.
AWS Academy¶
Voor deze opdracht maken we gebruik van AWS Academy. Dit is een aangepaste versie van AWS en stelt studenten in staat om gratis kennis te maken met de mogelijkheden van hun cloudplatform.
Elke student die officieel is ingeschreven voor dit OLOD, wordt automatisch toegevoegd aan een cursus op AWS Academy. Na registratie zal deze cursus normaal zichtbaar zijn via het portaal (zie verder). Binnen de cursus beschikt elke student over een budget van $50 dat vrij gebruikt kan worden (tot en met 23/05/2025 23:59).
Let op: het is niet mogelijk om extra budget te krijgen! Wanneer je jouw persoonlijke krediet hebt opgebruikt, kan je geen instanties meer lanceren. Start daarom alleen instanties wanneer je ze nodig hebt en sluit ze af wanneer je ze niet meer gebruikt.
Om gebruik te maken van AWS Academy moet je je eerst registreren. Hiervoor ontvang je automatisch een uitnodiging op je HOGENT e-mailadres in de week van 16/03/2026.
Belangrijk: alle studenten die ingeschreven zijn voor Operating Systems zijn willekeurig verdeeld over verschillende cursussen. Gebruik jouw persoonlijke link om te registreren en niet de link van een collega-student die mogelijk in een andere cursus zit.
Na registratie zal de cursus zichtbaar zijn onder Courses. In deze cursus kan je doorklikken naar Modules waar je de nodige informatie vindt om aan de slag te gaan met AWS. Lees eerst de Student Guide, hierin wordt uitgelegd hoe je toegang krijgt tot de AWS Management Console. Op dezelfde pagina is ook een demo-video beschikbaar (onder Modules > AWS Academy Learner Lab Resources). Vervolgens kan je de opdracht maken door te klikken op Launch AWS Academy Learner Lab (en de terms and conditions te accepteren). Je hoeft verder niets te doen met bv. de surveys of knowledge checks.
Aanmaken VM en installatie Docker¶
In eerste instantie zal je een Linux-gebaseerde VM moeten lanceren via AWS EC2. In tegenstelling tot de vorige labo's zullen we hiervoor geen stap-voor-stap handleiding voorzien, maar is het de bedoeling dat je zelf opzoekt hoe je dit best kan doen.
Er zijn gelukkig veel tutorials te vinden op het internet. Onderstaande tutorial is een goed startpunt: https://www.youtube.com/playlist?list=PLK-Bs6BGQBEM8tsV023iFt28iytslEV0u. Dit is een reeks van 8 video's, waarvan vooral volgende onderdelen relevant zijn (bij voorkeur in deze volgorde):
- Video 2: Launch an EC2 instance in the AWS Cloud Part I
- Video 3: Launch an EC2 instance in the AWS Cloud Part II
- Video 4: Launching & Configuring a Linux EC2 Instance
- Video 6: SSH into Amazon EC2 instance using a Windows PC Part ONE
- Video 5: SSH into Amazon EC2 instance using a Windows PC Part TWO
Merk op: het is niet de bedoeling om alles exact na te doen wat in de video's getoond wordt. De video's dienen als achtergrondinformatie en geven een goed overzicht van de mogelijkheden van AWS. Het is de bedoeling dat je zelf de informatie uitfiltert die relevant is voor deze opdracht. Het is mogelijk dat de AWS Management Console ondertussen licht gewijzigd is ten opzichte van wat in de video's getoond wordt.
Eenmaal je een VM gelanceerd hebt, zal je Docker moeten installeren. Je kan je hiervoor deels baseren op de uitleg uit onze opdracht rond installatie van Docker. Merk op dat de installatie op jouw EC2-instantie licht verschillend kan zijn, afhankelijk van het besturingssysteem dat je koos voor jouw VM. Zorg er bovendien voor dat de Docker daemon automatisch gestart wordt bij het opstarten van de VM, anders moet je elke keer na het opstarten van de VM een SSH-connectie openen om Docker manueel te starten. Merk ook op dat jouw virtuele machines op AWS automatisch afgesloten worden na 4 uur inactiviteit, om onnodige kosten te besparen.
Configuratie webserver¶
Wanneer Docker correct werkt, moet je twee containers lanceren. De eerste container is een door ons gemaakte container die je kan vinden op Docker Hub. De tweede container is een in-memory database genaamd Valkey, die ook op Docker Hub beschikbaar is. Hieronder vind je een overzicht van de opstelling voor deze opdracht:

Je definieert beide containers in een Docker Compose-bestand en zorgt ervoor dat deze containers correct met elkaar kunnen communiceren. Volg hiervoor de onderstaande stappen:
- Maak in het Docker Compose-bestand een eerste container aan op basis van de image
thomasae97/os-npe-2526. - Deze image start een webserver die luistert naar HTTP-verkeer op poort 80. In het Docker Compose-bestand moet je poort 80 van je VM koppelen aan poort 80 van de Docker container.
- Stel vervolgens in het Docker Compose-bestand twee omgevingsvariabelen in voor de webserver-container:
- Gebruik je eigen naam als waarde voor de omgevingsvariabele
STUDENT_FULL_NAME(bv. John Doe). - Gebruik je studentennummer als waarde voor de omgevingsvariabele
STUDENT_CODE(bv. 202512345).
- Gebruik je eigen naam als waarde voor de omgevingsvariabele
- Zorg ervoor dat de website binnen de Docker container publiek beschikbaar is. Mogelijk moet je hiervoor ook de firewall binnen Amazon EC2 aanpassen, zodat connecties van buitenaf mogelijk zijn over poort 80.
- Test of de website publiek bereikbaar is via de URL http://\<IP van je cloud VM>. Als de omgevingsvariabelen correct zijn ingesteld in het Docker Compose-bestand, zullen je naam en studentennummer zichtbaar zijn op de website. Test dit grondig!
- Maak vervolgens een container aan die de image
valkey:9-alpinegebruikt. Deze container start een in-memory database genaamd Valkey. Deze container hoeft niet publiek bereikbaar te zijn, maar moet wel correct kunnen communiceren met de webserver-container. - Voeg als laatste een omgevingsvariabele toe aan de webserver-container, genaamd
VALKEY_HOST. Gebruik de naam van de Valkey-container uit je Docker Compose-bestand als waarde voor deze omgevingsvariabele (bv.valkey).- Controleer de logs van de webserver-container om te controleren of de webserver correct verbinding kan maken met de Valkey-database.
- Test of je website nog steeds correct werkt en of de Valkey-database correct wordt gebruikt. Dit laatste kan je controleren door te navigeren naar http://\<IP van je cloud VM>/valkey-check.
Indienen en evaluatie¶
Controleer de volgende zaken voordat je indient:
- Je website is publiek bereikbaar via de URL http://\<IP van je cloud VM>
- Je naam en studentennummer zijn correct zichtbaar op de website
- Je naam en studentennummer zijn zichtbaar op de pagina http://\<IP van je cloud VM>/valkey-check
Als je aan deze voorwaarden voldoet, volg dan de onderstaande stappen:
- Ga naar https://os-npetester.vichogent.be/
- Vul het formulier in met je naam, studentennummer en de URL (beginnend met http://).
- Neem deze gegevens letterlijk over vanop je webpagina.
- Klik op de groene knop Start controle. Het script zal je website controleren, wat enkele seconden kan duren.
- Als je website niet bereikbaar is, verschijnt er een foutmelding bovenaan de pagina. Los het probleem op en voer de controle opnieuw uit.
- Als je website bereikbaar is, start er automatisch een download. Je krijgt een bestand met de naam
result_XXXXXXXX.dat(waarbij XXXXXXXX je studentennummer is).
- Dien dit bestand (
result_XXXXXXXX.dat) in via Chamilo. Ga naar de cursus voor Operating Systems > Opdrachten > OS NPE: indienen resultaat controle.- Vergeet dit niet, want zonder dit bestand kunnen wij je geen punten geven voor het NPE-gedeelte!
- Houd rekening met de deadline (zie verder) - indienen na de deadline is niet toegestaan!
Je kan de controle meerdere keren uitvoeren, waarbij elke keer een nieuw bestand wordt gedownload. Zorg ervoor dat je het juiste bestand indient via Chamilo!
De beoordeling voor deze opdracht gebeurt uitsluitend op basis van het bestand dat je via Chamilo indient. Studenten die niets indienen via Chamilo krijgen geen punten voor deze opdracht. Na het indienen van het resultaat kan je je VM stoppen en/of verwijderen op AWS.
De deadline voor het indienen van het resultaat is 15/05/2026 vóór 23:59.
Vragen en hulp¶
Reguliere studenten kunnen gebruikmaken van de wekelijkse contacturen (ingeroosterde lessen) om vragen te stellen over deze opdracht.
Studenten TIAO kunnen gebruikmaken van de voorziene contactmomenten of vragen stellen via e-mail aan hun lector.
Heb je geen uitnodiging ontvangen voor registratie, of heb je geen toegang tot AWS Academy? Neem dan contact op met je lector!
Heb je na het voltooien van de opdracht nog budget over? Dan kan je dit gebruiken om verder te experimenteren met AWS. Let op: na 24/05/2026 worden alle VM's automatisch verwijderd en heb je geen toegang meer tot de AWS Management Console.
Veel succes!
Belangrijk: alle studenten die ingeschreven zijn voor Operating Systems zijn willekeurig verdeeld over verschillende cursussen. Gebruik jouw persoonlijke link om te registreren en niet de link van een collega-student die mogelijk in een andere cursus zit.