MySQL on AWS: RDS vs EC2

MySQL on AWS: RDS vs EC2
When moving your MySQL instances to AWS, you would probably have to deal with this decision. This article will highlight some of the key factors that need to be considered in order to help you determine which is the most cost-effective solution for serving your data.
Introduction

RDS is based on EC2, so in this post I will focus on the benefits and disadvantages of using the former, versus migrating MySQL into user-managed EC2 instances.

The value of RDS resides in simplified provisioning and administration. Several of the most common maintenance tasks such as minor version upgrades, backups, and slave creation are automated and can be managed from the AWS console. On the other hand, RDS imposes some limitations to MySQL functionality so it could be offered “as a Service” while delivering a safe and consistent user experience. Within those limitations we can mention:

MySQL RDS pros and cons in bullets
Main advantages
Limitations
Costs exercise

A quick estimation comparing RDS and EC2 for similar instances and storage shows that RDS is between 40 and 68% more expensive than EC2:

## MySQL on EC2

-Instances: 3 x m2.4xlarge -Storage: 3 1Tb EBS volumes (provisioned IOPS – 3000 IOPS) + 100Gb/month of snapshots space -Intra-Region Data Transfer: 40Gb/Month

## MySQL RDS

-Instance type: 1 x db.m2.4xlarge -Multi-AZ: yes -Storage: 1Tb (provisioned IOPS – 3072 IOPS) -Backup space: 100Gb/month -Intra-Region Data Transfer: 40Gb/Month

Conclusion

There is no right or wrong decision when choosing which AWS solution is better for MySQL. RDS is a powerful option if your data is already in InnoDB (and only in InnoDB) and you are looking for a simple, low-maintenance deployment. When other engines and more complex topologies come into the scene, or even the need for MySQL plugins, then going to EC2 is a better option. Any critical process or script running locally on a MySQL instance could also be the decisive factor for choosing EC2, usually because of the time spent in moving the data through the network. Finally, the cost is definitely a key factor, especially when moving several instances into RDS.