Dynamo is great until you have a lot of traffic. Unless you design from the ground up to avoid hot partitions, you’ll get throttled pretty hard. If you designed to avoid that, great. But you’re going to blow a hole in your pocket.
I worked at Amazon for 10 years. For any non Amazon project, I use Postgres. It’s a damn Swiss Army knife.
You don’t need GraphQL by default. It’s just another service. Client code generation is nice I guess. But unless you’re trying to join together 10 services and simplify discovery of schemes and APIs - in a large scale project - I’ve found it to be overkill.
On the front end, pick whatever. Even Angular 1x probably works fine still (dunno about any known major issues).
For back end, I’d use a JVM language, mainly because fine tuning it isn’t too bad, and there’s a credible library for just about anything. Also because that’s what I’m most comfortable with from my time at Amazon.
For any serious project, I’d avoid tying yourself to AWS or any specific cloud provider.