AWS Bites Podcast

145. We Tried Amazon DSQL So You Don’t Have To (But You Might Want To)

Amazon Aurora DSQL promises to bring a truly serverless experience to SQL databases. But does it actually deliver? In this episode of AWS Bites, we put Aurora DSQL to the test. We explore what makes it exciting, how it compares to traditional Aurora Serverless, and where it falls short. You’ll hear what changed since our last Aurora deep dive, and why DSQL might be the PostgreSQL-compatible serverless database you’ve been waiting for.

Big shoutout to fourTheorem for powering yet another episode of AWS Bites. At fourTheorem, we believe the cloud should be simple, scalable, and cost-effective, and we help teams do just that. Whether you’re diving into containers, stepping into event-driven architecture, or scaling a global SaaS platform on AWS, or trying to keep cloud spend under control our team has your back. Visit fourTheorem.com to see how we can help you build faster, better, and with more confidence using AWS cloud!

In this episode, we mentioned the following resources:

Let's talk!

Do you agree with our opinions? Do you have interesting AWS questions you'd like us to chat about? Leave a comment on YouTube or connect with us on:

00:02:10

What happens if your database might not be available all the time? Like what kind of mechanism do you need to put in place? Or maybe something you can rely on and you don't have to worry too much without doing any kind of intervention yourself. Complexity is another element. How much stuff do you need to manage, set up, care, and maintain over time? SQL versus no SQL is probably one of the biggest questions that most developers would ask themselves because it changes really the way you build the application, the kind of data model you can store, and then the type of mechanism that you have to deal with the data. So that's always a very important trade-off that you need to figure it out, depending on the kind of application you are building. The SQL, interesting enough, is a SQL database. It's a distributed SQL database, and it's designed to make these choices a little bit easier than other alternatives, especially when it comes to scale, availability, and complexity. So we'll get on cost a little bit later in this episode. So how does DSQL make scale, availability, and complexity a little bit easier than the alternatives we have seen so far in AWS? The first thing is that DSQL scales automatically, and virtually infinitely, meaning that effectively you don't have to worry. You can start very small, and then as your application grows, as your user grows, DSQL should manage automatically all the scaling in terms of storage, compute, and querying separately. They also guarantee you five nines of availability. So again, another aspect that you shouldn't be worried about. And you can create a multi-region cluster, and in that case, you get five nines of availability, yes. You can also create a single cluster. In that case, you get four nines of availability. But still, I think it's a pretty good number, given the fact that you don't have to worry about managing pretty much anything. And what we found out in our experiment is that it is by far the simplest SQL database to set up. It's pretty much as simple as creating a DynamoDB table, and you have a cluster up and running. So effectively, there is almost no configuration. There is no patching. There is no maintenance. The only setup you might need is to add multi-region support and backups, for example. So I would say it scores very high in our serverless scale. Another interesting thing that might be relevant for you as a developer is that it is Postgres compatible. I will put an asterisk there. We'll probably talk a little bit more about why the asterisk throughout this episode. But the idea is that you can use any Postgres connector client, and it should work for most of the operation. And yeah, as I said, there are some limitations and some trade-offs that you should be aware you should consider. But most of the things work, which means that generally you can test locally with a local normal Postgres container, for example. And then when you want to test remotely, you can use DSQL. But yes, there are limitations. So Eoin, what are you going to tell us about that?

Help us to make this transcription better! If you find an error, please submit a PR with your corrections.