Live data from Hacker News

How to Run a Database on AWS with Better Performance and Lower Cost

pingcap.com

1–10 of 17 posts

Re: How to Run a Database on AWS with Better Performance and Lower Cost

#3
post #2

A less clickbait-y title would be, "How to Run Our Database on AWS at a Reasonable Cost". "Reasonable Cost" comes from the conclusion, and I omitted "Better Performance" since they never compare to alternatives (although they do mention Aurora).

For what it’s worth, there’s a good amount of content in the article that I found interesting for my purposes operating Postgres on RDS.

Re: How to Run a Database on AWS with Better Performance and Lower Cost

#4
Disclosure (I used the right word!): I work at AWS. Opinions are my own.

This is a nice article with some fun comparisons and important details around the specifics of operating TiDB and systems like it on AWS. If I were running a replicated database such as TiDB, hypothetically of course, I'd probably opt for an instance type with locally attached storage. EBS volumes are already replicated themselves for durability so if you're running a replicated DB on EBS volumes then you're going to be replicating while you're replicating. Yo dawg. That's going to be some extra latency, even with a majority quorum replication protocol like Raft.

Historically if you wanted locally attached SSDs the more expensive storage instance types like i2/i3/i3en were all you had but now there's m6gd, c6gd, and r6gd[0]. Lots of options at all sorts of price points for your workload. The Graviton 2 based m6gd instances with local NVMe SSDs are more cost effective than the m5 instances that the blog post is using, which do not have a local SSD.

As the post calls out, if you are going to use EBS then use it for the materialized key-value store portion. Maybe even make a little Step Function to snapshot the EBS volumes to figure out where you can safely trim the Raft log at. It could be nice.

0 - https://aws.amazon.com/about-aws/whats-new/2020/07/announcin...

Re: How to Run a Database on AWS with Better Performance and Lower Cost

#6
The part that's not mentioned is that there's no real latency guarantee on these IOPS. If you're running a database that has to do a few data dependent reads (eg. walking a B tree), then these can add up quickly if latency spikes to dozens of milliseconds (eg. this datadog blog post [0]).

[0] https://www.datadoghq.com/blog/aws-ebs-latency-and-iops-the-...

Re: How to Run a Database on AWS with Better Performance and Lower Cost

#9
post #6

The part that's not mentioned is that there's no real latency guarantee on these IOPS. If you're running a database that has to do a few data dependent reads (eg. walking a B tree), then these can add up quickly if latency spikes to dozens of milliseconds (eg. this datadog blog post [0]). [0] https://www.datadoghq.com/blog/aws-ebs-latency-and-iops-the-...

Author here, thanks for the pointer and I actually did read about it before. You are right that cloud vendors don't really offer those guarantees. But from my experience benchmarking on EBS, under normal pressure they are good enough for latency sensitive tasks. I can even say that stability-wise AWS EBS is far better than equivalents from GCP or Azure. Probably they have being improving things since this post came out in 2013? I'm not sure.

Re: How to Run a Database on AWS with Better Performance and Lower Cost

#10
post #2

A less clickbait-y title would be, "How to Run Our Database on AWS at a Reasonable Cost". "Reasonable Cost" comes from the conclusion, and I omitted "Better Performance" since they never compare to alternatives (although they do mention Aurora).

Sorry if the title sounds misleading to you. We are simply trying to give our customers (or potentially other cloud database users) a solution that has best performance with limited resources. Competitive analysis is not the focus of this post.
Post reply on HN