‹ FeedCloud & Infrastructure
Cloud & Infrastructure

AlloyDB Express Free Tier and Pricing: Where It Fits and Where It Fails

AlloyDB Express is cheap to start but has no backups, no high availability and no SLA. Worked monthly costs and a decision rule show which workloads belong on it.

6 min read

AlloyDB Express is a cheap-to-start PostgreSQL for work you can rebuild, and it is a poor place for data you cannot. Google's documentation gives each billing account 50 compute units and 2 GB of storage a month for the first 12 months, caps storage at 20 GB with writes blocked at the cap, and lists no backups, no high availability and no SLA.⁠1 Use it for CI databases, prototypes and agent sandboxes whose data a script can recreate; if you need a recovery point, more than 2 vCPUs or a region outside the seven listed, use regular AlloyDB or another service instead.

What the free tier covers, and where Google's pages disagree

Reported Google's overview says each month includes 50 compute units and 2 GB of storage per billing account for the first 12 months. Usage beyond that is billed on 1 vCPU or 2 vCPU instances, which count as 1 and 2 compute units.⁠1 The release notes for 4 November describe the same thing: a monthly free tier for the first 12 months.⁠3 Google's launch blog is looser, promising "50 free CUs every month" with no 12-month limit and no storage allowance.⁠2 Plan around the documentation: 12 months, and the storage allowance counts against a billing account, so several projects share one allowance.

Reported The blog gives the prices: $0.115 per compute-unit hour (CU-hr) billed by the second, $0.00 for compute paused after more than 15 minutes idle, and $0.30 per GB-month for storage actually used.⁠2 Storage keeps billing while the instance is paused.⁠1 "Scale to zero" therefore removes the compute charge only.

Neither page states the time unit of the 50 free compute units. Because compute is priced per CU-hr, I read the allowance as 50 CU-hours, which is 50 hours on a 1 vCPU instance or 25 on a 2 vCPU one. Check that reading on your first invoice.

What it costs: three worked examples

The arithmetic below is mine. It uses the blog's prices,⁠2 assumes 1 vCPU equals 1 compute unit as the documentation states,⁠1 treats the 50 free units as CU-hours, and uses a 30-day month of 720 hours.

ScenarioCompute usedAfter 50 freeCompute costStorage costTotal
CI database, 1 vCPU, active 2 h/day, 1 GB60 CU-hr10 CU-hr$1.15$0 (inside 2 GB)$1.15
Agent sandbox, 2 vCPU, active 4 h/day, 5 GB240 CU-hr190 CU-hr$21.85$0.90 (3 GB paid)$22.75
1 vCPU always on, 20 GB720 CU-hr670 CU-hr$77.05$5.40 (18 GB paid)$82.45

The third row is the mistake to avoid: a database that never goes idle costs about as much as a provisioned one. After month 12 the free tier ends, so the same always-on database costs $82.80 for compute plus $6.00 for 20 GB, or $88.80. The first row costs about 1.3% of that.

If the 15 minutes before pausing are billed, which the sources do not say, ten isolated test runs a day on 1 vCPU would add 2.5 CU-hours a day, or 75 a month, worth $8.63.

Limits that decide fit

Reported The documentation compares Express with regular AlloyDB. Express is a single zonal instance with 1 vCPU (4 GB RAM) or 2 vCPUs (8 GB RAM), storage that grows to 20 GB, and PostgreSQL 18 only.⁠1

CapabilityAlloyDB Express (Preview)AlloyDB
Compute1 or 2 vCPU, zonalUp to 288 vCPUs
StorageUp to 20 GB, writes blocked at the capUp to 128 TB
High availabilityNot supportedRegional HA with automatic failover
Backups and recoveryNot supportedAutomated and on-demand backups, point-in-time recovery
SLANone99.99% for regional HA clusters
PostgreSQL versions1814 to 18
EncryptionGoogle default onlyGoogle default or CMEK
Provisioning toolsConsole, gcloud CLI, REST APIAdds Terraform and Config Connector
DiscountsNo committed use discounts1-year and 3-year discounts

