Een AWS server configuratie


Maarten Jongmans is software engineer en projectleider bij endroit.nl en boo2.nl.  Met zijn team ontwerpt, ontwikkelt en onderhoudt hij web-applicaties. In deze blog vertelt hij over zaken die hij bij zijn dagelijkse werkzaamheden tegenkomt.

Wij gebruiken AWS voor het draaien, beheer en onderhoud van web-applicaties. AWS biedt honderden bouwblokken met duizenden mogelijkheden voor het inrichten van een optimale cloud-omgeving. In deze blog toon ik de inrichting die we gebruiken met in [vierkante] haken referenties naar de AWS bouwstenen en wat technische omschrijvingen voor die het begrijpen.

Onze web-applicaties geven gebruikers (users)  informatie via schermen op desktop en smartphones via https (browser) maar sturen ook emails [SES] en SMS [SNS]. De emails zijn gecertificeerd door Amazon en komen niet in de spam. Alle bouwstenen van de server zitten veilig in het AWS Ecosysteem met een single login [IAM]. Voor DNS gebruiken we [Route53] waarmee we ook up / down-time en gebruikers-klikken vastleggen en rapporteren via [CloudWatch]  en [QuickSight] . Online toegang is beveiligd met een Firewall [WAF] waarvoor regels worden gebruikt die specifiek zijn per programma. Zo worden voor Wordpress websites gelet op andere hack-patronen dan bij administratie-programma's. Moter van het platform zijn de [EC2] webservers waarvan er door auto scaling van de [Elastic Load-Balancer] instances (kopieën) worden gemaakt (en weer worden verwijderd) al naar gelang het aantal gebruikers zodat de performance altijd optimaal blijft. Om dit te bewerkstelligen zijn al onze applicaties stateless.  De aparte database servers [RDB] zitten in een Privat Subnetwerk dat alleen door de webserver is te benaderen. Files worden opgeslagen op file-server [S3]. Statische content wordt op externe servers in een Content Delivery Netwerk [CloudFront] extra snel weergegeven in de browser zonder load op de web-server [EC2]. Statistieken en dashboards worden gegenereerd door [QuickSight] met een kopie database zodat de [RDB] gewoon kan blijven werken zonder met zware overzichten lastig te worden gevallen. Tenslotte gebruiken we [CloudWatch] voor iedere bouwsteen voor een 7/24 monitor van de applicaties in onze boo2 en endroit cockpit van het support-team.