AWS gebruik ik als platform om backend-oplossingen schaalbaar, betrouwbaar en beheersbaar te laten draaien. Voor mij is AWS geen doel op zichzelf. Ik kijk eerst naar wat een systeem nodig heeft en kies daarna alleen de diensten die daar daadwerkelijk waarde aan toevoegen.
Mijn ervaring met AWS loopt inmiddels over meerdere jaren en varieert van het draaien van backend-services tot serverless verwerking, messaging, notificaties en authenticatie.
Wat is AWS?
AWS, Amazon Web Services, is een cloudplatform waarmee je infrastructuur en managed services kunt gebruiken zonder alles zelf te hoeven hosten en beheren.
Binnen backend engineering betekent dat bijvoorbeeld dat applicaties kunnen draaien in de cloud, berichten asynchroon verwerkt kunnen worden, e-mails verstuurd kunnen worden of authenticatie centraal geregeld kan worden.
De kracht zit voor mij vooral in het combineren van die onderdelen tot een oplossing die eenvoudig genoeg blijft om te begrijpen en te onderhouden.
Belangrijke dingen om te weten
AWS biedt enorm veel mogelijkheden. Dat is tegelijkertijd de kracht en het gevaar.
Een architectuur wordt niet automatisch beter omdat er meer AWS-diensten in zitten. Iedere extra service introduceert ook configuratie, monitoring, kosten en kennis die een team moet onderhouden.
Daarom kijk ik bij AWS vooral naar:
Simpliciteit: gebruik een managed service wanneer deze daadwerkelijk complexiteit wegneemt.
Kosten: schaalbaarheid is waardevol, maar alleen wanneer de kosten in verhouding blijven tot het probleem.
Betrouwbaarheid: denk vooraf na over failures, retries en afhankelijkheden tussen services.
Observability: een systeem dat draait is niet automatisch een systeem dat beheersbaar is.
Eigenaarschap: begrijp waarom een AWS-service onderdeel is van je architectuur en wat er gebeurt wanneer deze niet beschikbaar is.
Cloud-native bouwen betekent voor mij dus niet zoveel mogelijk cloud gebruiken. Het betekent bewust gebruikmaken van wat het platform voor je kan oplossen.
Hoe ik AWS gebruik
Ik gebruik AWS voornamelijk als onderdeel van backend- en microservice-architecturen.
Daarbij heb ik onder andere gewerkt met:
AWS Lambda voor serverless verwerking
SQS voor asynchrone communicatie
SNS voor event- en notificatiestromen
SES voor het versturen van e-mail
Cognito voor authenticatie
AWS als infrastructuur waarop backend-services draaien
Mijn uitgangspunt blijft daarbij hetzelfde: de infrastructuur moet de applicatie ondersteunen en niet andersom.
Ik probeer infrastructuurkeuzes daarom zo te maken dat een team later nog begrijpt waarom iets bestaat, hoe het schaalt en hoe het vervangen kan worden wanneer de situatie verandert.
Waar ik AWS recent heb gebruikt
Bij ANWB werk ik binnen het Car Platform aan backend-services die op AWS AppRunner draaien. Binnen dit platform heb ik gewerkt aan de overgang van een monolithische opzet naar een duidelijker event-driven architectuur met Kotlin, Redis en Redis Streams. AWS vormt daarbij de infrastructuur waarop deze services draaien.
Mijn focus ligt daar vooral op de applicatiearchitectuur en de betrouwbaarheid van de datastromen. Cloudinfrastructuur is daarin geen los onderdeel, maar onderdeel van het totale ontwerp.
Eerder heb ik AWS ook intensief gebruikt bij Marvia, waar ik binnen een microservice-architectuur werkte met onder andere AWS Lambda, SES en SNS. Daarnaast heb ik binnen een zelfstandig SaaS-project AWS Cognito ingezet voor authenticatie tussen gebruikers en services.
Die combinatie heeft mij vooral geleerd dat AWS sterk wordt wanneer je services gericht inzet. Niet omdat een dienst beschikbaar is, maar omdat deze een concreet technisch of operationeel probleem oplost.
Mijn ervaring met AWS
Ik werk inmiddels ongeveer 7 jaar met AWS binnen verschillende softwareomgevingen.
Mijn ervaring zit daarbij niet alleen in het configureren van losse AWS-diensten. Ik kijk vooral naar hoe cloudinfrastructuur past binnen de backend-architectuur als geheel.
Voor mij gaat een goede AWS-oplossing uiteindelijk over dezelfde principes als goede software:
begrijpelijk, schaalbaar en duurzaam in beheer.
AWS kan veel complexiteit voor je oplossen. Maar wanneer je niet bewust kiest, kan het net zo makkelijk nieuwe complexiteit toevoegen.
Veelgestelde vragen die ik krijg over AWS
Gebruik je AWS vooral als developer of ook vanuit architectuur?
Beide. Ik werk technisch met AWS-services, maar kijk vooral naar hoe ze binnen de totale backend-architectuur passen. Een service toevoegen is makkelijk. Bepalen of deze over drie jaar nog logisch is, vind ik interessanter.
Waarom AWS en niet alles zelf hosten?
Omdat managed services veel operationeel werk kunnen wegnemen. Maar alleen wanneer dat voordeel groter is dan de extra afhankelijkheid, complexiteit en kosten die je introduceert.
Gebruik je zoveel mogelijk managed AWS-services?
Nee. Juist niet. Ik probeer de oplossing bewust eenvoudig te houden. Als een bestaande service het probleem goed oplost, hoef je daar niet nog drie AWS-diensten tussen te zetten.
Welke AWS-services heb je zelf gebruikt?
Onder andere Lambda, SQS, SNS, SES en Cognito, App Runner, ECS, Secret Manager, RDS. Daarnaast werk ik recent bij ANWB met backend-services die binnen AWS draaien.
Wat vind je het belangrijkste bij werken met AWS?
Dat je blijft begrijpen wat je bouwt. Cloud maakt infrastructuur makkelijker beschikbaar, maar neemt architecturale verantwoordelijkheid niet weg.