Amazon RDS (Relational Database Service)
What is Amazon RDS?
Amazon Relational Database Service (RDS) is a managed SQL database service provided by Amazon Web Services (AWS). Amazon RDS supports an array of database engines to store and organize data. It also helps with relational database management tasks, such as data migration, backup, recovery and patching.
Amazon RDS facilitates the deployment and maintenance of relational databases in the cloud. A cloud administrator uses Amazon RDS to set up, operate, manage and scale a relational instance of a cloud database. Amazon RDS is not itself a database; it is a service used to manage relational databases.
How does Amazon RDS work?
Databases are used to store large quantities of data that applications can draw on to help them perform various functions. A relational database uses tables to store data. It is called relational because it organizes data points with defined relationships.
Administrators control Amazon RDS with the AWS Management Console, Amazon RDS API calls or the AWS Command Line Interface. They use these interfaces to deploy database instances to which users can apply specific settings.
Amazon provides several instance types with different combinations of resources, such as CPU, memory, storage options and networking capacity. Each type comes in a variety of sizes to suit the needs of different workloads.
RDS users can use AWS Identity and Access Management to define and set permissions for who can access an RDS database.
Amazon RDS features
Amazon RDS features include the following:
Replication. RDS uses the Replication feature to create read replicas. These are read-only copies of database instances that applications use without altering the original production database. Administrators can also enable automatic failover across multiple availability zones through RDS Multi-AZ deployment and with synchronous data replication.
Storage. RDS provides three types of storage:
- General-purpose solid-state drive (SSD). Amazon recommends this storage as the default choice.
- Provisioned input-output operations per second (IOPS). SSD storage for I/O-intensive workloads.
- Magnetic. A lower cost option.
Monitoring. The Amazon CloudWatch service enables managed monitoring. It lets users view capacity and I/O metrics.
Patching. RDS provides patches for whichever database engine the user chooses.
Backups. Another feature is failure detection and recovery. RDS provides managed instance backups with transaction logs to enable point-in-time recovery. Users pick a retention period and restore databases to any time during that period. They also can manually take snapshots of instances that remain until they are manually deleted.
Incremental billing. Users pay a monthly fee for the instances they launch.
Encryption. RDS uses public key encryption to secure automated backups, read replicas, data snapshots and other data stored at rest.
What are the benefits and drawbacks of Amazon RDS?
There are several pros and cons to using Amazon RDS.
The main benefit of Amazon RDS is that it helps organizations deal with the complexity of managing large relational databases. Other benefits include the following:
- Ease of use. Admins don't need to learn specific database management tools. They also can manage multiple database instances using the management console. RDS is compatible with database engines that users may already be familiar with, such as MySQL and Oracle And it automates manual backup and recovery processes.
- Cost-effectiveness. According to AWS, customers only pay for what they use. Also, the time spent maintaining instances is reduced, because maintenance tasks, such as backups and patching, are automated.
- The use of read replicas routes read-heavy traffic away from the main database instance, reducing the workload on that one instance.
- RDS splits up compute and storage so admins can scale them independently.
Some downsides of using Amazon RDS include the following:
- Lack of root access. Because it is a managed service, users do not have root access to the server running RDS. RDS restricts access for certain procedures to those with advanced privileges.
- Downtime. Systems must go offline for some patching and scaling procedures. The timing on these processes varies. With scaling, compute resources need a few minutes downtime on average.
Amazon RDS database instances
A database administrator can create, configure, manage and delete an Amazon RDS instance, along with the resources it uses. An Amazon RDS instance is a cloud database environment. Admins can also spin up many databases or schemas; how many depends on the database used.
Amazon RDS limits each customer to a total of 40 database instances per account. AWS imposes further limitations for Oracle and SQL Server instances. With those database instances, a user generally can only have up to 10.
Amazon RDS database engines
An AWS customer can spin up six types of database engines within Amazon RDS:
- Amazon Aurora is a proprietary AWS relational database engine. Amazon Aurora is compatible with MySQL and PostgreSQL.
- RDS for MariaDB is compatible with MariaDB, an open source relational database management system (RDBMS) that's an offshoot of MySQL.
- RDS for MySQL is compatible with the MySQL open source RDBMS.
- RDS for Oracle Database is compatible with several editions of Oracle Database, including bring-your-own-license and license-included versions.
- RDS for PostgreSQL is compatible with PostgreSQL open source object-RDBMS.
- RDS for SQL Server is compatible with Microsoft SQL Server, an RDBMS.
Amazon RDS adds support for major and minor versions of database engines over time. It is designed to allow admins to specify an engine version when they create a database instance. In most cases, Amazon RDS can support developer code, applications and tools that are already in use with existing databases.
AWS provides other database services, including the following:
- Amazon DynamoDB key-value and document database for NoSQL databases;
- Amazon Neptune for graph databases; and
- AWS Database Migration Service to ease database transfers and transformations.
Amazon RDS use cases
Amazon RDS' scalability, security and availability make it useful for a variety of applications. Some possible uses include the following:
Online retailing. These applications manage complex databases that track inventories, transactions and pricing.
Mobile and online gaming. RDS supports developers that need to continuously update these applications and users who need high availability.
Travel applications. Applications like Airbnb take advantage of RDS' ability to simplify time-consuming database administration tasks and automate database replication. Mobile apps like Airbnb also take advantage of RDS' scalable storage capability.
Streaming applications. Applications like Netflix take advantage of RDS' storage scalability as well, and availability of Amazon RDS, which allows them to handle high demand daily.
Finance applications. These applications, like other mobile applications, can use RDS to simplify administrative database tasks and save time and money.
Business-to-business reporting company Enlyft said 6,096 companies were using Amazon RDS in 2021, including The American Red Cross, Penguin Random House and Zendesk. Amazon also reported in 2021 that Airbnb, Intuit and the U.S. Department of Veterans Affairs are among the organizations that use RDS to support their data workloads.
Amazon Aurora and Amazon Aurora Serverless vs. Amazon RDS
Amazon Aurora is a database engine created by Amazon. RDS is a service used to manage database engines and instances, including Amazon Aurora databases.
Amazon Aurora Serverless can also be used to manage instances of Amazon Aurora. Its automation features relieve developers from having to manually launch servers and manage database capacity.
With RDS, servers must be manually scaled, which can result in significant downtime. Aurora Serverless' automatic scaling capability enables faster deployment with little to no downtime.
One downside of Aurora Serverless is it only works with Amazon Aurora, MySQL and PostgreSQL. RDS is compatible with six database engines.
Organizations should assess the two database management options. Both have advantages and limitations, depending on the type of application they serve. Aurora Serverless is considered suitable for applications with unpredictable and steep spikes in usage, which need more efficient capacity adjustments. Amazon RDS is suitable for more predictable applications because capacity adjustments take more time in RDS than in Aurora Serverless.
Amazon RDS helps organizations handle relational database management tasks such as migration, backup, recovery and patching. Some of the main features of Amazon RDS are replication, high performance storage and failure detection.
One of the biggest advantages of Amazon RDS is its ease of use. It lets administrators manage multiple database instances without having to learn other database management tools.
These features enable RDS to help organizations cut costs that come from time-consuming database administration tasks and manage the hidden costs that come with using high-performance storage in AWS. Learn more about ways to manage AWS costs.