It really depends on your priorities. Let me highlight the cons and pros of each method you described and suggest a few more. I'd like to highlight that whatever you choose for your backend the best would be deploying the frontend part to S3 + CloudFront and having RDS as database.
- Run all of these as I have locally with some extra configuration on an EC2 instance. It could be the fastest/easiest to implement because of copying your local environment. The downsides are that it is harder to maintain and harder to achieve high availability.
- Deploy my Angular build to an s3 bucket and use AWS amplify and AWS RDS to format my backend. If pick from the options you provided - the most balanced.
- Deploy my Angular to s3, host data with RDS, create a serverless API with aws lambda and a few other services etc. The most effective. If your framework supports deploying as serverless, I would consider this option, but you need to take a look at API Gateway as an entry point for your API.
- AWS Beanstalk could be another option to deploy the backend and have easy HA setup and zero-downtime deployment.
- Nowadays, it's mainstream to use Docker, so if you like to go this way, you can take a look at ECS. I would consider it as a better solution than p.1 and p.4 and easier (IMHO) than p.3.
- Another option to run containers is EKS (I like it). It's not efficient on the small workload, but you can come to it if scale needed.
Usually, for MVP, you pick the option which you know better/more comfortable with and then you can improve it later.
- AWS OFFICIALUpdated 2 years ago
- AWS OFFICIALUpdated 5 months ago
- AWS OFFICIALUpdated 3 months ago
- EXPERTpublished a year ago