Quick verdict
Choose Amazon Aurora (PostgreSQL-Compatible Edition) when you run on AWS, when you want serverless capacity that scales down to zero, multi-Region Global Database, a path off SQL Server through Babelfish, or horizontal write scaling with Limitless Database. Choose Google AlloyDB when you run on Google Cloud, when reporting queries must run against live transactional data (its columnar engine), when you want ScaNN vector indexes and model calls from SQL, or when you need the same engine on-premises or on another cloud through AlloyDB Omni. Neither is a cheap default for small databases; compare both with plain managed PostgreSQL first.
Amazon Aurora is AWS's MySQL- and PostgreSQL-compatible relational engine, managed through the Amazon RDS console and API. All instances in a cluster share one cluster volume that keeps copies of the data in three Availability Zones and grows automatically up to 256 TiB; a cluster has one writer and up to 15 Aurora Replicas. Aurora PostgreSQL supports PostgreSQL majors up to 18 (released on Aurora on 11 June 2026), with 13 now only in paid RDS Extended Support. Instances are either provisioned classes or Aurora serverless, which for Aurora PostgreSQL scales from 0 to 384 ACUs. See our Amazon Aurora guide and Aurora PostgreSQL guide.
AlloyDB for PostgreSQL is Google Cloud's fully managed, PostgreSQL-compatible service: a Google-built engine on disaggregated compute and regional storage. A cluster has exactly one primary instance (basic or highly available) and optional read pool instances with up to 20 nodes in total, all reading the same storage. The AlloyDB version policy lists PostgreSQL 14 to 18, with 18 as the default. AlloyDB adds a columnar engine, AlloyDB AI extensions and a downloadable edition, AlloyDB Omni. There is no MySQL edition. See our AlloyDB guide.
Scope. This page compares the PostgreSQL-compatible editions, since AlloyDB is PostgreSQL only. For Aurora's MySQL edition, see Amazon Aurora vs MySQL; for each cloud's simpler managed PostgreSQL, see Aurora PostgreSQL vs RDS PostgreSQL and Google Cloud SQL vs AlloyDB.
Side by side
| Aspect | Amazon Aurora | Google AlloyDB |
|---|---|---|
| Cloud | AWS only (managed through Amazon RDS) | Google Cloud; AlloyDB Omni runs self-managed anywhere |
| Engines | PostgreSQL-compatible and MySQL-compatible editions | PostgreSQL-compatible only |
| PostgreSQL majors (checked) | 13 to 18; 13 only in paid Extended Support | 14 to 18; 18 is the default |
| Storage | Shared cluster volume across three AZs, grows automatically up to 256 TiB | Distributed regional storage shared by all instances, grows automatically, billed on use |
| Read scaling | Up to 15 Aurora Replicas behind a reader endpoint | Read pool instances with up to 20 nodes in total per cluster |
| Serverless capacity | Aurora serverless: 0 to 384 ACUs for Aurora PostgreSQL, auto-pause at 0 | Not serverless: you choose machine shapes per instance |
| Analytics on live data | Zero-ETL integrations replicate to Amazon Redshift or a SageMaker lakehouse | Columnar engine keeps selected columns in memory in columnar form inside the database |
| AI features | pgvector; Aurora machine learning calls Amazon Bedrock, SageMaker AI and Comprehend | AlloyDB AI: vector extension, ScaNN index, model endpoint calls from SQL, natural-language to SQL |
| Multi-region | Global Database with up to 10 read-only secondary Regions | Cross-region secondary clusters updated asynchronously |
| Engine-specific extras | Babelfish (T-SQL on port 1433), Query Plan Management, Limitless Database (sharded writes) | Adaptive autovacuum, index advisor, AlloyDB Omni for on-premises and other clouds |
| Uptime SLA | 99.99% for Multi-AZ clusters, 99.9% for Single-AZ | 99.99% for HA primaries in most regions; none for free trial or 1 vCPU shapes |
| Billing | Instance-hours or ACU-hours, storage per GB-month, I/O per request on Aurora Standard (none on I/O-Optimized) | vCPU-hours and GiB-hours per node, storage per GiB-hour used, no I/O charges |
Key differences
Similar architecture, different add-ons
At the core the two services look alike. Both replace PostgreSQL's local disk with a distributed storage layer that is replicated across zones and shared by every instance in the cluster, so adding a reader does not copy the data and failover does not need a full catch-up. Both keep the PostgreSQL wire protocol, so psql, pgAdmin, DBeaver and ordinary drivers connect unchanged, and both publish their own lists of supported extensions, which you should check before migrating.
The differences are in what each vendor built on top. Aurora leans on elasticity and AWS integration: serverless instances that scale in ACUs and can pause at zero, Global Database across Regions, Babelfish so SQL Server clients can connect over TDS, and Limitless Database for horizontal write scaling. AlloyDB leans on mixed workloads: the columnar engine, AlloyDB AI and an engine you can also run yourself as Omni. Google states that, in its tests, AlloyDB Omni runs transactional workloads more than twice as fast and analytical queries up to 100 times faster than standard PostgreSQL, and AWS makes its own throughput claims for Aurora against stock PostgreSQL. These are vendor figures that we have not reproduced, and neither vendor measures against the other.
Analytics: in-database columnar engine or zero-ETL to a warehouse
If reporting queries must run on live operational data, the two clouds take opposite approaches. AlloyDB keeps a columnar copy of selected columns in memory and lets the planner use it for scans, aggregates and some joins, on the primary or on a read pool. Google documents the limits: enabling it needs a restart, by default it uses 30% of instance memory, frequent row updates invalidate columnar data until it is refreshed, and small or indexed tables may still use the row store.
Aurora moves analytics out of the database. A zero-ETL integration replicates tables from an Aurora cluster into Amazon Redshift or an Amazon SageMaker lakehouse in near real time, where the warehouse does the heavy lifting. AWS documents conditions for Aurora PostgreSQL sources, such as primary keys on every replicated table, UTF-8 databases and at least one data filter pattern, and the integration cannot use a Limitless Database cluster as its source. A typical query that either approach is meant to serve:
-- PostgreSQL: monthly revenue by region on live order data
SELECT region,
date_trunc('month', ordered_at) AS month,
SUM(amount) AS revenue,
COUNT(*) AS orders
FROM orders
WHERE ordered_at >= now() - interval '12 months'
GROUP BY region, date_trunc('month', ordered_at)
ORDER BY month, region; Scaling, serverless and multi-region
For reads, Aurora allows up to 15 replicas and AlloyDB up to 20 read pool nodes per cluster. For capacity that follows demand, only Aurora has a serverless option: an Aurora serverless instance scales between a minimum and maximum you set, up to 384 ACUs for Aurora PostgreSQL, and at a minimum of 0 ACUs it pauses when idle. AlloyDB instances use fixed machine shapes that you resize; the smallest 1 vCPU shape is intended for development only and has no uptime SLA.
For writes beyond one primary, Aurora PostgreSQL offers Limitless Database, which shards data across multiple writers inside one database. AlloyDB has no equivalent; Google's option for horizontal write scaling is a different product, Spanner. Across regions, Aurora Global Database replicates to up to 10 read-only secondary Regions, and AlloyDB streams data asynchronously from a primary cluster to secondary clusters in other regions. Both can promote a secondary for disaster recovery.
Portability and lock-in
Both services are managed-only on their own clouds, but AlloyDB has an escape hatch that Aurora does not: AlloyDB Omni is a downloadable edition, distributed as a container and as RPM packages, that runs in your data centre, on other clouds or on a laptop and includes the columnar engine and AlloyDB AI. Production use is licensed per vCPU. Aurora has no self-managed edition.
For a real exit, the more important point is that both speak PostgreSQL. Data and schema can be moved with standard tools such as pg_dump or logical replication, as long as you have avoided engine-specific features (Babelfish, Limitless, AlloyDB AI functions, ScaNN indexes) or planned how to replace them.
Pricing and licensing
Amazon Aurora PostgreSQL (US East, N. Virginia, USD, from the rates in AWS's Aurora pricing examples on 7 November 2026): serverless capacity USD 0.12 per ACU-hour on Aurora Standard or USD 0.156 on Aurora I/O-Optimized; a provisioned db.r6i.large (2 vCPUs, 16 GiB) at USD 0.29 per hour on Standard or USD 0.377 on I/O-Optimized; storage USD 0.10 per GB-month on Standard or USD 0.225 on I/O-Optimized; read and write I/O USD 0.20 per million requests on Standard and no charge on I/O-Optimized. Backup up to 100% of cluster storage is included. A Free plan for new customers covers Aurora PostgreSQL serverless instances with up to 4 ACUs and 1 GiB of storage per cluster. Reserved instances and Database Savings Plans lower the rates for commitments.
Google AlloyDB (Iowa, us-central1, USD, from cloud.google.com/alloydb/pricing on 7 November 2026): USD 0.06608 per vCPU-hour and USD 0.0112 per GiB-hour of memory on demand (USD 0.04956 and 0.0084 with a one-year commitment, 0.0317184 and 0.005376 with three years); regional cluster storage USD 0.0004109 per GiB-hour; standard backup storage USD 0.000137 per GiB-hour. A highly available primary bills two nodes. There are no I/O charges, and the first seven days of transaction logs for continuous backup are free. A 30-day free trial cluster offers an 8 vCPU basic instance with up to 1 TB of storage.
As arithmetic on these list prices: an AlloyDB HA primary with 4 vCPUs and 32 GiB per node is 2 x (4 x 0.06608 + 32 x 0.0112) = about USD 1.25 per hour before storage, and two Aurora db.r6i.large instances (writer plus one replica, 2 vCPUs and 16 GiB each) on Aurora Standard are 2 x 0.29 = USD 0.58 per hour before storage and I/O. The shapes, regions and I/O models differ, so these numbers show how each bill is built, not which service is cheaper; price your own shape in each vendor's calculator.
Pricing checked on the vendors' official pages on 7 November 2026. Prices change; confirm before buying.
Where each one leads
Amazon Aurora strengths
- Serverless instances that scale in ACUs and can pause at 0 when idle
- Global Database with up to 10 read-only secondary Regions
- Babelfish lets SQL Server clients connect over TDS to the same data
- Limitless Database for horizontal write scaling inside one database
- MySQL-compatible edition as well, plus zero-ETL to Amazon Redshift
Google AlloyDB strengths
- Columnar engine for analytics on live transactional data without a separate warehouse
- AlloyDB AI: ScaNN vector index, model calls from SQL and natural-language to SQL
- AlloyDB Omni runs the same engine on-premises, on other clouds or on a laptop
- Read pools of up to 20 nodes on shared storage, with storage billed on use
- No I/O charges, and PostgreSQL 18 already the default version
Limitations
Amazon Aurora limitations
- AWS only, with no self-managed edition
- I/O is billed per request on Aurora Standard unless you switch to I/O-Optimized
- Older majors move to paid RDS Extended Support (PostgreSQL 13 already has)
- Heavy analytics need a separate warehouse, reached through zero-ETL
- Engine-specific features such as Babelfish and Limitless increase lock-in
Google AlloyDB limitations
- PostgreSQL only; no MySQL-compatible edition
- No serverless or scale-to-zero option; you pay for provisioned nodes while they run
- Higher per-vCPU rates than Cloud SQL, and an HA primary bills two nodes
- No built-in horizontal write scaling; that means moving to Spanner
- Columnar engine needs memory and a restart, and frequent updates invalidate columnar data
When to choose each
Choose Amazon Aurora if
- Your applications and data already run on AWS
- Traffic is spiky or idle for long periods and serverless scaling to zero would save money
- You need low-latency reads in several Regions with Global Database
- You are moving off SQL Server and want Babelfish to reduce application changes
- You also run MySQL workloads and want one managed family for both
Choose Google AlloyDB if
- Your applications and data already run on Google Cloud
- You need reporting on live operational data without building a pipeline to a warehouse
- You are building AI features that need vector search and model calls next to the data
- You need the same PostgreSQL-compatible engine on-premises or on another cloud through Omni
- You want storage billed on use with no I/O charges
When neither is right
- Your database is small or a development system: standard managed PostgreSQL is cheaper; see Aurora PostgreSQL vs RDS PostgreSQL and Google Cloud SQL vs AlloyDB.
- You need serverless PostgreSQL with branching and per-use billing: see Neon vs AWS RDS and Supabase vs Neon.
- You need globally distributed writes with strong consistency: see CockroachDB vs PostgreSQL, or consider Google Spanner.
- Your workload is mainly large-scale analytics: see BigQuery vs PostgreSQL and Redshift vs PostgreSQL.
Final recommendation
Aurora PostgreSQL and AlloyDB are close enough in design that the cloud you run on should usually decide. Within that choice, Aurora is the stronger fit for elastic and globally distributed applications, SQL Server migrations through Babelfish, and teams that also run MySQL. AlloyDB is the stronger fit for mixed transactional and analytical workloads, in-database AI, and organisations that want the same engine outside the cloud with Omni. If you are genuinely free to choose a cloud, test your heaviest queries on both with each vendor's free options and compare the full monthly bill, including I/O, storage, backups and replicas.
Frequently asked questions
Is AlloyDB Google's answer to Amazon Aurora?
They target the same need: a PostgreSQL-compatible managed database that scales reads and survives failures better than a single PostgreSQL server. Both separate compute from replicated storage. AlloyDB is PostgreSQL only and adds a columnar engine and Omni; Aurora also has a MySQL edition and adds serverless, Global Database, Babelfish and Limitless Database.
Which is cheaper, Aurora or AlloyDB?
It depends on shape, region, I/O and replicas. Aurora charges instance-hours or ACU-hours plus storage and, on Aurora Standard, I/O per request; AlloyDB charges per vCPU and GiB per node with no I/O charges and bills storage on use. Aurora serverless can be much cheaper for idle workloads because it can pause at 0 ACUs. Price your own configuration with both calculators.
Can I run AlloyDB or Aurora on-premises?
AlloyDB, yes: AlloyDB Omni is a downloadable edition that runs as a container or from RPM packages on infrastructure you manage, licensed per vCPU for production. Aurora has no self-managed edition.
Which PostgreSQL versions do they support?
On 7 November 2026, AlloyDB listed PostgreSQL 14 to 18 with 18 as the default. Aurora PostgreSQL listed majors up to 18, with 13 only in paid RDS Extended Support and 14 reaching the end of standard support on 28 February 2027.
Does AlloyDB have a serverless option like Aurora serverless?
No. AlloyDB instances use machine shapes billed per vCPU and GiB of memory per hour, while storage grows automatically. Aurora serverless instances scale in ACUs and can pause at 0 when idle.
Sources
- Aurora User Guide: Working with Amazon Aurora PostgreSQL
- Aurora PostgreSQL release calendars
- Aurora User Guide: How Aurora serverless works
- Aurora User Guide: Aurora zero-ETL integrations
- Aurora User Guide: Aurora machine learning with Aurora PostgreSQL
- Amazon Aurora pricing
- Amazon Aurora SLA
- AlloyDB overview
- AlloyDB: Database version policies
- AlloyDB: About the columnar engine
- AlloyDB Omni overview
- AlloyDB pricing
- AlloyDB SLA
Checked November 2026.
How we research comparisons: our editorial method.