Reported Four details in the limits section catch people out. The max_connections flag is fixed at 200, and changing it has no effect. Memory-intensive extensions can run the instance out of memory, so the columnar engine is held at 400 MB and auto-columnarization is off. Only seven regions are available: asia-east1, asia-east2, asia-northeast1, asia-southeast1, australia-southeast1, europe-west2 and us-west1. And the overview is a Preview feature under Google's "as is" pre-GA terms, with limited support.⁠1

Where the pages disagree matters for pipelines. The launch blog lists Terraform as a way to create a database,⁠2 while the documentation lists Terraform and Config Connector as unsupported.⁠1 Build provisioning on the gcloud CLI or the REST API, and treat Terraform as unavailable until the documentation changes.

Waking is slower than creating. A new instance accepts connections in about 2 seconds on public DNS and 20 seconds on Private Service Connect, and a paused instance resumes in about 20 seconds when a connection or query arrives.⁠1 These are Google's figures, and a test harness with a short connection timeout should allow for the 20-second case.

The upgrade is one-way. A single command or click moves an Express cluster to AlloyDB and keeps data, schemas, users, the connection string and the DNS name. After it, the 20 GB and 2 vCPU limits lift, but you cannot downgrade, and the billing model changes from usage-based to always-provisioned hourly compute.⁠1

When to choose Express

Opinion Choose Express when every one of these holds: a script can rebuild the data, it stays under 20 GB, 4 to 8 GB of RAM is enough, one of the seven regions works, PostgreSQL 18 works, and nobody needs an SLA. Choose regular AlloyDB, or another PostgreSQL service, when any one of these holds: you need backups or point-in-time recovery, high availability, more than 2 vCPUs, customer-managed encryption keys, Terraform, a region outside the list, or a PostgreSQL version below 18. A mistake that deleted the data, or a bad migration, cannot be undone on Express, because the documentation lists no backups.⁠1

I could not confirm four things. The sources do not give the time unit of the free compute units, whether the 15 idle minutes are billed, or whether a health check or open idle connection keeps an instance awake. The overview also does not say whether export works as a substitute for backups. I ran no workload, so all timings are Google's.

Do this

  1. Check which billing account will own the instance, because the free tier is per billing account and shared across its projects.⁠1
  2. Confirm your region is one of the seven listed.⁠1
  3. Write the seed or fixture script before creating the instance, because there are no backups to restore from.⁠1
  4. Estimate monthly compute as vCPUs times active hours, subtract 50, and multiply the rest by $0.115.⁠2
  5. Create instances with the gcloud CLI or the REST API, not Terraform.⁠1
  6. Set client connection timeouts above 20 seconds for the first connection after a pause.⁠1
  7. Watch storage against the 20 GB cap, because writes stop there.⁠1
  8. Treat the upgrade to AlloyDB as one-way, and budget for always-provisioned compute when you do it.⁠1
  9. Put a billing alert on the account, and compare your first invoice with the example table.

Revisit when AlloyDB Express reaches general availability, or when Google's blog and documentation agree on Terraform support and the length of the free tier.

FAQ

Partly. According to Google's documentation, each billing account gets 50 compute units and 2 GB of storage a month for the first 12 months. According to Google's launch blog, usage beyond that costs $0.115 per compute-unit hour and $0.30 per GB-month of storage.

Yes, for storage. According to Google's documentation, storage is billed while the instance is active or idle, and only compute stops billing when the instance is idle.

It is not built for it. According to Google's documentation, it has no backups, no high availability and no SLA, and it is in Preview. Upgrade to AlloyDB first, which Google says keeps your data and connection string.

According to Google's documentation, about 20 seconds after a new connection or query. Google's launch blog says "in seconds", so test it against your own timeouts.

You've reached the end

AlloyDB Express Free Tier and Pricing: Where It Fits and Where It Fails

The full article has comments, related reading and sharing.