Amazon RDS is a relational database service that offers specific advantages compared with setting up, operating, and scaling databases on the Amazon Elastic Cloud Compute (EC2) service. However, in some circumstances, it may still be preferable for organizations to take advantage of the EC2 option.
A relational database is one in which multiple tables are linked using a key field. A simple example of a relational database is when a person joins a library and borrows a book. Both the person and the book have a record on a database table, and a third database table - the “lending table” - stores information such as when the book was borrowed and when it’s due to be returned.
The advantages of a relational database in this example is that the person’s details and the book’s details only have to be entered once into the database, and not every time a book is borrowed - thus eliminating duplication. It’s very easy to perform queries or generate reports to determine (for example) what books the person has borrowed since joining the library.
A relational database of this nature is fairly simple to set up, operate, and scale. It can even be done on an Excel spreadsheet. However, more complicated relational databases require more complex solutions and, over the years, advanced relational database management systems - such as Microsoft SQL Server - have been developed to store and retrieve data across multiple database tables at speed.
AWS’ cloud-based relational database service (Amazon RDS) is a cost-effective alternative to operating a relational database on on-premises hardware. In addition to saving organizations money compared with an on-premises system, users can easily configure RDS Instances to create read replicas for read-heavy database workloads, or to set up synchronous replication across multiple availability zones in order to enhance performance, availability, and durability.
Users provision Amazon RDS Instances in the same way as they would provision Amazon EC2 Instances, and organizations can choose between using the service On-Demand and committing to long term use by purchasing Amazon RDS Reserved Instances. Amazon RDS supports most major relational database systems (Microsoft SQL Server, MySQL, Oracle Database, etc.) plus it has its own Aurora database service, which AWS claims is up to five times faster than traditional enterprise database systems.
There’s a lot of similarities between Amazon RDS and Amazon EC2, but also several significant differences when it comes to setting up, operating, and scaling relational databases. Both services offer a range of instances that can be optimized for memory and performance—and input/output in the case of Amazon RDS Instances—and that can be used to set up a relational database in a secure environment.
However, Amazon RDS has the advantage of removing many of the administrative tasks associated with setting up, operating, and scaling relational databases such as provisioning, patching, backups, failure detection, and recovery. Effectively, Amazon RDS takes full responsibility for the configuration, management, maintenance, and security of the database and automates disaster recovery.
By comparison, when an organization deploys a database on Amazon EC2, it has to administer the database itself. Although this can give organizations greater control over their database (which is why it may still be preferable for organizations to take advantage of the EC2 option), having greater control is reliant on having users with the skills to exercise that control. Not only is Amazon EC2 more expensive than Amazon RDS, it’s also a more labor-intensive way to operate a relational database.
One issue shared by Amazon RDS and Amazon EC2 is that instances need effective management to prevent costs spiraling out of control. The ease with which Amazon RDS Instances can be launched may result in uncontrolled databases springing up everywhere for different applications and workloads. Similar to Amazon EC2 Instances, it could also be the case that Amazon RDS Instances are overprovisioned.
CloudHealth can help prevent overspend by monitoring activity across your entire cloud environment to alert you to idle or overprovisioned RDS databases. Our cloud management platform will also advise you when RDS Instances are suitable for Reserved Instance purchases.
Learn how CloudHealth can help you accelerate your AWS cloud journey to reach cloud maturity!