- Newest
- Most votes
- Most comments
You may want to read the Performance Pillar of the AWS Well-Architected Framework to get additional guidelines for selecting and improving performance: https://docs.aws.amazon.com/wellarchitected/latest/performance-efficiency-pillar/welcome.html
There's a lot to unpack here and the answers aren't simple because changing one thing impacts another. I'd strongly recommend that you contact your local AWS Solutions Architecture team so that you can have an interactive conversation about these things.
That said, some (relatively) quick answers:
We always recommend that you run more than one instance. High availability is a key thing and it's pretty easy to do with a load balancer and an auto-scaling group. That give you higher survivability in the event that an instance becomes unhealthy; and will also let you scale up in the case where more users are hitting your site.
However, that does lead to the case where you have to distribute your static files across multiple instances. Do you create an image which has the right files on it so that it's ready to go at launch? Do you have an update process that runs periodically? Should you put the files on a shared filesystem using EFS? All of these are valid answers depending on a lot of factors - hence my recommendation to have a conversation about this.
You'll also need to think about the scalability of the RDS database as well.
For backups, there are (again) a few ways to tackle this but I'd start with AWS Backup. Note that if you have an automated process building your instances (or AMIs) from some other source then you don't need to back those up. If you're versioning in S3 you don't need to back that up - unless you want inter-region survivability in which case cross-region bucket replication is a good solution - but having that requirement also brings complexities in terms of database replication and instance maintenance.
As per my other answer, it's definitely worth watching this re:Invent video which covers a lot of these topics.
As an aside, always choose a "higher" instance number (e.g. t3 instead of t2) - newer instance types (with higher numbers) are generally less expensive and/or offer better performance. Also, the "t" series instances are unique among all the AWS instance types in that they use CPU credits in order to give lower costs; but for high performance they may not be appropriate for you. They could be, but there's no way to tell unless you are monitoring your CPU credits over time.
Thank you.
Relevant content
- asked 2 years ago
- asked a year ago
- AWS OFFICIALUpdated 2 years ago
- AWS OFFICIALUpdated 2 years ago
- AWS OFFICIALUpdated 3 months ago
- AWS OFFICIALUpdated 3 years ago
What he said! Great advice.