Amazon Relational Database Service (RDS) is a managed database service that makes it easy to provision and run relational databases in the cloud.
It supports several relational engines starting with Amazon Aurora which has the PostgreSQL and open source engines MariaDB and MySQL.
Why do you want a managed relational database service?
RDS takes care of a bunch of things that normally you would be doing yourself on-premises.
Starting from provisioning databases, data center locations, power supplies, racks, servers, hypervisors, and guest operating systems to database software – it’s all provisioned for you.
Amazon RDS manages the following areas:
- Provisioning
- Installation and patching
- Automated backups
- Restores: Snapshot and point-in-time recovery (PITR)
- High availability
- Monitoring
With any software, you also have patching that comes along and so Amazon takes care of that.
It’s very easy to do database activities like database and log backups in RDS that can be automated in just a few clicks.
Also, Amazon takes care of making sure the databases are highly available, there’s also the ability to monitor the databases and take appropriate recovery actions.
On Amazon RDS these areas can be configured:
- Instance type/class
- Engine version/edition
- Storage
- Network connectivity
- Time zone
- Backup retention
- Encryption
- High availability
- Monitoring
Available features in RDS
For instance, Amazon supports multiple instance types, so for more generic workloads, there are M-series.
If it’s a workload that needs more memory – there are other choices. In each type there are different classes, starting from the large to the extra-large, going up to sixteen extra-large.
When there is a need for scaling – you can get more CPUs, more memory, more network, and more storage throughput. At the time of writing, Amazon supports MS SQL Server from 2008 to 2017 Enterprise, Standard, Web, and Express editions.
It’s possible to choose which clients have network access to your database, and what port you want to dedicate to your database on some applications. You can have backups, and set how long do you want to retain those backups.
Also, there’s a possibility to encrypt your data.
If it is a production workload you can enable high availability for that instance and also choose different levels of monitoring.
Now that you already know about the service, in the next post, I will talk about the best practices related to availability.