Designing scalable application architectures
In this section, we present some of the common approaches to designing scalable application architectures. Some of these design principles are not unique to cloud-based applications; however, they become even more important in the cloud context. Let's have a look at a few of these design principles.
Using AWS services for out-of-the-box scalability
Leverage AWS PaaS services wherever possible to receive the benefits of scalability and availability without the associated administrative headaches or design complexity. For example, you can leverage the RDS or the DynamoDB services available for scalable relational and NoSQL database services, respectively. Similarly, you could leverage the AWS SQS for a highly scalable queuing service without having to roll out your own implementation or managing an open source product deployed in an EC2 instance.
Using a scale-out approach
Designing an application that can scale horizontally allows you to distribute...