AWS has two primary relational database services: Amazon RDS and Aurora Serverless. Amazon RDS is a managed service that starts and manages database servers in the cloud. And Aurora Serverless is a relational database engine with an updated deployment model so developers don’t have to manually start database servers.
What are important similarities and differences?
The main difference between Amazon RDS and Aurora Serverless is that the more traditional RDS gives developers the option to choose the type and size of database instance. You can also choose a database module including Amazon Aurora, PostgreSQL, MySQL, MariaDB, Oracle, and Microsoft SQL Server. Aurora is Amazon’s native database engine that was developed explicitly to work with the AWS cloud.
With Aurora Serverless, introduced in 2018, developers configure the calculation using the minimum and maximum Aurora Capacity Units (ACUs), which are a combination of virtual CPUs and memory. Aurora Serverless can also automatically scale the computing capacity up or down.
Because of these features, Aurora Serverless can handle resource capacity more flexibly. In Amazon RDS, a deployed database server will not scale to a larger instance type unless its configuration is explicitly updated to a different size, which can result in downtime of up to five minutes. While RDS provides auto-scaling for read replicas, the process takes a few minutes to complete because additional RDS instances must be provisioned. Aurora Serverless’ auto-scaling results in much faster deployment times, typically within 30 seconds.
When using the Aurora database engine in RDS or in Aurora Serverless, developers do not need to configure storage as Aurora will automatically allocate the required storage space. When an application is functional with MySQL or PostgreSQL, each version of Aurora is transparent to the source code.
Factors to consider before choosing
First and foremost, Aurora Serverless is only compatible with MySQL and PostgreSQL. If an application requires Oracle, SQL Server, or MariaDB, you must use Amazon RDS.
Aurora Serverless is well suited for applications that are not expected to provide regular traffic, such as: B. Development or test environments. Although Aurora Serverless offers the option to reduce capacity to zero during idle periods, this setting is not recommended for production environments. It takes a few seconds to redistribute compute capacity, which gives production users a bad experience during this period.
Aurora Serverless is also well suited for applications with steep and unpredictable usage peaks that would require time-consuming capacity adjustments with Amazon RDS. With Aurora Serverless, the database can be configured to quickly and automatically increase or decrease capacity as needed.
Aurora Serverless seems like a better option than Amazon RDS. However, if this is not selected for the correct use case, it can result in higher AWS costs.
For an application that is expected to serve constant traffic in US East 1, an r5.large RDS instance (16GB, $ 0.29 / hour) is 8 ACUs (0.48 USD / hour). In this case, Aurora Serverless would be 65% more expensive. You cannot use Reserved Instances with Aurora Serverless either. By deploying reserved instances with Amazon RDS, you can cut your costs significantly – by around 30% to 60%, depending on the instance type and length of your engagement.
Aurora is definitely an option to consider, but it’s important to evaluate the benefits, limitations, and cost implications compared to traditional RDS in order to make the best decision for your business.