As defined by Amazon, Amazon Relational Database Service (Amazon RDS) makes it easy to set up, operate, and scale a relational database in the cloud. It provides cost-efficient and resizable capacity while automating time-consuming administration tasks such as hardware provisioning, database setup, patching and backups. It frees you to focus on your applications so you can give them the fast performance, high availability, security and compatibility they need.
RDS is also referred to as a Database as a Service (DbaaS) or Platform as a Service (PaaS) not to be confused with Infrastructure as a Service (IaaS) which we’ll discuss in the next paragraph.
DbaaS vs. IaaS
DbaaS | IaaS |
You can choose any DB platform such as Oracle, MySQL, SQL Server, Amazon Aurora, PostgreSQL, and MariaDB | You create a Virtual Machine and install OS and DB platform such as SQL Server |
DbaaS takes care of backups, High Availability, Patching, OS, underlying hardware | Iaas will only take care of the VM host layer and it’s hardware. You will need to manage patching, HA, security, etc. This is essentially like an on premise server. |
Being an Operational DBA, there are a few tasks that RDS will take over freeing up time for the DBA to focus on other things. Some of those tasks include the following:
- Backups: RDS will continuously take backups and allow point in time restore capabilities. We no longer have to worry about disk space or archiving backups to another location.
- HA: RDS can automatically setup mirroring to another data center which allows for redundancy of databases.
- Patching: RDS will automatically patch your SQL Server based on a maintenance window defined by you.
- Add Resources such as CPU/Memory: RDS can increase CPU or Memory on demand as opposed to managing an on premise where the server might need downtime and you would have to orchestrate the change with Server Administrators.
- Upgrade: With a push of a button you can automatically upgrade SQL Server and easily roll back if necessary.
- Monitoring: Instead of buying a third party monitoring tool and running through the setup RDS provides a service called CloudWatch that can easily tap into SQL Server and alert when things go wrong.
Wow! All of these items make managing a SQL Server much easier for a DBA right? Do you even need a DBA if you’re running RDS? Of course you do! While it does make some tasks easier for a DBA, RDS will not do the following:
- Write queries, tune queries, test queries: RDS has no knowledge about the data in each DB. Only a DBA knows the application and business processes to write and tune queries.
- Manage DB security, change control, configuration settings: Only a DBA familiar with all of the procedures of his/her company can really make sure the environment is secure, that all changes are being documented, and that a specific configuration applies to what the databases are supposed to do.
- Tune indexes or maintenance: Again, only the DBA knows what databases might need indexes or aren’t using specific indexes. You also know when to run maintenance procedures.
Now that we’ve discussed some of the pros and cons, why do businesses use DbaaS?
The speed of provisioning increases business value because instead of waiting weeks to bring a server online including purchasing software, servers, licenses, managing resources, etc. you can click a few buttons in the Amazon console and have a fresh SQL Server online in a matter of minutes.
The automation of regular tasks means there’s less possibility of human mistake and less hours spent by the admins patching and managing certain parts of the servers, which means no more late nights. Employees can now spend more time query tuning, deploying new functionality, and making sure the performance is the best. All of this leads to increased revenue for the business.