I came across this AWS blog post when searching for best practices for creating an architecture for an auto-scaling web app. It lays out the components and the reasons why it is done this way.
The 5 main steps, as outlined by the author, Saurabh Shrivastava, are-
- Ease server load
- Reduce read load by adding more read replicas
- Reduce write requests
- Introduce a more robust caching engine
- Scale your server