What do you like best?
Amazon RDS is a hosted database solution where amazon hosts the database, maintains it, patches it, and keeps it up and running. You then buy some storage on that hosted server and pay amazon for it.
The whole suite of AWS is just done right. Its so much better than an in-house solution. Before I tell you why I like RDS and also Amazon AWS as a whole, you need to understand what my scenario is. I am a single developer working in some company. As a side project I started making a website which in time is getting bigger and better. Again, remember I am a single developer. So I have tons of coding to do each day. Using RDS, here is what I save:
1. Obviously cost. I pay like $10 per month for a 5 GB storage of MySQL.
2. No maintenance. My DB is always up and running. Just image what horrible problems I would have had to face on top of the amount of work I do daily if I had an in-house solution.
3. Its scalable. This is the single biggest benefit of RDS. Full of space, just extend the storage. The good part is, you just clicked a few buttons and you are done. I don't even know how they do sharding and whole other stuffs. That is amazon's problem.
4. My servers are all up in cloud, perfectly secure and safe. Otherwise I had to hire another engineer just to configure my firewalls and networks. So a hosted solution does not ask me to also pay for their routers and security. Its all inclusive.
I would also tell you why specifically Amazon is best when there are other players in the market such as Heroku. Its because you AWS provides 400 other features in parallel with RDS. You get elastic balancing, SQS, EC2, etc. RDS just plays nice with all other services. However, if you go to other cloud DB provider, these technologies would still work for you, but you would have to handle the association in your application. That is just not worth my time, and would not gain me anything financially.
Many times I also need to have several instances of database for testing and stuff, and frankly I was afraid that it would cost me much. But then I learned that RDS is billed hourly. So I do spawn several databases, do my work, and shut them down. It costs me like $5 max.
If you are still not persuaded, maybe this last point will do the trick. I intend to make my business available worldwide. Naturally if a server is sitting in USA, and the client is in China, the latency would be too high. And if you have multiple database queries per request, the latency can be up to 5-8 seconds. This is bad for business. With RDS, they have data centers all over the world, and I personally keep a database in every region and keep them synced. This also is a neat trick for data redundancy.
PS: They recently launched Amazon Aurora which is 10x times faster than MySQL. I myself will switch to it soon.
What do you dislike?
Things to lookout in case you are planning to have a RDS solution:
1. The cost can quickly escalate depending on your traffic and the rate at which you access your severs. If are querying your DB 24*7 at high rate, the IO cost will be high. So, see the prices before you make a decision.
2. The place from where you query the database matters. A million queries withing the same AWS region would not cost you much, but the same scenario for different regions will cost you a ton. So make sure you are in same region.
3. It just makes sense for anybody to move to Amazon aurora because of the speed. But they do not provide Aurora for small businesses. You are forced to buy a mammoth machine that you frankly don't need. I hope they will launch Aurora soon in smaller configurations.
4. Redundancy cost will multiply. This is real caveat. If I want to have 2 redundant databases, I will have to separately pay for them. But these databases are not being used in the frequency as the first one. I would like a cheaper solution where RDS offers atleast one redundant DB out of the box. If not that, then atleast have the option to backup the data in Glacier storage so that the downtime can max be of 5-6 hours and will be cost effective than paying for two or more DB.
5. They can definitely do a better job to allow to remotely connect to my database. I currently have to login in the terminal and see the results. I am used to viewing data in some software like workbench. I would love to see them have a database view layer.
Recommendations to others considering the product
1. Want to have your DB in cloud?
2. Want to do less maintenance work?
3. Want the server to be secure from hacking?
4. Want to pay less?
If yes, just go with RDS. Its worth it.
What business problems are you solving with the product? What benefits have you realized?
I run a website which allows vendors to sell some items to their customers. Use of database is at the core of my application. I do thousands of queries per minute (which is not enough by any standards, but as my app will grow, so will the query rate). With such an intensive use of database, we want several things out of the box such as security, redundancy, and scalability.
RDS offers a consolidated solution to all above stated problems in an elegant and cost effective way.
1. Had I not been using RDS, I would have to install Linux on some other server, so that would take atleast 30 min. Then I would have patched it (another 1 hour). Then I would install DB in it and install the schema (another 15 min). Then I would set firewall rules and connect this machine to my network (another 20 min). With RDS, I just do the third step (15 min).
2. Defining security rules is a breeze as opposed to setting firewall rules.
3. Access to RDS is automatically controlled by IAM roles.
4. THEY HAVE EVENTS. This makes my life so much easier. I use the events model with server push technique to deliver dynamic contents to my site.