The AWS Serverless Services that aren't really Serverless

The AWS Serverless Services that aren't really Serverless

Neil Addison
Neil Addison

Estimated Reading Time: 2 minutes
Last Updated: 2025-04-04

Disclaimer: The details described in this post are the results of my own research and investigations. While some effort has been expended in ensuring their accuracy - with ubiquitous references to source material - I cannot guarantee that accuracy. The views and opinions expressed on this blog are my own and do not necessarily reflect the views of any organization I am associated with, past or present.

Over the years, AWS has released a number of services with the ‘serverless’ moniker. But if you look closely, some services are less, er… serverless than others.

AWS Lambda is the paragon of serverless-ness: write a bit of code, configure a few parameters and run. Yes, it executes on a server somewhere, but you don’t need to worry about managing that, even as it scales horizontally in parallel.

But what about Aurora Serverless? Here Aurora Capacity Units (ACUs), representing 2GiB of memory and proportional CPU are allocated in this service. If you’re working with an old version of MySQL or PostgreSQL in Aurora Serverless v2 then the minimum capacity you can set is 0.5ACU[1], meaning you’re still being charged $0.06/hour ($43.20/month) and this charge continues as long as you have the database. Sure, the price is small, but the point is: is it serverless?

I think there’s an argument that it is not. AWS recognizes serverless architecture by the following properties:

  1. No server management
  2. Pay-for-value services
  3. Continuous scaling
  4. Built-in fault tolerance

That ‘Pay-for-value services’ attribute implies reciprocation: if you pay money, you should get something in return, and idle resources do not return value.

I’m splitting hairs for the sake of discussion here - AWS patched this by introducing auto-pausing of Aurora Serverless, and there are likely improvements in their new Aurora DSQL service. The lesson I am trying to convey is that some services will conform to the serverless properties more than others, and this can have an effect on your architectures should you believe all serverless services to act like AWS Lambda.

That is to say: AWS serverless technologies lie on a spectrum (see below), and this should be considered when designing to ensure you don’t fall afoul of unexpected charges, presumed fault tolerance or more configuration management than anticipated.

The Serverless Spectrum

Figure 1: The Serverless Spectrum

References

[1] - Amazon Web Services. Requirements and limitations for Aurora Serverless v2. https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless-v2.requirements.html