A lot of clients for whom we manage AWS infrastructure come up with a simple question of which out of “RDS vs EC2” is better for their MySQL database requirements. The answer to this simple question is not so simple though. Both these options enable building a database in a VPC secure environment, support applications with high performance requirements, and are highly scalable. However, there are some important differences between RDS and EC2 databases. Our overall experience and analysis make us lean towards RDS a bit due to the following reasons:
- There’s almost no manual configuration, management, or maintenance requirements – AWS even handles software patches automatically.
- Each RDS instance is pre-configured and optimized based on the selected size. RDS instances scale by adjusting memory or compute power up or down as needed.
- RDS also features the intangible 15% performance boost over an EC2 MySQL instance as per our internal benchmarking and also as seen in this article. The reason for this performance boost is because RDS is running on better I/O hardware (and with RAID as per our assumption) than a vanilla EC2 instance backed by EBS.
- It’s also simple to configure read replicas or set up synchronous replication across availability zones for enhanced performance, availability, and durability.
- RDS also comes with automated scheduled backups and point in time restores.
The overall performance boost and the simplicity to setup, configure and manage makes RDS a better option as compared to EC2 for MySQL although one of the key benefits of using EC2 is complete control. EC2 provides more flexibility to meet custom performance, replication, archival or DR requirements.