Looking further into backend performance, we would also need to understand the performance of our databases. Relational databases are not as easy to scale horizontally. Scaling a database usually entails the following:
- Vertical scaling: Resizing the instance type to get more memory, CPU, and network performance
- Adding a read replica (or replicas): Distributing the read operations on the read replicas and offloading our master database
- Increasing the size of the volume when space is low
To detect the need to scale or optimize the performance of our database, we can use CloudWatch. The RDS overview in the CloudWatch management console gives us a good, quick look at the operation of our databases, but, as with the EC2 service, it can get crowded when running a lot of RDS services.
The default overview, however, does give us a good insight into the operational statistics...