A serverless database expands opportunities for IT teams in a way the market hasn't seen since the initial rollout...
of AWS Lambda. Coupled with the fact that the Amazon Aurora database remains AWS' fastest-growing service, it's no wonder Aurora Serverless has garnered so much attention.
Aurora Serverless became generally available in August, which means users can now take a closer look at its features, along with its potential benefits and limitations.
What is Aurora Serverless?
Aurora Serverless is an autoscaling and on-demand version of Amazon Aurora, a high-performance relational database built for the cloud. Admins don't need to manage database instances with Aurora Serverless, since their database will scale up or down based on requirements and automatically start and shut down when necessary. This database model with minimal overhead appeals to both startups and large enterprises.
How to use Aurora Serverless
First, create an Aurora cluster -- the service currently only supports MySQL 5.6 -- and select serverless as a capacity type. Then, provide a cluster name, desired username and password for the database, and choose the minimum and maximum Aurora Capacity Units. These units are a combination of processing and memory capacity, and each unit includes approximately 2 GB of memory, with corresponding CPU and networking. The units are billed per second -- with a five-minute minimum -- and can scale down to zero without activity after a preset amount of time. The cluster creation takes around a minute in most cases, and after it's done, an architect will receive an endpoint that can be connected to applications.
When to use Aurora Serverless
An IT team can deploy Aurora Serverless for a variety of use cases, particularly since it scales up and down according to application requirements. The database is a good fit for an application with an unpredictable or variable workload, websites that occasionally see a surge in traffic or unevenly distributed databases with random jumps in queries.
A developer can rely on the service to respond only when necessary in test and development environments. This eliminates the need to continuously run a minimally used database or, even worse, have to constantly reprovision a new one. And, because Aurora Serverless automatically adjusts behind the scenes, a developer that doesn't know the database demands of a new application can use the service to avoid over- or underprovisioning.
An enterprise only pays for what it uses with Aurora Serverless, unlike a traditional provisioned database that an organization pays for regardless of whether it's in use. There is, however, still a cost for storage and I/O.
Aurora Serverless has a distributed architecture and a standby pool of warm servers for continuous scale, which provide users with built-in high availability and fault tolerance. AWS will automatically scale the service up if CPU utilization is above 70% or the number of connections is above 90%, with a three-minute cooldown period. Conversely, scale downs happen automatically when CPU utilization goes below 30% and the number of connections is less than 40%, with a slightly longer cooldown of 15 minutes to prevent premature capacity loss.
Aurora Serverless disadvantages
Aurora Serverless does have its downsides. For example, if an admin decides to enable the pause option to scale a cluster down to zero, the first connection after the pause will take up to 30 seconds. This might be acceptable for dev and test environments or some noncritical tools but can be a severe problem for production applications, which can easily time out after such a wait. Also, while migrations from Aurora to Aurora Serverless are straightforward, it's not possible to migrate directly from other Amazon Relational Database Service (RDS) database engines. Instead, IT teams have to take the extra step to migrate from Amazon RDS to Aurora.
Aurora Serverless also has limitations when compared to its more established, provisioned variant. For example, Aurora Serverless can only be accessed from within an Amazon Virtual Private Cloud, so it doesn't work with virtual private network and VPC peering. Also, Aurora Serverless has limited support for cluster parameters, and it only listens on port 3306.
However, even though Aurora Serverless is still in its infancy, AWS tends to improve its services rather quickly. The provider has already said AWS CloudFormation support is on its way, and potential users should expect a lot more of these updates in the future.