Je bekijkt nu Discover the Amazon

Discover the Amazon

Deze opdracht bestaat uit meerdere verkenningstochten naar AWS – Amazon Web Services. Ondertussen komt ook de basis van de linux webhosting even langs. Dit is een update van de challenge uit 2018/19.

De Amazon AWS Cloud is er in allerlei vormen en maten. We gaan hetzelfde doen – wordpress installeren -, op meerdere manieren. Zo leer je de verschillen tussen de soorten cloud van AWS.

We hebben voor elke opdracht telkens maar 1 les (60-90 min) – voor opdracht 4 en 6 heb je meer tijd nodig. Het gebruik van een password manager (bijv. keepass) is verplicht voor het opslaan van je keys en passwords.

Zet na elke opdracht elke instance op Stop, maar niet op Terminate – dat is deleten.

Les 1. Van Start

Opdracht 1a. Domeinnaam

Huur een .tk (gratis via http://www.dot.tk ) domeinnaam of neem een fatsoenlijke domeinnaam. Met deze naam ga je allerlei services online gooien. Wij refereren telkens naar het DNS via sub.dnsnaam.com.

Hoewel AWS een DNS Service heeft, Route53, geven ze die niet gratis weg aan studenten, dus voor een echte naam kun je beter bij je eigen ISP gaan of via een betrouwbare DNS-aanbieder als transip.nl.

Maak alle namen uit de hierna volgende opdrachten vast aan in het DNS en zet de TTL (time to live) op 5 minuten. Anders wacht je de hele les en ben je een week later kwijt wat je ging doen.

Opdracht 1b. Je Amazon Educate aanmelding

Let op dat je gebruik maakt van het mailtje, zodat je werk in “de klas” van de docent komt. Je kunt na afloop altijd nog zelf een verzoek doen bij AWS om $50 verbruik te krijgen.

Vul o.a. deze gegevens in (of kijk bij deze les):

  • school: techniek college rotterdam
  • niveau: vocational college
  • afstudeerdatum: juni a.s

Opdracht 2a: WordPress via Lightsail

Installeer WordPress via Lightsail. Ken toe in je DNS met lightsail.dnsnaam.com.

Kijk ook even hoe de email wordt gedropt – als iemand een wachtwoord kwijt is. Is deze uitleg daar een antwoord op?

Opdracht 2b. WordPress via Lightsail met files op S3.

Nu heb je een mooie service. Het wordt nog mooier, als je je files op S3 weet te zetten. Met name mooi als er grote files bij zouden zitten, zomaar.

We gaan nu proberen om de file hosting te verkassen naar S3.

Zoek zelf even naar tutorials die het je uitleggen. Deze tutorial van Bitnami is denk ik erg goed. Wij hebben via AWS-Educate geen IAM (user management) dus dat kun je laten zitten.

Opdracht 3: WordPress via Sandstorm

Maak in EC2 een instance aan en voorzie deze van Sandstorm. Via de app store van Sandstorm installeer je WordPress. Verwijs naar deze instance met sandstorm.dnsnaam.com. Gebruik de speciale Amazon EC2 Install Guided Tour van Sandstorm.

Het mooie van Sandstorm is natuurlijk dat je zo tientallen applicaties host, met uniforme user accounts, in 1 moeite. Ruig !

Opdracht 4: WordPress Handmatig op EC2

Nu gaat het meer lijken op het oldschool handwerk, linux server beheer. Back to 2012 !

Maak een nieuwe instance. Kies je favo Linux distro. Installeer WordPress op deze server. Je kunt ‘m gewoon in de “/var/www/html” directory plaatsen. Vergeet niet je mysql database en de permissies erop netjes te regelen ? Laat het dns van ec2.dnsnaam.com naar deze instance wijzen.

Opdracht 5: WordPress in Virtualmin

Dacht je dat Web Hosting Providers met de hand zaten te klojen om telkens een user en een database te maken ? Hiervoor gebruiken ze een paneeltje. Nu gaan we dat dus proberen. Dan kun je 1 of 10 of 100 domeinen op 1 instance kwijt. 1 is genoeg.

Kijk naar de supported operating systems van Virtualmin. Kies er eentje. Maak een EC2 instance van dit type aan. Installeer Virtualmin via de setup. Je had trouwens eerst het DNS moeten regelen, daar kom je nu achter (FQDN). Als virtualmin loopt, maak je een virtual server aan (vmin.dnsnaam.com) , zodat je via het uploaden van bestanden met Filezilla (scp over SSH) je wordpress files online krijgt. De database maakt Virtualmin nu ook voor je aan.

Als je iets beter je best doet, kun je via Virtualmin ook “SSL Website” aanvinken. Dan komt de mogelijkheid om LetsEncrypt een SSL certificaat te laten maken. Beetje klikken met de muis en een slotje op je site.

Nu heb je met de hand een install gedaan, dat is gewoon super. Je had het ook met een script van Virtualmin kunnen doen. Waarom niet eigenlijk ?

Opdracht 6: Met RDS en S3 Storage.

Deze deelopdracht is de moeilijkste. Als je faalt, probeer nog een keer voordat je gauw naar 6 gaat.

De instance die je nu hebt met Virtualmin is helemaal niet schaalbaar. Of elastisch. Je had net zo goed gewoon een VPS-je kunnen huren en die gebruiken. Voor de helft van het geld.

Wat dan wel? Je moet de files en de database ook “a la cloud” serveren ! Bij Lightsail met S3 deden we de files al, maar nog geen database.

Je kunt nu verder gaan met je Lightsail/S3 van opdracht 2c of met een virtuele server in Virtualmin.

Op dezelfde instance als bij 5 kun je nog een virtual server (S3.dnsnaam.com) maken, maar nu probeer je de files in de S3 Block Storage te parkeren. Het voordeel is, dat je dan makkelijker kunt opschalen. De database maak je nu niet op localhost-mysql maar in de Amazon RDS service.

Er zijn volop guides voor WordPress met S3 te vinden, zoals deze  of deze (die geen IAM vereist, maar minder secure is) . En voor RDS.

Opdracht 7. Cloudformation

Bij 6 heb je m nu netjes in de cloud, scalable. Masterpiece. Wel veel werk he.

Dat doe je dus ook maar 1x.

Real Gods write their infrastructure as code.

De grote goden schrijven hun infra als code. Dat kan met Cloudformation. Maak WordPress met een Cloudformation template. En Enjoy

Opdracht 8: Kubernetes

Containers, zoals Kubernetes, zijn een praktische manier om schaalbare apps te deployen. Een mooie blog hierover is https://medium.com/@jonah.jones/aws-eks-spinning-up-wordpress-c8eb4ca1e037

Opdracht 9. Post je Terugblik

Viel het mee, viel het tegen, wat had je verwacht, was het leuk, en welke hosting vorm zou je aanraden ? Post je terugblik op de Amazon AWS subsite. Bedankt !