how to design the architecture for hosting app on AWS

1

Hi: I plan to host an app on AWS, with some features: 1, the app and data should be separated due to privacy(app maintenance, such as fixing crashes, is independent of data ). 2, the app will upload the picture to the AWS, and some Python programs will process the pic and send results to the app 3, the app will also pass on some user information to the server, and the server will run some python programs according to the user information, and send results to the app. Currently, looks like we should host app on Ec2, data to then use lambda to S3? run python on lambda? I am very new, please suggest your ideas, also any very related background I should learn asap? thanks

1 Answer
4

Tier 1: Web Tier

  • AWS Elastic Beanstalk: You can use AWS Elastic Beanstalk to deploy and manage your web application's front-end code. Elastic Beanstalk automatically provisions and configures the necessary resources, such as EC2 instances, load balancing, and auto-scaling, making it easier to deploy and manage your web application.
  • Elastic Load Balancing: Elastic Beanstalk automatically sets up an Elastic Load Balancer (ELB) to distribute incoming traffic across multiple EC2 instances. This ensures high availability and fault tolerance for your web application.

Tier 2: Application Tier

  • AWS Lambda: You can use AWS Lambda to run your Python programs and business logic. Lambda functions can be triggered by events from other AWS services, such as API Gateway or S3.
  • Amazon API Gateway: API Gateway can be used to create and manage APIs that your web application can call to send user information and receive results from the Lambda functions.

Tier 3: Data Tier

  • Amazon S3: As mentioned earlier, you can use S3 to store user data and uploaded images securely.
  • Amazon RDS or DynamoDB: If your application requires a relational database, you can use Amazon Relational Database Service (RDS) to provision and manage a database instance. Alternatively, if you need a NoSQL database, you can use Amazon DynamoDB, a fully managed NoSQL database service.

I recommend you to follow this workshop for a Hands On experience with these services.

profile pictureAWS
answered a month 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