So I have this production AngularJS on Java/Spring REST app. It’s getting a bit long in the tooth. I mean, how many Internet Dog Years ago was that? It would work better as a cloud-native app — faster to load, cheaper to run, more reliable, let them do all the maintenance work, HTTPS out of the box, all that good stuff. It would also be nice to have a fresher UI, but I can’t attack the whole thing at once. I’m going to start by moving the back end to the cloud, and only adjusting the UI as much as absolutely necessary.
What does that mean? I could just lift and shift — run my Java server and my MySQL database on cloud boxes instead of local ones. That would be quick and easy and work fine — and gain me virtually nothing, except a really big EC2 bill. Yeah, forget that.
Instead, I’m going to throw Java and Spring out the window, and rebuild it as a proper serverless app using AWS. Lambda behind API Gateway for the REST interface, CloudFront for distribution/SSL/CORS avoidance, RDS database, Cognito authentication, S3 for static Web content and generated file storage, SES for e-mails, SQS for, well, print jobs (but they have to stay Java; it’s a long story)… Bottom line, I’m going to switch the back end of a real and non-trivial app over to AWS lock, stock, and barrel.