I've been reading up RDS vs. EC2 for MySQL. My question is what the difference in setup between RDS and EC2 for MySQL in terms of set up and failover?
Does that mean that when we configure RDS for MySQL on AWS, we just need an Instance with Read Replica / Mulit-AZ Deployment with failover automatically configured?
While if we deploy with EC2, we have to go through the trouble of setting up 2 Instances of MYSQL for master-slave replication?
Any one can shed any lights?
It's been a while since I looked into all these things, so things may have changed in the last 3 or 4 months.
RDS is basically a pre-packaged version of MySQL on Amazon services. You do not need to worry about any configuration, or server maintenance; they take care of all that for you. You can purchase/rent space/performance based on your needs and you are given uptime guarantees by Amazon and they take care of data safety (ie: replication, backups, etc). I would still recommend, however, that you do make your own dumps for your own backup purposes, unless you are willing to put all your trust in the Amazon Cloud (I guess it depends what kind of information you plan on storing there)
EC2 on the other hand, is a virgin server, with whatever OS you need (they have prepackaged appliances with CentOS/Win available). Here, you are on your own with whatever you do. If you want to run MySQL, then you need to install it, configure it and maintain it yourself. If you want replicated data, then you would need to create a second instance as a slave, and validate that the slave is in sync. You could, for all intents and purposes, install MySQL Enterprise if you wanted to get some of the Enterprise benefits, but there is no requirement to do so. Advantages of going the EC2 route is that you have full control over the configuration of the DB, including any performance tweaking you want to do. Additionally, you can install MySQL cluster if you need. Disadvantage is that you have to do full system administration yourself, including OS maintenance, security, patches, etc.
There is also a cost differential between the two. If you need to migrate to a large DB (disk space, or performance), it is easier to make smaller incremental changes at the EC2 level than with RDS.
With EC2, there are recommendations to back everything to S3 storage as EC2 storage is not guaranteed to be persisted in all cases. I do not remember where I read/saw that obscure piece of information, but something I always remembered. So there is an additional cost there too if you want to build a solid infrastructure.
At the end, it comes down to if you want to do it yourself and be responsible for everything but the hardware itself, or want someone else to worry about all the software configuration/backups/etc, but you just use the DB.
Hope this helps.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With