What Do You Think of My Project Architecture?

0
9
Asked By CuriousCoder92 On

Hey everyone! I'm looking for some feedback on my project architecture. My team doesn't have any operations expertise, and I don't know anyone in a similar role. I'm working at a small startup, and our project is still in the early stages of release.

Currently, I have a mobile application with a backend hosted on AWS. Since the backend needs to run 24/7 and may experience random traffic spikes, I opted for an EC2 instance running a Docker Compose setup. My plan is to scale this vertically for now but I'm considering breaking it into microservices later on.

The database is on an RDS instance, and I'm predicting that as we scale, most issues will stem from the database due to heavy I/O per user. I'm planning to hire people to manage this aspect when necessary, since I don't think I can handle it on my own. The app has a lot of media content, so I chose S3 and CloudFront to help with integration, but I'm worried about the hefty egress fees. I'd appreciate any suggestions for alternatives for the mid to long term if S3 isn't the best choice.

Overall, things are going well right now, but I'd love to know if I'm making the right decisions so far and if I should start thinking about upgrading the architecture soon. I'm open to any questions you might have, so feel free to ask!

3 Answers

Answered By CloudNinja87 On

Switching to ECS or Fargate sooner rather than later could be beneficial. It allows you to maintain the ease of a single box setup while providing you with autoscaling and rolling deployments. Instead of resizing EC2 instances during traffic spikes, you can simply adjust your desired tasks. Regarding your Redis and message queue servers, consider whether using Elasticache and SQS might save you time and resources; it could be a smart move performance-wise!

Answered By DevGuruJack On

Before going live, did you have a UAT environment to test your architecture? It’s a great way to evaluate security, performance, and availability. A more concrete architecture diagram would help us provide better feedback, but it seems you might want to address high availability and monitoring—both essential for production. Also, consider integrating security features like Cognito for user authentication and WAF/Shield if they're not already in place. Regarding scaling, using an Auto Scaling Group is recommended over vertical scaling due to downtime.

Answered By TechieTom123 On

Your setup sounds solid! Instead of just scaling your EC2 instance vertically, consider looking into horizontal scaling with a load balancer. That way, you'll avoid downtime, and it’ll be easier to manage traffic spikes. Also, don't forget to check into using ECS to manage your Docker containers; it helps with scaling and updates without much hassle. For the database, think about implementing read replicas since you’ll be having lots of reads, which could really help offload some stress from the main database. S3 and CloudFront are definitely good choices for serving static assets, so you're on the right track there!

Related Questions

LEAVE A REPLY

Please enter your comment!
Please enter your name here

This site uses Akismet to reduce spam. Learn how your comment data is processed.