cloud native architecture for a simple web application

0

We are designing a cloud native architecture for a simple web application with user base of 10 users and transactions volume of 100. Planning to host the React web app on S3, Spring Boot (Micro) services on ECS to connect the AWS RDS instance of PostgreSQL. It is a single AZ based deployment as there no need for replication. There will be only one ECS per environment (dev, UAT and Prod).

Having said, please help me understand the queries below

  1. Does the solution need an ELB when only one ECS instance is sufficient?
  2. If ELB is not required, then can R53 send traffic to instance?
  3. Does the solution needs an API gateway between React app and ECS microservice?
  4. Does CloudFront necessary when only 10 users accessed?

Thanks.

5 Answers
1

You are raising all the right architecture questions given the load. Simpler architecture for this requirement will help with lower costs and better operational efficiency. Answering directly for your raised questions:

  1. No, its not necessary to have a ELB
  2. Yes
  3. Depends. Advisable if you intend to implement a 'Usage Plan' for users. (Ref: https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-api-usage-plans.html)
  4. No
AWS
answered a year ago
  • +1 for the straight answers to the questions.

    For #4, it looks like CloudFront is needed because Amazon S3 website endpoints do not support HTTPS or access points. If we want to use HTTPS, we can use Amazon CloudFront to serve a static website hosted on Amazon S3. Ref here: How do I use CloudFront to serve HTTPS requests for my Amazon S3 bucket?

1

I would recommend using serverless technologies. You can find a reference architecture here. No need for load balancers, tasks that are running all time, etc.

profile pictureAWS
EXPERT
Uri
answered a year ago
0

+1 for serverless, API Gateway, Lambda and DynamoDB. To answer the last point, yes, you definitely want to use a CloudFront distribution in front of your React app stored in S3. This allows you to keep your S3 bucket private, and together with the CloudFront Security Savings bundle you can save up to 30% on data transfer costs as well as get credits for AWS WAF rules.

AWS
answered a year ago
  • Thanks for the point confirming CloudFront necessity with S3.

0

You can refer this AWS Whitepaper on this topic, it also explains key components in this architecture:

An AWS Cloud architecture for web hosting

Also see Web Application Architecture reference architecture:

https://d1.awsstatic.com/architecture-diagrams/ArchitectureDiagrams/web-application-architecture-on-aws-ra.pdf?did=wp_card&trk=wp_card

For a detail discussion on Architecture suggest getting in touch with an AWS Solutions Architect.

profile pictureAWS
EXPERT
answered a year ago
0

+1 for serverless as recomended by URI. Spring Boot is not the best idea for microservices, if is a new project, try first AWS lambda. Stay on ECS if you have some requirements hard to solve with lambda. Don't use a load balancer, API Gateway should be enough. Consider use dymamoDB instead of RDS

Also take a look over this new features from reinvent 2022.

  • Lambda SnapStart only valid for native lambdas, not docker.
  • Amazon ECS introduces Service Connect
answered a year ago

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions