-1

For my next project, I'm giving AWS and server-less a go, but I'm not sure how to reason about the different AWS services. So here's hoping that someone here has a good feel for it.

The project currently consists of three different frontend applications, each hosted on a separate sub-domain:

  • root domain + [www]: Main webpage which mainly consists of "selling"-content
  • [administration]: Frontend application for our administration systems
  • [user]: Frontend application for our user experience

Then there, for now, is one backend application which serves all frontend applications. This backend must be reversed proxied by at least the [administration] and [user] sub-domains (i.e. as user.domain.com/service/backend). My backend service currently runs as a docker container and it uses WebSockets for some parts, so that has to be supported.

I've been looking at some options for my frontends, either AWS Amplify or S3+Cloudfront. However, I'm not sure if either of these is what I'm looking for.

Same goes for my backend. I've been looking at AWS Fargate, AWS API Gateway and possible AWS AppSync (since much of my backend is a GraphQL application).

But I'm kind of lost. Could anyone give me a push in the right direction? Hopefully, I've given enough and clear information, otherwise, I'd be happy to expand! :)

Thanks!

LostInAws
  • 7
  • 3
  • I'm sure I speak for many on this list when I say that while I'm happy to answer specific networking questions, the kind of expertise you're asking for is how I make my living. I'm not inclined to "work for free," especially when you imply this is a commercial venture. If you'd like to discuss this further, you can contact me through my profile info. – Ron Trunk Dec 30 '20 at 14:25
  • I respect your opinion, although I do not agree. Just want to emphasis, this is an OSS-project and it's nothing neither I nor anyone else will benefit from economically. – LostInAws Jan 02 '21 at 09:41

1 Answers1

0

For anyone curious, the setup I landed with is kind of what is described here: https://aws.amazon.com/blogs/networking-and-content-delivery/dynamic-whole-site-delivery-with-amazon-cloudfront/

Where I route everything through Cloudfront, then using "Behaviours" I route traffic to different services. E.g. /service/user & /service/schedule is routed to my ALB instance while everything else is routed to my S3-bucket acting as a static webpage.

Using some Lambda@Edge magic I'm able to rewrite the requests forwarded to my ALB instance which then can match the incoming requests and forward them further to the correct underlaying containers (I'm currently using clusters in Fargate).

This works very well for my use-case, even tho it may not be "best practice". So I'll certainly continue to explore AWS and learn new stuff. :)

If it helps someone, great. If someone has input to the above, I'd love to hear!

Cheers!

LostInAws
  • 7
  • 3