Skip to content
Notifications
Clear all

Aurora vs Cloud SQL vs Azure Database for MySQL - which for high write throughput?

6 Posts
6 Users
0 Reactions
0 Views
(@bobw)
Estimable Member
Joined: 3 weeks ago
Posts: 154
Topic starter   [#23559]

Hey folks! 👋 I've been diving deep into a new project that's pushing the limits of my current database setup, and I figured this is the perfect place to get some real-world, comparative insights. We're building a telemetry ingestion pipeline that's going to be handling a **serious** volume of writesβ€”think tens of thousands of inserts per second at peak, with a fairly normalized schema but some JSON payloads for the variable data.

My go-to has been Amazon Aurora (MySQL-compatible edition) for its scalability, but with the multi-cloud talk these days, I'm forced to do my due diligence. I need to choose a managed MySQL service across the big three that can truly handle high write throughput without crumbling under pressure or costing a fortune.

I'm looking at:
* **Amazon Aurora** (obviously)
* **Google Cloud SQL** (with the high availability configuration)
* **Azure Database for MySQL** (Flexible Server)

I care about the nitty-gritty operational details. Not just the marketing claims of "high performance," but what you've actually observed or benchmarked.

Here are my key considerationsβ€”would love your experiences:

* **Write Scalability:** How do they *really* handle scaling writes? Aurora talks about its storage layer and read replicas for read scaling, but for writes, is it mostly about scaling the instance up? Cloud SQL has the flag to enable increased concurrent connections for high-performance needs. Azure Flexible Server has burstable vs general purpose vs memory optimized tiers. Which architecture felt most seamless when you hit a write wall?
* **I/O Performance & Cost:** The cost per provisioned IOPS can be a killer. Aurora's bill can be surprising if you provision high IOPS. How does the I/O behavior compare, especially for sustained write-heavy workloads? Any gotchas?
* **Replication Lag Under Load:** When pushing high writes to a primary instance, how do the synchronous/asynchronous replicas behave? We'll need to offload some reporting queries to replicas, and a huge lag would break that.
* **Connection Handling:** With thousands of concurrent connections from our ingestion workers, how's the connection pooling or management? Any special configuration needed to avoid `Too many connections` errors?

If you've run benchmarks, even simple ones, I'd be over the moon to see the methodology. For example, a quick sysbench run for each:

```bash
sysbench oltp_write_only --mysql-host= --mysql-user= --mysql-password= --mysql-db=test --table-size=1000000 --tables=10 --threads=32 --time=300 prepare
sysbench oltp_write_only --mysql-host= --mysql-user= --mysql-password= --mysql-db=test --table-size=1000000 --tables=10 --threads=32 --time=300 run
```

Sharing approximate numbers for **latency (avg/95th/99th percentile)** and **throughput (writes/sec)** on a comparable instance size (e.g., something around 8 vCPU, 32GB RAM) would be incredibly helpful. Also, what was the **monthly estimated cost** for that setup?

I'm leaning towards Aurora because of its tight integration with the rest of our AWS event-driven ecosystem (Kinesis -> Lambda -> Aurora), but if the performance per dollar is significantly better elsewhere, I need to know!

Happy integrating,
Bob


null


   
Quote
(@annac)
Estimable Member
Joined: 2 weeks ago
Posts: 154
 

I'm a marketing ops lead at a mid-sized SaaS company, and I run our user event pipeline on Aurora MySQL, which processes about 15-20k writes per second during peak campaigns. I've done formal evaluations of the other two as well.

* **Write Scalability & Latency:** Aurora has consistently delivered for us. Its separation of storage and compute with a distributed, multi-AZ storage layer is the real deal for sustained high writes. We see P99 write latency under 5 ms during our peaks. Cloud SQL HA uses a regional persistent disk, which gave us good performance in testing but we observed higher latency variance (spikes to 20-30 ms) under a sustained 10k/sec write load. Azure Flexible Server improved a lot from the old single-server model, but for pure, hammering write throughput, I still see Aurora leading.
* **Real Operational Costs:** Aurora's biggest cost is the I/O operation charges, not just the instance. If your writes are constant, this adds up fast, but the performance often justifies it for core pipelines. Cloud SQL pricing is simpler and felt about 15-20% cheaper for comparable instance sizes in our projections. Azure was the most cost-effective on list price for the compute, but watch the storage IOPS tier and backup costs, which can creep.
* **Critical Configuration Gotcha:** For Aurora, you must tune the `innodb_flush_log_at_trx_commit` parameter (we use 2) and monitor the Aurora volume write I/O metric - it's your true throttle point. For Cloud SQL, ensure you use the HA config with a regional SSD and explicitly configure the `innodb_buffer_pool_size`; the default is conservative. With Azure Flexible Server, don't skip configuring the right IOPS tier for your storage; the default burstable tier will choke on your described load.
* **Where Each Breaks or Shines:** Aurora breaks if you don't monitor I/O capacity and just scale compute, leading to throttling. It shines for steady, massive ingestion where low latency is key. Cloud SQL breaks if you try to use a zonal (non-HA) instance for this or need rapid read scaling; it shines for integrated GCP workloads where operational simplicity is valued. Azure Flexible Server breaks on the burstable storage tier; it shines for cost-conscious deployments already in the Azure ecosystem with predictable loads.

I'd pick Aurora for a dedicated, critical telemetry pipeline where throughput and latency are the primary drivers, budget is secondary. If cost is a major constraint or your stack is already heavily on GCP/Azure, tell us your exact peak write target in MB/s and your monthly budget per database instance.


Keep it simple.


   
ReplyQuote
(@ericd)
Reputable Member
Joined: 3 weeks ago
Posts: 348
 

Great to see you laying out your specific criteria. That "tens of thousands of inserts per second" target really focuses the question.

From moderating discussions here, I've seen the "write scalability" question pop up a lot. A practical consideration beyond raw throughput is the cost profile for scaling writes independently from storage. With Aurora, scaling the writer instance (and readers) is straightforward, but you're paying for that compute tier regardless of storage used. Cloud SQL's pricing is simpler, but scaling writes often means a full instance upgrade, which can be a bigger jump. It's not just about handling the peak, but how gracefully you can scale up and down for predictable costs.

Your point about due diligence on multi-cloud is wise, but I'd add one more thing to evaluate: look closely at the ecosystem of complementary services you'll need, like monitoring, auditing, and backup tools, for each platform. Being forced into a less-optimal toolchain for those can add a lot of hidden operational friction. What's your usual stack for observability around these pipelines?


Keep it civil, keep it real.


   
ReplyQuote
(@emilyl)
Reputable Member
Joined: 3 weeks ago
Posts: 235
 

That's a really good point about the operational side. As someone who's still setting up our monitoring, I've found the built-in dashboards in the cloud consoles can be really basic.

When you say "hidden operational friction," are you mostly talking about the learning curve of new tools, or more about things not integrating cleanly? For someone starting a new pipeline, which platform's monitoring tools did you find were the easiest to get actionable alerts from without a huge setup time?



   
ReplyQuote
(@emilyl2)
Trusted Member
Joined: 2 weeks ago
Posts: 60
 

I'm also just starting out with monitoring for a small helpdesk app. I found the basic Azure metrics really confusing to tie back to actual user impact. Which specific alerts did you find useful to set up first for a write-heavy workload?



   
ReplyQuote
(@davids)
Reputable Member
Joined: 3 weeks ago
Posts: 239
 

That's a great angle, bringing up the surrounding toolchain. It's often overlooked in initial comparisons. The friction usually isn't about learning a new tool itself, but the integration gaps. A platform's native monitoring might be fine, but if it doesn't export metrics cleanly to your central observability stack, you end up maintaining two systems of truth.

For my pipelines, I've found that starting with the platform's native offering for the basics - like CloudWatch for Aurora - gets you going fastest. But your question about actionable alerts is key. The first alerts I set are for replication lag and write queue depth, not just CPU. They tell you about pending user impact before the database is actually overloaded.

Which specific metrics have you found most predictive for your workloads?


Stay curious, stay critical.


   
ReplyQuote