Recommendation for AWS services to design an architecture for a ride-sharing application using Laravel

0

I want to design an architecture for a ride-sharing application built with Laravel on AWS. I need recommendations for the AWS services to use. I'll be using Laravel. I also want to create a database that can handle heavy loads and be real-time. Would you recommend using DynamoDB, or should I consider another option? Also, for connecting DynamoDB, should I use App Sync or another service, or should I connect directly?

1 Answer
2
Accepted Answer

Core Infrastructure

  • Elastic Compute Cloud (EC2): Host your Laravel application on EC2 instances. You can use Auto Scaling to manage the scaling of your EC2 instances based on demand, ensuring that you always have enough capacity to handle load without overspending.
  • Elastic Load Balancing (ELB): Use ELB to distribute incoming traffic across your EC2 instances. This ensures high availability and fault tolerance in your application.

Database For a database that can handle heavy loads and provide real-time capabilities, you have a few options:

  • Amazon Aurora: A MySQL and PostgreSQL-compatible relational database built for the cloud, which scales automatically and has high performance and availability. Aurora is a good choice if you need complex queries and transactional support.
  • Amazon DynamoDB: A NoSQL database that supports key-value and document data structures. It is highly scalable, managed, and offers single-digit millisecond performance. DynamoDB is suitable if your application needs high performance, massive scalability, and low-latency access.

Given your requirement for real-time operations, DynamoDB might be more appropriate if you expect very high throughput and need a schemaless design which can evolve as your data requirements grow.

You can use AWS SDK to connect to DynamoDB and perform actions

profile picture
EXPERT
answered 10 days ago
profile picture
EXPERT
Artem
reviewed 10 days ago
  • What different between AWS SDK and Appsync if i will use to Real time connection? If I have error in auto scaling in Dynamodb Provision, The on demand will solution or use Dynamodb stream or Dynamodb DAX?

  • If real-time data synchronization is a core requirement of your application, AppSync offers a more integrated, robust solution compared to using AWS SDK, which would require custom implementation for real-time updates.

    DynamoDB Streams capture a time-ordered sequence of item-level modifications in any DynamoDB table and store this information for 24 hours. Streams are typically used to trigger actions (using AWS Lambda, for example) after data modifications, and are not directly a solution to auto-scaling issues.

    DAX is an in-memory cache for DynamoDB, designed to give you microsecond response times for your data retrieval needs. It is useful to reduce the load on DynamoDB by caching frequently read data, but it does not help directly with write capacity scaling issues.

  • Okay if I need to use SQS with AppSync and DynamoDB, what is methodology to do this and will add SQS before AppSync or Between SQS and DynamoDB?

  • what is the purpose of a queue?

  • To queue order in and out to dynamodb from Application

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