Database is a critical part of any app deployment. From an infra perspective, one important decision to take is on database hosting. Whether to install DB (e.g MySQL,PostgreSQL) on an EC2 instance and manage yourself or pay double the charges to use AWS RDS?
If you use Microsoft Azure cloud, Azure Database is the equivalent of AWS RDS. You will have to decide between hosting the database on an Azure VM or opt for Azure Database. But services like high availability across zones(replica server) for MySQL/PostgreSQL is in preview mode as on date. In AWS RDS high availability across zones has been available for long.
In the first look it may appear that AWS RDS is the way to go. But when you check the pricing of self managed instance vs AWS RDS it is not an easy decision after all. AWS RDS costs you twice that of hosting a database in an EC2 instance.
For e.g if it costs $100 per month to host on an EC2 instance it will cost you $200 with AWS RDS. For a startup or small business with limited budget it becomes a tough decision. More so if you need a higher configuration EC2 instance (say 8CPU , 64GB ram). The extra costs you incur will be quite high.
- No need to provision the EC2 instance and install the database (e.g MySQL, PostgreSQL)
- No need to worry about managing the EC2 instance , updating database or other infra tasks.
- With a single click, provision a redundant/replica/read only server.
- Automated backups configured by default
- Automated provisioning of alternate server in case of failure in any of the servers.
- You can perform some of the DB tasks from AWS console itself like changing DB parameters.
With a self hosted EC2 instance you will do all of the above. Most of the above activities are one time though. Setup and forget. Couple of items that need regular efforts will be backups and monitoring the ec2 instance to address failures if any.
AWS RDS or Self Managed DB. Which is the best option?
If you have inhouse skills, time to spare and budget is limited then self managed DB hosted on an EC2 instance is the way to go. But if budget is not a constraint then AWS RDS is the best choice for all the benefits it offers. The same applies for Azure Database as well.
One important point to remember. With AWS RDS or Azure Database, updates and upgrades are automated. For e.g. If MySQL version has reached end of support then it will get upgraded as per the timelines announced by AWS and Azure. Though you will have many months(upto an year) of advance intimation but there is no option to opt out of it.
How to REDUCE your monthly cloud bills by 25% in 7 days ?
5 simple and highly effective suggestions in blueprint to reduce your cloud costs.